見出し画像

ドカタIT奮闘記

新卒、参画する

新卒でITコンサルティングの会社に入った。キラキラしたコンサルティングの仕事をするものだと思っていた。面接の時に、「最初の数年は開発とかもしてもらうよ」と言われていたが、実際の仕事は思っていたよりも土方であった。IT開発はモノづくりであり、「現場」なのである。
研修を経て配属されたプロジェクトは、DWHの運用保守・開発だった。生意気にも、配属された初日にプロジェクトマネージャー(直属の上司)に「運用興味ないっす!早く次のプロジェクト行きたいっす!」と宣ったのは、暫く直属の上司に根に持たれることになる。研修を受けたとはいえ、ITシステムのことはほとんど素人である。入館証をもらうために初めてクライアントの担当者と話したときに(英語)、「君は前にどんな仕事をしていたんだい?」(質問も2回くらい聞き返してやっと理解できた)と聞かれ、咄嗟に「Javaのテストをしていました」と答えたが、実際にはJavaは研修でちょっと触っていただけである。

新卒、工夫する

最初に任された仕事は、「古いデータの項目と、新しいデータの項目が対応しているか調べる」という、とにかく人手がかかるタイプの作業だった。不運なことに、私の面倒を見てくれるはずの2年目の先輩があまりにも多忙で、環境構築すらまともにできていなかったが、テーブルの項目1つ1つに対して、サンプル値を10個ずつ取得していった。打鍵した結果は比較できるように整形する必要があったが、大変に時間がかかり、整形職人になったとしても20日かかる見込みだった。上司に相談し、初めてエクセルのマクロを使って、調べて作ってエラーぶつかりつつ整形作業を自動化し、7日で作業を終わらせることができた。この仕事で、上司との信頼関係が構築できたと思う。第一印象で好きではない仕事でも、そういう作業も必要だと思ってまずは全力でやってみること、そうすれば周りから認められるということがわかった。

新卒、挫折する

次に任された仕事は、テスト計画を立てることだった。アサインされてしばらくして理解したのだが、別システムの刷新が動いていて、その影響でDWHでも大規模な開発が行われていたのだ。開発があるところにはテストがある。
テスト計画の仕事は、全く歯が立たなかった。そもそもシステムがどう動いているのかも理解できておらず、他チームと折衝を試みるも、何を抑えないといけないのか、何を伝えればいいのか、何もかもわかっていなかったので計画は遅々として進まなかった。上流システムの担当者(インド人)の言葉が聞き取れず、どんなテストをしたいかを伝えようとしても全く伝わらず、コミュニケーション断崖絶壁峡谷に涙したこともあった。およそ1ヶ月何の進捗も生み出せなかったところ、私と一緒に計画を立てていた先輩と合わせて呼び出され、上司に夜の10時までガッツリ指導された。この仕事は頑張ったがバリューを発揮できず辛く苦しく悔しい思いをしたが、まずはシステムがどう動いているか理解を深めることが重要であることがわかった。

新卒、萌芽する

まずはシステムについて理解を深めないとね、ということで、次は運用保守の仕事に携わった。朝8時に出勤して、リカバリが必要なジョブを洗い出すことから始まった。当時の運用保守はマニュアルが整備されておらず、何を/どういう順番で/どのようにリカバリするのかが3年目の先輩の知識/経験/カンで判断されていた。先輩は忙しかったし、そもそも僕の理解度を慮った説明をしてくれるタイプではなかった。鬱陶しがられているのはわかりつつとにかく質問をしまくったら、数ヶ月経つ頃には朧げにシステムの動きがわかるようになった。
また、並行して開発物のテストも行うようになった。テスト結果を確認するにも、正となる仕様書が整備されていなかったので他システムに問い合わせて独自に仕様書を作成した。開発されたSQLを何度も流し、帰ってきた結果を確認しては、間違っているところを指摘した。そのうち、指摘するのも面倒だと思って自分でSQLを直すようになった。テスト計画で価値を出せなかった分、少しずつでもプロジェクトが前に進み価値を出せている実感があって、残業も多く肉体的にはしんどかったが楽しい仕事だった。

二年目、開花する

なんだかんだバタバタしていると1年が経っていて、運用保守の先輩が抜けて、運用保守サブチームのリーダーのような立ち位置になった。同時期に、インドのベンダーさんへの運用保守の移管や、新しくPJに入ってきた新卒(院卒や第二新卒で全員年上だった)の教育も任されることになった。人にものを伝えるためには情報を整理することが大切だが、どうしてもうまく纏まらないことに気づいた。そもそも、伝えるべきシステムや運用プロセスがクリーンでないので、クリーンに伝えようがないのだ。とにかく、資料を日本語・英語で整備して、インドのメンバーには英語で説明して、疑問があればなんでも答えた。新卒・インドメンバーともに、信頼関係を構築して仕事を回せるようになったことはいい経験になった。
運用のほうはある程度人に任せられるようになったので、自分は運用についてはレビューをメインにして、経験が不足していた小中規模の開発に取り組んだ。運用と開発の両方ができるようになることで視点が上がり、障害が発生した時のコミュニケーションで対抗システムに配慮した問い合わせができるようになったり、プロジェクト全体の案件の状況を理解できるようになったり、と大きく成長を感じられた。

プロジェクト全体を見ると、「既存のシステムを維持管理する」のに大きな工数がかかっていることがわかった。運用保守で感じていたように、既存システムそのものがイケていないから、開発の時に既存に合わせるので工数がかかるし、運用プロセスも煩雑にならざるをえない。エンジニアは新しいシステムを構築することで価値を発揮すべきだと思ったし、生産性は高ければ高いほどいい。そう思って既存システムのイケていないポイントを洗い出すなどしたが、知識が不足していたためどのように改善するべきかを明確にすることができず、いったん改善については寝かせることになった。

二年目、逃亡する

ちょうどそのころ、今までの仕事とは少し毛色が違う、ITコンサル寄りの仕事に関わることになった。既存システムの内容をまとめたり、パワポを作ったりする仕事は新鮮だったが、一緒に仕事をしていた先輩がよくできる人でなんでも綺麗にまとめてしまうので、バリュー迷子になり燻る期間が続いた。積極的に先輩の仕事を奪いに行けなかったのは良くなかったと反省している。

燻っていた仕事から逃げるかのように3週間ほどプロジェクトを離れ研修を受けた。研修では、web開発を題材にして仕様書の書き方からAgile開発の方法、DevOpsの手法について学ぶことができた。曖昧で言語化できていなかったプロジェクトの改善方針が一気にクリアになり、パズルのピースがハマったような感覚だった。プロジェクト内で開発チームと運用チームが分かれてはいなかったが、開発効率と運用プロセスの最適化を目指すためにDevOpsの文化が重要であると感じた。

二年目、相談する

研修から戻った私は、燻っていた仕事からは外れ、既存システムの改善をメインに仕事をすることになった。同じ時期に上司とキャリアパスについて相談し、6月末をめどにプロジェクトから出ることになった。実はプロジェクトを出たいとは何度か申し出ていたが、そのたびに「一通り経験してから」「後輩の育成をしてから」「大きな開発があるから」「評価の仕事があるから」と慰留されてきた。プロジェクトに求められ続けることは幸せなことであったが、運用はある程度できるようになったので、次のステップに移るタイミングだと思い、本腰を入れて離任を相談した。

二年目、挑戦する

プロジェクト最後の仕事になった既存システムの改善は困難な仕事だったが、やりがいがあった。理解しにくい・運用しにくい汚いシステムをクリーンにすることは、プロジェクト参加時から今に至るまでの集大成としてすべてがつながったような感覚だった。高速な変更とリリースを受け止められるようなチームの文化と仕組みを構築することがAgileの肝だと考え、そのためのクリーンなコード・インフラアーキテクチャと開発プロセスを検討した。先輩と相談して改善案を数十個リストアップし、依存関係を考慮したうえで最も低工数で高影響のものを選定し、クライアントにプレゼンをしてテストの了承を得るところまでこぎつけた。結果的には諸々の理由でうまくいかずその案は立ち消えになったが、熱中して前に進める経験は今後の糧になると確信した。他にもぼちぼちと小さい改善をしつつ、改善全体のスケジュールを立てようとしていたが、時間が間に合わず途中でチームの仲間に託すことになってしまった。最後までやり切れなかったのは残念であるが、迫りくるタスクに追われがちなメンバーの意識を、根本のプロセス改善に多少なりとも向けることができたのは、大きな貢献であったと思っている。

もうすぐ三年目、展望する

1年8か月に亘った最初のプロジェクトでは、チームメンバー、クライアント、他のベンダーさん含め多くの人にお世話になり、有意義な学びを得ることができた。

仕事への向き合い方
1. 任された仕事はまずは全力でやってみる
2. 広い視点でシステムの大きな流れと要点をつかむ
3. 定型化された仕事は人かシステムにできるだけ任せて自由な時間を作る

自分の特性
1. コミュニケーションや、意見を主張することが得意
2. 個性や創意工夫を押し出せる仕事が好き

自分のスキル
1. データ構造の理解・SQL
2. DWHの運用
3. クラウド(AWS SAAをとった)
4. 英語(英検1級をとった)

次の仕事でやりたいこと
1. システム構想などの上流フェーズの経験を積みたい
2. クラウドアーキテクチャ・DevOps・Agileに興味がある

キャリアプランはまだ明確に描けていないが、大まかな方向性は間違っていない気がするので、目の前の仕事に全力で取り組み、世の中を3ミリ面白くしていきたい所存である。

この記事が参加している募集

カツ丼食べたい