見出し画像

アジャイル開発での詳細設計の捉え方

ここ2年ほど、Web業界におけるアジャイル開発の設計(ウォーターフォール開発でいう詳細設計の役割)について、どのようなアプローチが最も効果的なのか疑問に思っていました。

設計から実装までエンジニアに任せられるのがいい点ではあるのですが、
従来のウォーターフォール開発と比べて、アジャイル開発は仕様の可視化(ドキュメント化)が不十分に感じることがあります。特に、詳細設計が抽象的で、結果として細かいバグが発生しやすいという印象があります。

以下のような状況に一度は遭遇したことがあるでしょう。

  • 仕様の確認を求めると「ソースコードを見て」と言われる。

  • ソースコードを見ても、細かい条件分岐やドメイン知識が必要な部分は理解しきれない。

  • チケットやSlackでの会話を辿って仕様を把握しようとする。

  • 不明確な依頼に対し、エンジニアが独自の解釈で実装を進める。

  • コードレビュー時に、レビュワーが仕様を十分に理解していないと、考慮漏れが発生しやすい。

  • 細かい仕様はテストでも見逃されがちである。

スタートアップの初期段階や小規模プロジェクトでは、関わるメンバーが少なく、ドキュメントは最小限で済ませる方が開発がスムーズに進むこともあります。
しかし、中〜大規模の企業では、アプリやシステムを中長期的に改善していくため、初期開発だけで終わることは少ないです。

例えば、初期開発の後に2次開発、3次開発と続く場合や、スプリントごとに新機能を追加していく場合など、初期開発時には気にならなかった仕様の不明確さが、次第に技術的負債として蓄積していきます。
仕様も明確にしたいが、ドキュメントが多くなるのも避けたい。。

このような課題を解決するため、私たちは詳細設計のミニマムの成果物を以下のように定義し、開発を進めています。

  • アプリ・システム全体の処理をシーケンス図として残す。

  • Notionを使用して、Figmaを埋め込む形で画面設計書を作成する。


この方法を取り入れることで、アジャイル開発における詳細設計の課題を効果的に解決しています。


いいなと思ったら応援しよう!