こんにちは、縁紡ぐです! ・システムを発注して完成までのながれがわからない ・システム開発の手法を手法を知りたい ・自分たちにあったシステム開発の方法を知りたいなぁ
『システム開発っていったいどういうながれでできあるのかがわからない?』と悩んでいませんか?
そんな方に向けて、今回は代表的なシステム開発のパターンについて書いていきます。あつし
この記事では、「システム開発を委託した時の、ながれを知ってすすめていけるようになりたい人向けに」に紹介しますね!
今回大切なのは、「開発手法のメリットデメリットを知るってこと」。
本記事で書いてあることを実践すれば、開発手法を知るができるようになりますので、ぜひご覧ください!
あつしの経歴
- 情報システム歴10年以上
- アジャイル型、ウォーターフォール型の両方を経験
- システムを開発する側も経験
システムの開発を委託して完成するまで代表的な方法について
システムを開発してもらおう!ってなってから、自分たちがシステムを使い始めるまでにいったいどんなことがあるのか想像できていますか?
ITを導入するぞ!という気持ちは大切ですが、まずシステム開発の手法を覚えていきしょう。
今回は、システム開発の代表的な手法2つ紹介します。2つの手法とは、
- ウォーターフォール型
- アジャイル型
このふたつが代表的な方法です。
まだ手法も説明する前から結論です。
- 大規模システムならウォーターフォール型
- 既存システムがあって要件がすべて洗い出せているならウォーターフォール型
- ITレベルが高くなければアジャイル開発型
それぞれの方法について確認してきましょう。
ウォーターフォール型
システム開発をしてもらおうってなっても、何をどうやっていくのか分からないですよね。それが普通なので大丈夫です。
まずは、代表的なウォーターフォール型です。水が上から下に落ちるように、『後戻りはできません!』って、言う方法です。通常システム開発依頼をしたらシステム会社が提案してくる方法です。


なぜ、システム会社がこの方法を提案してくれるかっていうと、何を作ればいいかが明確にできること(実際はむずかしい)、スケジュール管理がやりやすいからですね。システム会社さんにとっても予算管理は大切なことだから、区切りがある方がわかりやすいんですよね。
ウォーターフォール型のながれ
では、ウォーターフォール型の流を確認していきましょう。
- 提案依頼書作成提出(こんなシステム作って、目的や使う人数とかの条件を記入)
※機能一覧作成(作れると強い) - 見積もり(全体の見積もりは出てくるけど、要件定義後に再見積もりって言われる)
- 業者選定発注
- 要件定義(発注会社・システム会社)
- 開発費用見積もり(だいたい、当初より増える)
- 請負契約
- 開発作業(システム会社作業)
- 単体テスト・結合テスト・システムテスト(システム会社作業)
- 受入テスト・並行稼働テスト(発注会社作業)
- 本稼働
注目ポイントは、要件定義後に開発以降の見積もりが出てくることですね。だから、最初にシステム会社を選ぶ時って本当に大切。システム会社というより、システムエンジニアさん次第ですね。
提案依頼書の時には、2000万円でできるって言ってたのが、要件定義後に5000万とか1億とかになることはあるので。それは、システム会社が悪いっていうより、発注側が提案依頼書の時点で書いていなかったことや、アイデアがたくさん出てるからですね。
ウォーターフォール型の開発会社にとってのメリット
仕事で計画を立てた時って、前倒しになる時より遅れる方が多くないですか?
システム開発においてスケジュール管理は、とっても大切なことなんですね。システムエンジニアは、1日○○万円で動いていることがほとんどなので、期間が延びれば、システム会社にとっては、利益を削ることになるからです。
スケジュールがずれる原因のひとつは、発注側の企業がなかなか仕様を決めれないことで発生することが多いかな。わたしのところは、それなりに人工を割いてやっていますが、それでも内部調整で時間がかかったりします。結果、納品がおそくなって、費用が増加した時に、発注側は、
「なんで、費用たかなるーん!」
ってなるんですよね。
なので、ウォーターフォール型は、仕様で検収をおさせて必ずそこでこの内容で作ります!って、されますね。多少は、吸収します。なんて言葉はよくありますが…まぁ、…
- スケジュール管理がやりやすい
- 仕様が確定しているので責任分界点がわかって保身出来る
- いつからSEの手が空いてくるかわかるので次のプロジェクトへのシフトがしやすい
ウォーターフォール型 発注会社にとってのメリット
情シス部門でいたら、絶対に訪れるのが、『いくらで何ができるようなるの?』ですね。社内決裁をもらうためには、必ずといって必要になってくる。
まぁ、だいたい後で追加になることが経験上多いですが(笑)でも、本当にこれが中小企業での開発時の問題だと思ってる。ウォーターフォール型で計画も予算どおりにいくプロジェクトなんて、システム会社も発注側も1流でないと無理だと思う。ほんとうに…
開発工程に入ってからメリットが何かあるかと言われると…特段ないような…
なので、メリットのまとめはこれだけ
- いくらで何ができるかが分かりやすい
アジャイル型
最近、とくに増えてきているのがアジャイル型。わたしも発注側として、そして開発者としてアジャイル型の良さを感じています。
アジャイル型ってのは、小さく作って使ったり触ってみながら、どんどん機能追加していこうよ!ってやりかたですね。


このやり方は、システム開発に慣れていない発注側にとって実際使いながら、こんなのがあったらもっと便利になるな!って、分かりながら進めれるので、本当に必要な機能を追加していくことができるんです。
逆に言えば、ウォーターフォール型の時は、使われていない機能って出てくるんですよね…もったいないけど。
アジャイル開発のながれ
ウォーターフォール型は、開発するシステム全体の内容を決めて、設計して、開発してって流れですが、アジャイル開発はそれを機能ごとに繰り返すってイメージですね。
実際は、作る資料もウォーターフォール型に比べたら減るためウォーターフォール型を分けただけで他は一緒。ってわけではないですね。それでは、流れです。
- 提案依頼書作成提出(こんなシステム作って、目的や使う人数とかの条件を記入)
※機能一覧作成(作れると強い) - 見積もり(おおよそこのぐらいかなぁ。でもどうなるかは不明。だって要件きまってないもん)
- 業者選定発注
- 準委任契約を結ぶ
- 要件定義(発注会社・システム会社)
- 開発作業(システム会社作業)
- 単体テスト・結合テスト(システム会社作業)
- 受入テストしないこともある
- 本稼働
- 5に戻って新機能を追加
※5~9がくりかえされる
注目ポイントは、要件定義と本稼働がくりかえされることです。システムを早くに使い始めることができるので改善を早く着手することができますね。
アジャイル開発型の開発会社にとってのメリット
アジャイル開発型の場合、契約形態は、準委任契約です。なので、システム会社はシステムを完成させなくても責任はありません。どういった作業をした報告をするぐらいが契約上のことです。
システム会社にとって、納期に間に合わなせないといけないっていう管理も減り、発注側にとっていいシステムを作ることに時間を多く割り当てることができます。
委任契約なのでいつまで続けてくれるかわからなくて、急に来月予算内からやめるわっていう恐怖が開発側にはあるかもしれませんね。そこらへんは、うまく事前調整してあげる必要がありますね。
- スケジュール管理の負担が大幅にへる
- 資料を作る作業工数が減る
- お客様にとっていいシステムを作るために時間を割り当てれる
アジャイル開発型の発注会社にとってのメリット
いちばんいいことは、実際触りながら必要な機能を追加していけることです。認識相違も起きにくいし、実際使ってるから、何をいちばん最初に欲しい機能かも分かりやすいですね。だから、費用対効果も高くなりやすいんです。
まぁ、エンジニアさんとうまくコミュニケーションをとって次に起こりえる追加機能とかをちゃんと伝えておくことが必要になりますが。
なら、アジャイル開発でやればいいんだね!って、思うでしょう…でも、会社で決裁をもらますか?
1人月100万円のエンジニアさんと50万円のエンジニアさんで、6か月間約1000万で開発してもらいます。何がどこまでできるかは、わかりませんが!
これで、決裁が取れますか?
いやーなかなか難しいでしょ…正直経営層で、独断で決めれる立場じゃない限り、これがあるからアジャイル開発型は選択しにくいんですねー
- 本当に必要な機能から作っていける
- 費用対効果を上げれる可能性が高い
- 見て触ってできるなんて、分かりやすくてサイコー
再結論
システム開発って、思っている以上に経験値と妄想力(想像なんてレベルじゃダメ)がないとダメです。プロジェクト管理も大切なのは妄想力!と、いつも後輩には言っています(笑)
システムは、完成したら全然改修をしないかというと、企業の成長、法改正、環境の変化によって結構していくものです。ちょっと昔だったら、会社のパソコン以外で動かす必要がなかったシステムが、外出先でスマホから出来るようにしたい。なんて要望すげー贅沢になってるもんです。
だから、社内説得ができるならアジャイル開発型の方がいい。
- 大規模システムならウォーターフォール型
- 既存システムがあって要件がすべて洗い出せているならウォーターフォール型
- ITレベルが高くなければアジャイル開発型
私が思うシステム開発で大切なこと
ウォーターフォール型でもアジャイル開発型でも大切なことは、自分がシステムを使う立場だったら、どんな風に作るだろう?こんな、機能が欲しくなるだろう?って、妄想力がある人をエンジニアさんとして選ぶことです。
たとえ単価が高かったとしても、どれだけメリットがあるか計り知れないと思う。
今回は、2つの代表的な開発手法について紹介しました。参考になれば嬉しい限りです。
コメント