チーム開発の振返り

1年ちょっと前に始まったプロジェクトが一区切りついたので振返りの意味も含めて気づきなどをまとめて行きます。

このプロジェクトは1年ちょっと前の2021年10月頃に始まりました。当初立ち上げとして約2週間でログイン、権限、ユーザー管理、ユーザー招待などといった基本的にWebシステムに必要な機能を作り切るという目標設定がありました。最初は二人三脚で僕と弊社のCPOの平野さんの二人でやるしかなかったです。初期立ち上げの納期がきついせいで平野さんにはあまりいい記憶ではなかったはずですが、なんとか期限内に目標通りの機能を実装できました。

本格的な機能実装が始まると弊社の海外在住のメンバー一人がが加わって3人体制になりました。クライアント側は2人体制になり合計で5人というそこそこの規模になってスタートを切りました。

アーキテクチャは新規立ち上げでよく使われる社内ではSRK(Senyou React Kit)と呼ばれているreact、react-router、material-uiとバックエンドはnode.jsのExpressという組合せでフルTypescriptでの実装になります。クライアントの内部システム間の連携やマイクロサービス化とCI&CDや環境構築までとフルスタックで支援させていただくことができました。僕の役割は主に開発ディレクションでメンバーへの作業割り振りや実装方針のすり合わせ、品質担保などを担いました。クライアント側のエンジニアと機能の実現手段の調整、実装検証や実装に入ることもあります。

プロジェクトの進め方としてはとにかくスピード重視で日々アウトプットが求められます。中盤からある程度形になってユーザーが使い出すとバグや改善要望の対処も加わって来ます。バグ修正とクオーターごとのOKRの目標達成をするという形で進めて来ました。大幅な遅延や障害を出すこともなくなんとか目的を達成することができました。

今回のプロジェクトで最も必要とされている能力はよしな力でした。明確な設計や指示がない状態から参考になる既存システムを解析してデータの流れを把握し、機能を実装していくのが主な流れです。正解が分からない状態でも、まずは現時点でできる最善策を講じてその機能をユーザーにお届けしてフィードバックを回収していくようなやり方をしてきました。そのフィードバックを元にシステムの改善をしていくというのがスピーディーな機能の実現に繋がったのだと思います。

今回僕らにストックされたものとしてはチーム内コミュニケーションコストの軽減と開発能力の蓄積だと思います。これは初期から参画してくれた業界歴約11年のリーダー経験のあるフルスタックエンジニアのおかげでもあります。中盤以降は僕の実装の時間が減って行き、彼がほとんど実装を担当してくれました。彼はシステム全体を網羅して適切な対策を選択してやり切ることができるのでとても助かりました。

言語の問題はエンジニア同士の場合はコードを書くことで乗越えられます。開発現場では同じ言葉を話しても思い違いや勘違いをすることがよくあります。今回は僕は自社チーム内ではミャンマー語を話し、クライアントチームとは日本語でやり取りをする必要がありました。最初は大変でしたが徐々にコードが増えてくると説明する時間が減って行きました。

日々アウトプットに追われて圧迫された日も少なからずありましたが、最終的にはチームでやりきることができて良かったと思っています。一緒に開発してきたクライアントチームのエンジニアからは融通が効いてやりやすいチームとのフィードバックを頂きました。おそらくこれは不確定要素の多い中でもその場その場で最善策を提案し、機能を形にするアウトプットすることができたからだと思います。

エンジニアとして技術の磨き上げはもちろん、チームのマネージメントする立場として貴重な経験をすることができました。ここで得られた経験を次の現場でも生かしてより成果の出せるチームを構築していきたいと思います。


この記事が気に入ったらサポートをしてみませんか?