これはWHITEPLUS Advent Calendar 2020の3日目の記事です。
こんにちは、リネットのバックエンドチームでエンジニアマネージャーをしている八巻です。
ネット宅配クリーニングのリネットではWebで注文を受ける他に、クリーニング工場の生産をサポートする仕組みがあります。 ここのクリーニング工場の生産をサポートする仕組みをバックエンドと呼んでいます。
今年はチームの開発スタイルを大きく変えた年だったので、その取り組みを紹介したいと思います。
個人商店型のプロジェクト開発
最初に紹介するのは2019年9月から半年間やっていたプロジェクトです。
このプロジェクトでは従来の生産方式とは異なる新たな生産方式をサポートするための仕組みを構築しました。
開発の概要:
- 体制: PL1名、シニアエンジニア2名、エンジニア1名
- 期間: 2019年9月〜2020年3月
- 利用したツール: GitHub Project, Milestone, Issue
このプロジェクトではPLを含めてリネットの開発になれたシニアエンジニアが中心だったので、大きく3つに機能を分割し、それぞれシニアエンジニアとPL+メンバーに割り当てる方法でプロジェクトを進めました。
開発中の進行管理はGitHubのProject, Milestone, Issueを使い、それぞれのタスク洗い出しと管理は各機能の担当エンジニアがしていました。
この方式のメリットは
- 独立した機能を並行してすすめるためリソース効率が良い
- 割り当てられた機能の範囲を自由に開発できる
逆にデメリットは
- 機能ごとに属人性が高まり、ノウハウの共有がされにくい
- 機能ごとの進捗に差が出たときに他のエンジニアがサポートに入りにくい
- プロジェクトの進行具合が把握しにくい
結果として、プロジェクトが進むに従って進捗の差が大きくなり、受け入れテストの頃にはメンバー毎の負荷の差が大きくなってしまいました。 また、開発の属人性が高く、チームとしての一体感を出すのが難しかったです。
かんばん方式でのプロジェクトリリース後の運用安定化
プロジェクトのリリース後は、運用安定化のための依頼対応がメインになりました。
開発の概要:
- 体制: PL1名、エンジニア1名
- 期間: 2020年4月〜2020年5月
- 利用したツール: Trello
この期間はTrelloの「かんばん」を利用して対応しました。 開発メンバーが少ないこともあり、チーム開発というよりは、対応できる人がどんどん対応する形で進めました。
プロジェクトリリース後の依頼対応が多い場合などは計画を重視するやり方よりも軽量な「かんばん」の方が運用にあっていたと思います。
「かんばん」のみで運用すると、振り返りと計画がなくても進められてしまうため、そこが疎かになり、タスクの漏れや、やってもやっても終わらない感が出てきてしまうので、「かんばん」方式においても意図的に振り返りのポイントを設けることの必要性を感じました。
新しいメンバーのJoinとScrumの開始
6月に新しいメンバーがチームに加わりました。このころには依頼対応も落ち着き、プロジェクト開発で間に合わなかった機能や運用後に新たに必要となった機能の開発が中心になりました。
開発の概要:
- 体制: PL1名、エンジニア2名
- 期間: 2020年6月〜2020年8月
- 利用したツール: Google Spread Sheet, Trello, GitHub Project
チームに新しくメンバーが加わることになったので、それまでのシニアエンジニアを中心とした個人商店型の開発から、チームとして開発ノウハウをためて開発できるようにこのタイミングでScrumを導入しました。
やり方としては、Google Spread Sheetでプロダクトバックログを作り、施策を一覧管理しました。 そこから、プロダクトバックログアイテムをTrelloに転記し、進捗管理をします。 さらにGithub Projectで作ったスプリントバックログにエンジニアのタスクレベルで分解しました。
なれたツールで始めたこともあり、導入のハードルはあまりなかったですが、専用のツールではないために、転記が増えるというデメリットがありました。 また、同期をとるタイミングやベロシティの計測にも時間がかかり、スクラムを回すために時間がかかるようになっていました。
運用の煩雑さはありましたが、振り返りと計画をし、それのレビューを事業部とできるようになったため、チームとしてのフィードバックが回るようになり、チーム開発の基盤ができました。
Jiraの導入とさらなるメンバーのJoin
9月にチームに新たに2人加わり、チームで管理するタスクも増えてきました。 この頃はプロジェクト開発以外のバックエンドのプロジェクトや改善案件も出てきました。
開発の概要:
- 体制: PL1名、エンジニア4名
- 期間: 2020年6月〜2020年8月
- 利用したツール: Jira
リネットのフロントのチームではScrumの運用が進んでおり、そのチームがJiraを会社として使えるようにしてくれました。
バックエンドのチームでもJiraを導入し、それまでツールで分散していた情報をJiraに集約しました。 こうすることで、同期をそもそもする必要がなくなり、ベロシティの算出も自動でしてくれるため運用の煩雑さから開放されました。
チームとして見る場所が統一され、どこをみればいいのか分かるので、コミュニケーションも改善しました。
まとめ
2020年をチーム開発という切り口で振り返ってみました。
大規模プロジェクトの個人商店型の開発ででた属人性が高い、他のエンジニアがサポートに入りづらいという問題はチーム開発(Scrum)を取り入れることで徐々に解決できていきました。
リリース効率の良さは犠牲になっている部分がありますが、複数人が関わるプロジェクトでは一部が突出しても全体が終わらなければ進捗はでないので、今はこのやり方があっているという感触をもって進めています。
さいごに
ホワイトプラスでは、チームで一緒に開発し、事業に貢献したいエンジニアを募集しています。