こんにちは、トレタ VPoEの北川です。
カジュアル面談など面談の中の応募者からの質問で、トレタの開発プロセスはどういったものですか?というのはよく受ける質問です。今回は現在のトレタの開発プロセスが日々どう行われているかについて紹介したいと思います。
アジャイル vs ウォーターフォール
開発プロセスにおいうてアジャイル vs ウォーターフォールの論争は令和の時代になっても今だに行われていますが、トレタの開発はどっち、という前にそれぞれの定義を整理しておきましょう。
出典: martinFowloer.com WaterProcessから抜粋
まず、「ウォーターフォール」の明確な定義はないようですが、一般的にはプロダクトの開発工程を段階的に行なっていく手法を指して呼ばれています。主に開発スコープと納期がロックされた環境で使われています。
対して、開発スコープを分割して開発サイクルを回していく反復型(Iterative)プロセスがあります。ウォーターフォールでは各開発工程の期間が長いため、前工程への差し戻しがプロジェクト全体に大きな遅延をもたらすため、反復型では開発スコープを小さくすることで大幅な遅延リスクを小さく抑えています。
出典: martinFowloer.com WaterProcessから抜粋
最初に定めたスコープを分割した反復型の中には、それら分割したスコープを随時入れ替えたり途中で新しい機能を追加するなどして、開発スコープを柔軟に扱う適用型プロセス(AdaptivePlanning)があります。プロジェクトの状況やデリバリーした機能のフィードバックを受けて計画を更新していくことで開発状況の変化に応じたより柔軟に対応ができます。
さらにその中でも開発サイクル(スプリント)ごとに開発スコープを都度決めていくのがアジャイルとなります。
まとめると、以下のようになります。
| 計画の変更 | 開発サイクル | |
|---|---|---|
| ウォーターフォール | なし | 1 |
| 予測反復型 | なし | n |
| 適用型 | あり | n |
| アジャイル | あり(スプリント毎) | n |
トレタでの開発プロセス
上記の整理をしたところでトレタでの開発プロセスはどれかというと、予測反復型と適用型の混合です。

機能を検討する際にはまずは予測型のように最終的な理想系のUXの計画と、システムとしてどう実装していくかを設計を行い、おおよその開発工数の全体感を作ります。
次にユーザーに価値のある単位でフェーズを分割します。反復型にしてユーザーになるべく早く価値を届けるようにするためです。ここで分割したフェーズは大体1〜2ヶ月の大きさになります。機能の大きさにも寄りますが、影響範囲が大きく工数がかかる機能だと3~4フェーズになることがあります。
分割したフェーズでスケジュールを立てて行きますが、3~4フェーズ目になるとスケジュール上には置かずにバックログに積む場合があります。適用型のように途中で他に優先度の高い機能開発が入るなど状況の変化に対応するためです。 このやり方はいわゆる「ローリング・ウェーブ計画法」と呼ばれている手法で、将来の不確実性が高いのでおおまかな設計や方針は立てつつ、直近の詳細のみを詰める、というやり方です。
先行フェーズのフィードバックを受けてから後続フェーズの仕様を決めていく場面もあります。こちらはより適応型に近いプロセスです。 トレタのプロダクトは飲食店SaaSとして提供しているため、規模や業態が様々なすべての飲食店のニーズをSaaSという形で一つの仕様にするのはなかなか難しいです。最初から多様な導入店舗にヒアリングをして最大公約数を求めようとすると、かなり複雑な仕様となってしまうことがあります。
そこで、よりニーズが顕在化していてその機能ができることで明確な店内オペレーションのイメージ(利用イメージ)ができている一部の店舗のニーズに応える形で初期開発(Phase1)の仕様を設計するケースがあります。要望としては上がっているが明確な利用イメージができていない店舗にあててみても、実際に提供した時にはやはりフィットしなかったということが往々にして起きるためです。より利用イメージが固まっている店舗の場合は、こちらが想定した提案に対してオペレーションにフィットしないと感じたら明確に「NO」と言っていただけます。そのように一定数の明確なニーズに応えた初期仕様(プロトタイプ)をまずは作成します。
初期仕様が定まったらそれをベースとして他の複数の導入店舗に対してヒアリングを重ねます。最初のヒアリング時点に比べ機能仕様が定まっているため、より解像度の高い状態で各店舗へのヒアリングが行えます。そこから得られたフィードバックをもとに、複数の店舗でも満足して利用いただける汎用版として次フェーズ(Phase2〜)の仕様やスコープを策定していきます。
さいごに
冒頭にある面談などでトレタでの開発プロセスはどういったものか、という質問に対して、アジャイル的なプラクティス(かんばん、ストーリーポイント、スタンドアップなど)は取り入れているがウォーターフォールとアジャイルの中間くらい、と今まで説明していましたこの記事を書いていくなかで自分でも整理ができました。
ウォーターフォールとアジャイルのどちらが良いかという論争に対して自分は優劣をつける必要はないと思っていますが、自社の開発チームや状況、対象の開発内容に応じて開発プロセスの適した箇所を部分的に取り入れていくのがよいと思います。