あなたは「ソフトウェア開発」と聞いて
どの様に進めている姿を想像しますか?

実は、ソフトウェア開発も
さまざまな、やり方があって
会社やチーム、
もしくは作成するソフトウェアによって
違います。

その指標はいくつかあるのですが、
今回は「計画型」と「アイデア型」の
開発についてお話したいと思います。

計画型ソフトウェア開発

計画型ソフトウェア開発は
その名の通り、きちんと計画を立てて
その通りに開発を進めていくという
形のソフトウェア開発で、
従来からある手法になります。

ソフトウェア開発には
要求分析、設計、コーディング、テスト
といったフェーズがありますが、
それらを締め切りから
逆算してスケジュールを立てます。

しかし、開発は途中で
思い通りに動かない等のトラブルや
お客さんの要望による
急な変更など、スケジュールを
狂わせる要因がいろいろと存在します。

この様にスケジュールを
狂わせる可能性があるものは
リスク」として考えます。

アイデア型ソフトウェア開発

アイデア型のソフトウェア開発は
計画は一応立てますが、
それは、あまり重視せず
計画通りに進める事よりも
ソフトウェアの価値を高める事に
重きを置いた開発方法です。

旧来の計画型の開発では、
設計、コーディング、テストの
フェーズに入ってしまうと
クライアント (お客さん) は
そのソフトウェアができるのを
ずっと待つ事になりますが、
長い時間待った挙句
出来たものはイメージと
違っていた・・・という事が
往々にして起きました。

そこで、生まれたのが
アイデア型の開発で
近年は「アジャイル開発」として
広く認知されています。

アイデア型の開発は
クライアント (お客さん) との
コミュニケーションを重視します。

全てが完成してから
ソフトウェアを見せるのではなく、
途中段階で動くものを見せて、
相談し、技術者とクライアントの
考えのギャップ(ずれ) を解消していきます。

計画型とアイデア型の違い

計画型とアイデア型の
違いの一つとして、
途中で出てきた心変わりや
新しいアイデアを
どの様に捉えるかというのがあります。

計画型はそれを
スケジュールを狂わせるリスク
考えますが、
アイデア型は、それは当然起こるもの・・・
もしくはソフトウェアの価値を上げる
チャンスとして捉えます。

これだけ並べると
アイデア型の方が良い様に聞こえますが
計画型が求められるケースも
あります。

それは、市販されているソフトや
銀行等のシステムの様に
高い品質が求められるケースです。

その様な場合は
テスト等を計画立てて行ない、
いろいろなケースで
問題なく動く事を
保証しなくてはいけないので、
計画型の開発が向いています。