見出し画像

二種類の開発の進み方どちらがいい?

開発の進め方には二種類あるとご存知ですか?

一つ目はウォーターフォールという一方通行型な進め方です。もう一つはアジャイルというトライアンドエラーな進め方です。

部下や発注先から、ウォーターフォールでやりたいとか、アジャイルでやるべきだとか意見をもらう場合があります。その際に経営者としてどう意思決定すべきかの目安をまとめました。

どちらが優れているか?

若いエンジニアは「アジャイルこそが次世代の開発の進め方である。ウォーターフォールは古い。」と主張される場合があります。これは明らかに誤りです。あくまでも適材適所になります。

まずはアジャイルやウォーターフォールという言葉を初めて聞いた方のために簡単に説明します。

ウォーターフォールとは?

昔から使われているシステム開発の進め方です。最初に何を作るかを明確にした要求や仕様というものを作ります。次に仕様に基づき設計をし、そして設計をもとにプログラミングをします。プログラミングが終わったらテストを行いシステムの品質を検査し、品質が保証されたれリリースをします。

要求を作りリリースするまでの流れが一方通行であるのが特徴です。

https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%A2%E3%83%87%E3%83%AB

アジャイルとは?

プロジェクトを一週間単位から一ヶ月程度の単位で区切ります。区切りごとに、仕様の策定や設計を行いプログラミングをし、チーム内部でリリースをします。区切りが終わったら振り返りを行い次の区切りでは新たな仕様の策定やいままでの仕様や設計の見直しを行いプログラミングを行います。

繰り返し行う改良をしながら開発を続けるのが特徴です。

https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA

ウォーターフォールの良し悪し

○ 作業の生産性は高い
○ 多人数で最短で開発を効率よく最短で進められる
○ 作っては壊すスクラップアンドビルドがないから無駄がない

╳ 要求や仕様を間違えると全部無駄になる
╳ 設計を間違えると品質が悪いシステムになる

アジャイルの良し悪し

○ お客様のニーズが明確でない場合に、コアな部分だけを作り見せてフィードバックを得て要求や仕様を煮詰めながら開発をすすめることができる
○ 初めてトライする技術分野で正しい設計がわからない場合は、基本部分のみを設計してプログラミングし動かしてテストをしながら設計をブラッシュアップすることができる
╳ 作り直しが発生するので完成するのに時間がかかる
╳ チーム内のコミュニケーションが重要
╳ 時間当たり生産性は低くなる
╳ チームの人数を増やすことが難しい

意思決定の基準

顧客が誰でニーズは何かの正解が見えない新規事業などはアジャイルで進めることが大事です。

また開発予算が少なく事業の進捗と共に追加開発をしていく場合もアジャイルで進めましょう。

逆に業務システムなど正解が見えるものはウォーターフォールで効率よく進める方が良いです。

注意点

アジャイルとは、要求や仕様を決めずに、開発者に自由に開発させることではありません。

きちんと経営者が事業や市場に関する仮説を立てること。仮説を検証するために最低限な必要な仕様を立てることが大事です。

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