
手探りのシステム開発から解放されたい
終わりのない要件定義をクローズしたい
障害だらけのシステム開発品質を上げたい
といった、悩みを解決します。
根本原因は、
・システム開発の全体感がないまま開発に放り込まれる
・知識が体系化できない
・誰も教えてくれない、そもそも教えてくれない
です。
上司・企業も悪気があるわけではなく、そもそもそんなにIT詳しくなかったり、企業として社内SEの教育まで実施している余裕がないのが現実です。
本記事を読むことで、社内SE/情シス初心者の方が必要な一連のシステム開発を理解しスキルアップすることができます。
✔記事の信ぴょう性

SE+社内SE歴15年以上。一部上場企業の社内SE+IT講師として活躍しています。社内講習でも皆さんにお伝えし何人も育ててきた経験をもとに情報をお届けします。私自身も、様々な領域でのシステム開発、大規模ERP開発、システム運用等実績があります。
システム開発が上手く進まない理由と対策
そもそもですが、システム開発を上手く進められない原因は、
・開発スキル不足
・リソース不足
・予算不足
ではありません。
段取りが悪い事が原因です。
どんなプロジェクトも進め方さえ覚え上手くできるようになれれば着地させることができます(体験談)。
開発スキルが足りないー>前もって必要なタイミングで外部を巻き込んでおく
リソースが足りない→要件定義で一旦クローズし再度上程するように仕向ける、とか、他プロジェクトと調整し上手く人が回せるようにする
予算が足りない→スコープをしっかりと要件定義時に絞っておく
と言った具合です。
進め方=段取りは、スキルの有無・広い狭いにかかわらず初心者のころから身に着け磨き上げることをおすすめします。スキル・知識が広がればあなたのシステム開発できる領域がその分広がっていくイメージです。
以下で、初心者の方がシステム開発を上手く進められるように抑えるべきポイントを6つのステップでご紹介していきます。
初心者の為のシステム開発を身に着ける6ステップ
1: システム開発の4つの全体像をおさえよう
2: システム開発にベンダーを巻き込もう
3: システム開発の難所、要件定義を上手く推進しよう
4: 使えると非常に便利なPoCを使いこなそう
5: システム開発のテストを推進しよう
6: システム移行・リリースを推進しよう
並行して、根本的なシステム開発のスキルアップにおすすめも紹介します。
システム開発をプログラミングスクールで基礎からしっかり学びたい人におすすめは、「社内SE・情シスにおすすめのプログラミングスクール厳選3社」でご紹介しています。
ビジネススキルを伸ばしたい人には、「【初心者必見】ビジネススキルの勉強何から始めたらいいの?解決」がおすすめです。
ステップ1:システム開発の4つの全体像をおさえよう

システム開発を上手く進めれない理由は、「前もって未来の準備をしない・出来ない」です。
原因は、次に何をすればいいか分からないからというシンプルなものです。
『SIerはシステム開発のプロなので、システム開発に必要な段取りをお客様が迷うことないように準備してプロジェクトが遅滞なく進むようにコントロールする必要がある。しかしほとんどのSIerにはこの思想がない。』 / “絵に描いたよう…” https://t.co/QQ3BJi7rI2
— Kiyoshi SATOH (@stealthinu) June 20, 2016
私の知っている優秀なPMOの方がは以下の様に教えてくれました。
世の中での大抵のシステム開発は、
「未知なる技術とのチャレンジなどではなく、
大抵は既存の技術をいかに組み合わせて仕組みを構築するか」
であるよって、重要な事は、技術力ではなく段取り力
段取りさえできればやってやれないシステム開発はない!
by 優秀なPMOの知人
つまり、システム開発において重要な事は、全体像の理解です。全体像を理解し一度システム開発のフレームワークを作れれば相当な武器になります。
システム開発プロセスの全体像
システム開発の全体の流れ・工程の理解で手探り感を解消しよう
システム開発に必要な成果物の全体像
システム開発の成果物・ドキュメント一覧まとめ【DLリンク有】
システム開発に必要な契約の全体像
システム開発の契約3種3形態を正しく把握しよう
システム開発の登場人物の役割の全体像
システム開発【ユーザー・社内SE・ベンダー】役割の違いと勘所
この4つをおさえれば、システム全体像は網羅可能です。あなたのITスキルは相当脱初心者に近づきました。
この全体感に加え、各工程のポイントを理解し、さらにあなたの実体験で得た知見を蓄えられるフレームワークを構築できれば確実に脱初心者の道を歩み始めたと言えます。
全体像を解説しましたが、もし「システム開発の目的とは?【本質】」も読んでおきたい方は、こちらの記事をご覧ください。
ステップ2:システム開発にベンダーを巻き込もう

システム開発の全体像が分かったところで、いよいよ各工程の具体的な進め方の解説になります。場合によっては、要件定義フェーズからベンダーを巻き込み推進するケースもあります。
一般的な開発を依頼するベンダーの考え方は、

既存ベンダーで見積ではない場合、工数ばかりかかって適切なベンダーへの依頼が出来ません。その際に便利なのが、開発業者一括見積サイト【発注ナビ】です。詳細に関しては、「システム開発の外注探しに便利!一括無料見積りサイト|IT担当必見」の記事で詳しく解説しています。
ステップ3:システム開発の難所、要件定義を上手く推進しよう

システム開発の難所と言えば、要件定義です。
システム開発の失敗のほとんどがこの要件定義で仕込まれます。なんと、システム開発の遅延理由の50%は要件定義で発生します。この要件定義を上手くこなすことが出来ればシステム開発プロジェクトの成功確率を上げ、更に、最終的に開発するシステム開発・サービス品質を上げる事が出来ます。参考になるのは、Amazonに学ぶシステム要件定義を失敗を未然に防ぐ考え方のコツです。
コツは、
Amazonの強みの源泉にある徹底的なユーザーファーストの方針
①顧客に執着せよ。
②顧客のニーズから逆算せよ
要件は、ユーザーが求めるか否かが出発点です。かなりの失敗するプロジェクトでは、最終ユーザーの視点を無視し、あれもこれもと必要のない要件を足しできもしない開発に悪戦苦闘します。
上記の本質的なコツをふまえ、システム要件定義を具体的に上手く進める方法は、以下です。
要件定義を上手に推進する為に理解が必要な考え方は以下です。
システム要件定義とは、業務要件定義の一部。全部ではない
システム要件定義とは、システムの要件を決めるだけではなく後工程の段取りも行う
システム要件定義とは、無形なアイディアを有形に変える行為だから難しい
システム要件定義を上手に進めるために、【システム要件定義の進め方・必要成果物とは?】の記事で要件定義工程の勘所と必要な成果物に関して解説しています。
あわせておすすめ記事
上流工程が【つまらない・やりたくない】解決方法
ステップ4:使えると非常に便利なPoCを使いこなそう

日進月歩するIT技術、当然新しい技術の導入はリスクを伴います。そんなリスクを軽減しつつもプロジェクトを前進させる有効な方法がPoCです。
PoCとは何なのか?、意味的には(Proof of Concept)=概念検証と言われていますが、社内SE/情シスにとっては、システム開発を上手く進める技の1つです。上手く使えることでプロジェクトリスク低減が可能になります。
✔一般的なシステム開発・導入時のPoC(概念検証)導入タイミング
一番良く見かけるケースは以下のPoCです。

上記の様に本番導入の検討前に、部分検証を机上等で行い本プロジェクトのリスク低減を図ります。さらに、システム開発を上手くする上で更におすすめの進め方があります。
その方法は、仮に成り行きでビジネス要件や技術検証が曖昧な場合、小さい失敗やビジネス要求の甘さを分からせるために切り出したPoCをわざと持ち掛ける手もあります。←これができると相当上級な手段です。
そんな便利な飛び道具のPoCを学びたい場合は以下がお勧めです。
ステップ5:システム開発のテストを推進しよう

完成したソフトウェアの品質を担保するために必要な工程が、システムテストです。
システム開発には、単体テスト、結合テスト、システムテスト、UAT、運用テストと言った様々なテスト工程が存在します。それらのテストの目的と方法の違いを理解し効果的なテストを推進する必要があります。
システムテストの進め方のコツは、
・テストケースを漏れなくあぶりだす事
・テスト要員を沢山投入する事
・時間をかける事
ではありません。
システムテストを上手く推進するコツは、適切な時に適切なテストを適切に行う事です。
システム開発には様々な役割のテストが存在し、その各テストに目的と狙いがあります。それを適切に行わなければ、工数ばかり消耗し品質は上がりません。
システム開発のテスト一覧
単体テスト(UT:Unit Test)
内部結合テスト
外部結合テスト(CT:Combined Test)
システムテスト(ST:System Test)
インフラテスト
性能テスト
運用テスト
受入テスト(UAT: User Acceptance Test)
それぞれのテストの役割と目的に関しては、「システム開発のテスト全体像とは?工程・種類を分かり易く解説」の記事で詳しく解説しています。
ステップ6:システム移行・リリースを推進しよう

システム開発もいよいよ大詰めです。しかし、システム移行は一段と気を引き締めて準備に取り掛かる必要があります。
システム開発の最初の関門が、要件定義で、最後の砦がシステム移行です。
その最後の砦で良くつまずいてしまうリスクは、
①あいまいなシステム移行の定義
②広がりがちなシステム移行の範囲
③話しがややこしくなるデータ移行
④バッファーのないシステム移行設計
です。これらのリスク低減方法は、「システム移行計画のリスクと抑えておくべき4つのポイント」の記事で詳細をご説明しています。
システム移行の言葉の定義、抑えるべきリスクとそのポイントを解説していきます。
社内SE初心者【システム開発基礎ガイド】全体像理解~開発~テストまとめ
システム開発上手く進めるために必要な事は、システム開発の全体像を理解しフレームワーク化することです。この全体の流れをおさえ各システム開発工程を推進することで前後の工程の成果物の関連や、各工程でやるべき事・やらなくていいことが明確になります。
段取りはシステム開発スキルの大小にかかわらず初心者のころから覚え経験と共に洗練することをおすすめします。
又、並行してシステム開発とビジネススキルを磨くことであなたの開発できる領域を広げていきましょ
・オンライン講座 社内SE/情シスの情報収集に便利!おすすめ勉強会・研修・セミナー
・書籍 社内SEの勉強に超おすすめ本22冊|誰も教えてくれない解決
・プログラミング 社内SE・情シスにおすすめのプログラミングスクール厳選3社
本記事でご紹介したシステム開発の進め方は以下の一覧です。
加えて、お薦めはやみくもに勉強するのではなく、先にキャリアプランを構築し、狙ったプランに沿ったスキルアップを出来れば後々の転職やステップアップに最短で進むことができます。
社内SE/情シスの方向けのキャリアプランの考え方は、「キャリアプランが思いつかない。エンジニアにおすすめの考え方」の記事で解説しています。
ここまで、読んでいただいてありがとうございます。
あなたのシステム開発レベルが上がりより楽しんで開発出来ることを願っています!