チームとプロダクトを前進させるためにやったこと|2022年度チーム作りとプロダクト開発を振り返る

はじめに

この記事では、

とてつもない技術負債の中、

開発メンバーのモチベーションも下く、

日々の業務遂行で一杯一杯。




こんな状況のチームに2022年1月に参画してから、

チームとプロダクトを良い方向に推進するために

工夫や試行錯誤したこと。

その結果として出せた成果についてまとめました。




2022年参画当初のチームとプロダクト

参画当初はなかなか最悪でした。。。


参画当時のチームとプロダクト


図の通り、

開発チームを細かく割って、

独自ルールでそれぞれが開発。




システム全体としての設計など考える人はおらず、

全体設計部隊が機能していない毒毒状態でした。




チームとプロダクトを立て直すために試行錯誤したり実践したこと

自分が参画したタイミングでは、

大型顧客の契約が決まってそれに向けた開発最優先という状況でした。

が、このまま手を入れると技術負債はさらに増え、手に負えなくなると感じていました。




コアドメインに絞ったコスパ重視リファクタリング

当時増田さんの現場で役立つシステム設計の原則を読んでおり、

かなり技術負債には敏感になっており、

先にリファクタリングすることを、

サンプルコード、

サンプルテストコード、

コアドメインを再分析して作成したモデル図を持って提案しましたが、

上の理解は得られず却下されました。




このまま上の意向に従って開発を進めることもできましたが、

ただでさえ、

メンバーのモチベーションも下がっている中で、

これ以上負債を増やすと保守開発してくれるメンバーがいなくなると思い、

(何より自分が妥協するのが許せなかった)

上の意向を無視して、

僕の考えを理解してくれた、

一部のプロダクトマネージャー、

数人のエンジニアと一緒に、

失敗したら会社を辞めるつもりでリファクタリングをすることにしました。




不足しているテストコードは統合テストで通しのテストコードを最低限作って、

コアドメインのみに絞ってリファクタリングをして、

その単体テストコードを作成するところから始めました。




普段の業務とプラスアルファで作業をするので、

土日と平日の夜中まで使ったり・・・




この辺りの改善活動の泥臭い話については別途まとめようとおもいますが、

今回は長くなるので省略・・・




2ヶ月くらいその活動をやって、

仕様変更が激しくバグったら大惨事になるところだけは、

変更による影響を小さく、

単体テストコードで品質担保しつつ、

統合テストで通しとしての品質の担保もできた状態を作りました。




その間コアドメイン以外の開発はガンガン進み、

技術負債もとてつもないスピードで増え続けましたが、

コア機能に関する開発は他チームには一切触らせず、

機能開発が必要な場合は

自分か一緒に改善活動を一緒にしてくれてるメンバーで全て行いました。




チーム体制見直し

このようにして、

コアドメインがある程度綺麗にできたので、

次はチーム体制を見直して行きました。




スキルの高いメンバーがいるので、

僕とそのメンバーで設計思想、開発指針の目線を合わせて、

何も考えずにコピペしたり、

使わない業務ロジックを作り込まれたりするのを

3人がかりでレビューで防ぎつつ、




コアドメインではないけど、

開発スピードを低下させるような、

変更が危険な箇所をリファクタリングしたり、

リファクタリングに弱いテストコードをリファクタリングしたり、

目の前のタスク遂行とは別で改善活動に人を回せるように

アサインの工夫と時間を絞り出して行きました。




また、スキルの高くないメンバーの教育や、

新規参画者がスピード感を持って立ち上がれるように、

オンボーディング資料、

設計思想や開発方針なども資料にまとめる作業も並行して行ないました。




2023年現時点でのチームとプロダクト

このような活動を1年間続けることでこのようになりました。


参画から1年後のチームとプロダクト


コアドメインを中心にそこを囲むように、

強いメンバーで囲み、

スキル不足のメンバーを誰かがレビューやフォローできる体制にしています。




目の前のタスクを遂行するだけでなく、

運用保守する中で出た課題、

性能問題、

テストコードの不足や負債、

プロダクションコードの保守しずらさの課題

などなどを見つけたら改善する文化になってきました。




普段のタスクも、

保守開発を意識して設計しているので、

安全で素早く対応できるようになってきています。




最近では、

新規参画者がこの現場は設計についてこだわっているとか、

勉強熱心なメンバーが多く焦るとか、

僕の参画当初では絶対あり得ないような発言が出るようになってきました。




まだまだ、

改善したいところはありますし、

自分自身のスキル不足で無駄な活動をしている部分もあったり。。。

(特にテストコード周りはもっとよくできるはず)




ただ、ある程度メンバーが自分事として考えて、

改善をやってくれるようになってきてくれており、

リファクタリングを却下されたところで諦めなくて良かったと思います。




2022年度は振り返ってみると

チームとプロダクトが良い方向に確実に前進できたと思います。

ここからさらに前進を加速させられるように2023年度も頑張らないとな。。。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください