【システム開発】仕様が決まってない状態で開発することも多いのよね
長年エンジニアとしてシステム開発の現場にいると、当初のスケジュール通りに開発が進まないなんてことはよくあります。
よくあるのが、「仕様が決まってないけど開発を進める」ってことです。
通常の開発の流れ
開発の流れは、大きく分けて2パターンあります。
「ウォーターフォール型開発」と「アジャイル型開発」
画像引用元:backlog
ウォーターフォールは、最初から全部決めてPDCAを回すイメージ
アジャイルは、機能単位で何度も設計~開発を繰り返すイメージ
どちらもメリデメあるので正解というのはないですが、単位こそ違えど「企画→設計→実装→テスト」という流れで進むことは共通していますね。
仕様が決まってないけど開発を進めちゃうこと、あります
実装に入る前に設計(仕様確定)まで完了するのが普通なのですが、実案件ではそうそう綺麗にはいかなかったりします。
「開発は進めたい、でも仕様はまだ決まってないから曖昧な部分はある」
これ、あるあるなんです。
だから、せっかく作ったのにやり直すとか軌道修正することもしばしば。
仕方ないこととは思いつつも、開発担当目線でいうと勘弁してほしいですよね。
仮の正解に向かって突き進むしかない
仕様が決まってないとはいえ作らなければならない。
そんな時大事なのは、”仮の正解”を決めることです。
仕様が確定してないのはわかったけど、とはいえ向かう先を決めないと何も手をつけられないですからね。
一旦Aというゴールに向かっていって、Bに変更になったら急いでBに軌道修正する。
つまり、変更する前提で開発を一旦完成させていきます。
ガッツリ作りこんでから変更、なんてことも全然珍しくないですよ。。
変更しやすいように変数化、メソッド化しておく
仕様確定してないけど開発を進める場合は、変更前提で開発を進めるという話をしました。
どうせ変更するなら、変更しやすい作りにしておくべきですよね。
変更しやすくするためのポイントは、不確定部分を変数化したりメソッドしたりすることです。
変数化、メソッド化しておくメリットは、
1.変更箇所が明確になること
2.変更による影響範囲を絞れること
の2つです。
ちなみに、どこを変数化してどこまでをメソッド化するかについては経験値が必要だったりします。
コレといった正解がある話ではないので、どうやったら仕様確定後の修正がしやすいかを考えながら開発をするのが大事ですね。
開発現場は想定外のことがよく起きる
何はともあれ、システム開発というものは想定してないことがたくさん起きるということだけでもわかっていただければ。
人間が仕事をする以上、どうしてもトラブルゼロにはできないものです。
想定外のことが起きたときにどんな対応をするのか、それがエンジニアの腕の見せ所ですよーん。
それではまた。
運営ブログでは、プログラミングスクールに関しての情報発信をしています。
よかったら合わせてご覧ください。