見出し画像

【システム開発】仕様が決まってない状態で開発することも多いのよね

長年エンジニアとしてシステム開発の現場にいると、当初のスケジュール通りに開発が進まないなんてことはよくあります。

よくあるのが、「仕様が決まってないけど開発を進める」ってことです。


通常の開発の流れ

開発の流れは、大きく分けて2パターンあります。

「ウォーターフォール型開発」と「アジャイル型開発」

画像1

画像引用元:backlog


ウォーターフォールは、最初から全部決めてPDCAを回すイメージ

アジャイルは、機能単位で何度も設計~開発を繰り返すイメージ

どちらもメリデメあるので正解というのはないですが、単位こそ違えど「企画→設計→実装→テスト」という流れで進むことは共通していますね。


仕様が決まってないけど開発を進めちゃうこと、あります

実装に入る前に設計(仕様確定)まで完了するのが普通なのですが、実案件ではそうそう綺麗にはいかなかったりします。


「開発は進めたい、でも仕様はまだ決まってないから曖昧な部分はある」

これ、あるあるなんです。

だから、せっかく作ったのにやり直すとか軌道修正することもしばしば。

仕方ないこととは思いつつも、開発担当目線でいうと勘弁してほしいですよね。


仮の正解に向かって突き進むしかない

仕様が決まってないとはいえ作らなければならない。

そんな時大事なのは、”仮の正解”を決めることです。

仕様が確定してないのはわかったけど、とはいえ向かう先を決めないと何も手をつけられないですからね。


一旦Aというゴールに向かっていって、Bに変更になったら急いでBに軌道修正する。

つまり、変更する前提で開発を一旦完成させていきます。

ガッツリ作りこんでから変更、なんてことも全然珍しくないですよ。。


変更しやすいように変数化、メソッド化しておく

仕様確定してないけど開発を進める場合は、変更前提で開発を進めるという話をしました。

どうせ変更するなら、変更しやすい作りにしておくべきですよね。

変更しやすくするためのポイントは、不確定部分を変数化したりメソッドしたりすることです。


変数化、メソッド化しておくメリットは、

1.変更箇所が明確になること
2.変更による影響範囲を絞れること

の2つです。


ちなみに、どこを変数化してどこまでをメソッド化するかについては経験値が必要だったりします。

コレといった正解がある話ではないので、どうやったら仕様確定後の修正がしやすいかを考えながら開発をするのが大事ですね。


開発現場は想定外のことがよく起きる

何はともあれ、システム開発というものは想定してないことがたくさん起きるということだけでもわかっていただければ。

人間が仕事をする以上、どうしてもトラブルゼロにはできないものです。


想定外のことが起きたときにどんな対応をするのか、それがエンジニアの腕の見せ所ですよーん。

それではまた。


運営ブログでは、プログラミングスクールに関しての情報発信をしています。

よかったら合わせてご覧ください。


この記事が参加している募集

リモートワークの日常

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
サカイユウヤ@フリーランスエンジニア

先にお礼を言っておきます。 ありがとうございます!

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。
エンジニアやりつつブログ書いたりしてます。noteではエンジニアにまつわるアレコレを綴ってます。|フリーランスエンジニア|リモートワーカー|伊藤博文と同じ誕生日|エンジニア歴13年|ブログ歴2年 https://sakai-kojiblog.com/
【システム開発】仕様が決まってない状態で開発することも多いのよね|サカイユウヤ@フリーランスエンジニア