aaaiiuie

学習(備忘録)のため運用

未計画、行き当たりばったり、アジャイル開発

後世のために…

アジャイルとは

https://kotobank.jp/word/アジャイル-348

コトバンク引用

「俊敏な」「すばやい」という意味の英単語で、要求仕様の変更などに対して、機敏かつ柔軟に対応するためのソフトウェア開発手法。従来は、要求仕様を満たす詳細な設計を行ったうえで、プログラミング開発や試験工程に移行するウォーターフォールモデルと呼ばれる手法が主流だったが、この方法では、開発途中での仕様変更や修正が困難で、技術革新や企業環境の変化に即応することが難しくなった。アジャイルでは、仕様や設計の変更があることを前提に開発を進めていき、徐々にすり合わせや検証を重ねていくというアプローチをとる。

こういう一文なんだけどさ、ある一部の人間が認識違いを起こして 仕様変更を前提に開発すること と考えている人がいることに絶句する。

委託先で出会ったアジャイル得意な企業

「なんちゃってアジャイル開発」と言う言葉があるが、個人的に「未計画の行き当たりばったり開発」と言う印象も強い。

そもそもアジャイルを行う前に、しっかり方針とか要件(機能、非機能、画面)をまとめた上で「何故やるのか」「何を優先してやるのか」が非常に大切だと感じている。

あるシステム開発会社の話…

あるシステム会社に開発を委託した際、「アジャイル開発で行います!」という話になった。

  1. 必要なものを必要なタイミングで最小コストで作ります!
  2. 要件が大枠固まっていれば、後はエンジニアと話し合って詳細進めていきましょう!
  3. スプリントをまわし●週間に●回成果報告します!

この手の話で「作るものの要件が決まっていること」がポイントで「素早く進めるために、要件自体をアジャイルで…」と言う話もよく出てくる。そもそも作りたいものの方針が決まっていないのに「早く進めるために(時間ないから)アジャイルで…」は、見切り発車開発としか言いようがない。

プラスで「準委任契約で…」という話も一緒に出てくる。
中途半端で何も決まっていない上に「準委任契約」とはもうアジャイルではない。 これじゃSESと変わらない。

必ずやるべきこと

要件定義。これに尽きる。 そしてこの要件定義の内容も大規模になればなるほど大事!その中で特に大事なのものは、機能要件、非機能要件。

そして、適当な会社ほど「要件定義が業務(費用)として含まれていない傾向」があるので要注意。

結果

ウォーターフォールモデルで開発やってからアジャイルやろう。やるにしても、開始からテストリリースまで20営業日以内でできる小規模開発で試してみること。 若いベンチャーはアジャイルすぎる。