re:annkara

Web技術を中心に学んだことを書き溜めていきたい。

「あなたは何をしている人なんですか?」という問いに対して

カイゼン・ジャーニーを読み始めた。

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

表題の問いは、本書の第一話で主人公に対して投げられた問いであり、主人公はこの問いに対して何も答えることができなかった。

この問いに答えられるということは私自身、非常に重要だと考えている。
なぜなら、自分の中の一番大事な軸や信念といったものがあなたの中には存在するか、という問いだと考えるからだ。

昔の私ならこの問いに答えることはできなかったと思う。
ただ、今まで経験したことを振り返り、改めて今していることを考えてみると答えられる気はする。
なので、自分自身のためにもこの問いに答えてみたいと思う。

私は何をしてきたか

最初の3年間はCOBOLを使って、メインフレーム上で稼働する業務アプリケーションやバッチプログラムの新規開発や保守業務を行っていた。
元々はWeb開発がやりたいと思っていたのだけど、自分の性格上(明るいとかそんな感じ)その業務に一番適しているとのことで配属が決まったらしい。

配属されてしまってからは仕方なしに、Excel仕様書をもとにコーディングし、手動でコンパイル、リンク、デプロイ(というかライブラリに配置)し、JCLでバッチを実行、または端末から手動でテスト打鍵を実施するといったことをしていた。
自分がエンジニアとして夢見ていたような仕事ではなくて、非常に泥臭いことを愚直にやっているものだなぁと感じていたと思う。

2年目くらいからは新しく構築されるWebシステムの一サブシステム(メインフレーム側のバッチ処理)の設計からやるようになって、本番リリース後の保守までほとんど自分一人で行うようになっていた。
新しく何かを作るという行為は非常に楽しかったが、同時に自分の作ったものが本番で正しく動くのかという不安の方が大きかった気がする。
特に難しい処理でもなかった気がするけど、データの源泉が外部サービスで、しかもそのサービスの仕様書を見てもどのタイミングでデータが提供されるかといったことが明確に記載されていなかったからだ。しかもお金周りの処理だったので尚更不安だった。
本稼働直後、特段大きな障害はなかったのだけど、データの整合性(データが提供されない)が取れなかったりでエラーがちょくちょく発生していたのを覚えている。
その度にエラーに対処したり、プログラムを修正したりしていた。
この時の経験から、外部サービスとの連携部分は非常にナイーブで仕様をちゃんと把握しなければならなかったり、仮にエラーが発生しても気づけるような仕組みやエラー処理の重要性に気づいた気がする。

3年目は業務のど真ん中を司る、由緒正しきCOBOLプログラムと相対することとなった。
この機能で障害を起こしてしまったら、一発で金融庁報告となるようなプログラムである。
そのくせ私はその業務に関して全くの門外漢であり、かつ度重なる本番リリースで過度に肥大してしまったプログラムを相手にしなければならず、プレッシャーは半端ないものだったと記憶している。
私の経験不足に関して周りの方も理解しており、元々担当していた方の協力を得られたり、私の上に別の先輩を配置してくれたり、経験豊富な協力会社さんを割り当ててくれたり、私の経験不足を補ってくれるような人員配置をしてくれたことが唯一の救いだった。ただ、本番リリースの数カ月前に直属の先輩が退職してしまったが...
由緒正しきプログラムに関しては、プログラムの規模に対して適切に機能分割されていたため、業務を適切に理解し、仕様を把握し、大量のExcel仕様書に反映される作業とそれをコーディングすることを除けば、今思うとそこまで大変ではなかった...そんなわけない。
業務を適切に理解するための必要な知識が私には致命的に欠けていたし、そこが一番重要な部分だったと思う。
その点を補うために元の担当者に設計部分を担ってもらい、実装・テストは自分たちで担当するという適切な役割分担を行えたこと。 そして、徹底した現新比較テストと新機能部分の単体・結合・システムテストを実施をすることで、自信を持って本番リリースを迎えることができたと思う。
この時の経験からは、適切な役割分担やどのようにして品質を担保するかといったことに妥協しないことが重要だと学んだ。
私が持っていない知識を身につけることも重要だが、その知識を持っている人と協業して物事を成していくこと、単体・結合・システムテストと順を追ってテストをしていくことで、早期にシステムの欠陥を把握して、修正するというサイクルを回せるのだとも学んだ。

そして一番の気付きは、私はこのまま一生この仕事をしていくことはできないということだった。
決まった開発ツール、決まった開発プロセス、秘伝のタレと化した膨大なCOBOLプログラム、大量のExcel仕様書、求められるのは業務知識や協力会社さんのマネジメント...
こういったものを私は否定するつもりは毛頭ないし、今あるシステムのお陰で業務が成立しているというのも理解している。
ただ、私がこのような仕事を一生続けていきたいか、自分が思い描いていたエンジニア像は果たしてこれだったのかというとそれは違っていた。
Twitter上ではエンジニアたちが楽しそうに技術の話をし、ブログ上では素晴らしいアウトプットをしている人たちがたくさんいた。私もどうにかしてそちらに行きたかった。

このリリースが終わる頃には、退社しようと考えていた。自分の経験はメインフレーム上でのCOBOL開発しかないし、独学でJavaなりHTTPなどの学習はしていたものの、実際に何かを作ったりしていたわけではないので、アピールできるものが何もなかった。GitHubやブログのアカウントは持っていたが、草も生えない状態だった (それは今も一緒だが...)。
なので、次の会社が決まらなくても退社して、技術を磨こうと考えていた。結果として、社内の別の部署に異動することとなるが、それは今思うと良かったのだと思う。 当時の私は、どうにかして今の職場を離れたいという気持ちが強く、自分が何をしたいのかということがはっきりとしていなかったのだ。
恐らく、この時に「あなたは何をしている人なんですか?何がしたい人なんですか?」と聞かれても何も答えられなかったと思う。答えられたとしても明確な何かを伝えられなかったと思う。

私は何をしているか

そんなこんなで、入社して4年目で今いる部署に異動してきた。
今いる部署はWebアプリケーションの開発と運用の間にいるような部署で、内製フレームワーク(良いかどうか置いといて)や社内ライブラリの整備、開発者ツール(EclipseMaven、npm、Vagrant等々)の提供や、CI/CD周りの環境整備を行っている部署である。
最近だとJIRAやBitBucketなどのツールを導入し、タスク管理や構成管理の改善を図っていたりする。
時にはWebアプリケーションのパフォーマンスやシステムのキャパシティの課題に対して、開発・運用と協調して解決にあたったり、アプリケーションの障害時には障害解析や解決策の立案なども行ったりする。

今の部署に異動してから、技術に対して誠実に向き合うという気持ちが一層強くなった。
入社してから知識を得ることを疎かにしてきたつもりはないが、それがちゃんと身についているか、業務に活かすことができるか、何かの問題解決に繋げられるかといった点で学んできたとは言いがたかった。何かを知るという意味で知識の幅を広げることはできたが、それを深く掘っていくということができていなかったのだと思う。これは今後の自分の課題だと認識している。

今年で入社して6年目、今の部署に来て3年目となる。
開発と運用の間にいることで、開発や運用の大変な部分や課題を客観的に見ることができるようになったと思う。それと同時に、チームの課題も見えるようになってきた。それは前のチームとも一緒だったのだけど、役割が分担されていて、その領域の知識が人依存になり過ぎている点だ。
知識や経験を何かしらの形で共有することで、チームとしてレベルアップできるのではないかと思っている。
なので自分一人でできることとして、障害が起こった際には、振り返りの資料を作成し、チームで共有するということをしている。
まだ目に見えた成果は上がってないけど、続けていきたいと考えている。

改めて振り返って、私は何がしたいのか

COBOLメインフレームといったいわゆる枯れた技術に嫌気がさしたわけではなくて、改善できる余地を残しつつも目の前の業務に追われて今までと同じやり方で仕事をするということに慣れきった人間になりたくないと強く思っていたのだと思う。
そして何より私はインターネットというものが好きで、インターネットを支える技術というものにすごく惹かれているのだと思う。それが今の仕事をしているうちに、Webアプリケーションを開発する人や運用する人を支えることも含めて、今いる場所をもっと良くしていきたいのだと思う。自分が知っていることを増やしていき、今いる場所、今ある開発プロセス、今ある運用プロセス、今あるシステム、これから作られていくシステム、こういったものをより良くしていくことが私がやりたいことなのだと思う。その為に私は学習し、今いる場所で応用していくのだろう。

「あなたは何をしている人なんですか?」という問いに対して

最初の問いに戻る。 「私は何をしている人なのか?」 私はきっとこう答えるのだろう。
「自分の知っていること、チームの知っていることを増やすことで、今いる場所をより良い場所にしていくことをしています」と。