製品開発の開始って?
こんにちは、元プログラマ・サラリーマンPM あぎんこです。
さて、製品開発と一言でいっても「どんな流れ?」って話ですが、自分がこれまでの仕事を通じて経験した内容から、まとめていきたいと思います。
ここについては、「PMBOK」に書かれているような体系だった流れではなく、自分の経験則からの記載となります。その点ご留意の上で参考になれば幸いです。
また、一言で「製品開発」といっても、項目が多岐に渡る為、ここでは大枠の流れの部分について自分の経験上の内容を記載します。
こんな人を対象に書いています
- 新社会人として、製造業の技術者になられた方
- これから製造業へ就職を考えている方
前提
計画を建てる上で、前提となる条件として大きく影響する要素として、「新製品」か「 バージョンアップ製品」があります。
当然、「新製品」だとこれまでの経験が通じないところもあるので、計画の不確定要素が多くなる為、難易度は飛躍的にあがります。その為、バージョンアップ開発とは異なり より開発のSpteが増えることが多くなります。
ここでは、新製品の開発を前提とします。
ソフト開発 開始までの流れ
各会社によって、ソフトウェア開発が開始するまでの流れは異なると思いますが、自分がエンジニアとして働き始めてから、約3社、5事業に携わりましたが、経験してきた流れは大差はありませんでした。
日本の製造業だと、どの会社さんも同じ様な流れになっているんだと思います。
(それだけ、王道的な流れってことだと思います。)
開発開始までの作業の流れ
- 「マーケティング」「製品企画」部門からの商品企画検討
- 商品企画から「ソフトウェア要求」や「ソフト構成」などの全体設計
- 「ソフトウェア要求」からの「ソフトウェア要件定義」・「プロトタイプの作成」
- 見積もり・技術リスクの抽出
- 仮計画(要員計画・日程案)作成
- 開発準備期間・技術リスクの回避・実現性検討
- 再見積もり
- 本計画策定(仮計画の手直し、品質目標、体制、コミュニケーション計画、調達計画などなど)
→ 開発開始!
実験的ソフト開発:IT0
PMとしての出番は、「2.」の「ソフトウェア要求」あたりから関与し始め、「4.」の「開発見積もり」あたりから、本格的なPM活動につながっていきます。
開発の始まり「Iteration 0」
活動初期は「準備段階」であり、自分は Iteration 0 なんて呼称したりします。
このIteration”0”では、プロトタイプの開発を必要最低限な人員リソース・機材リソースで、ほぼ 手探り状態の中、ソフトウェアの目標・目指すべき道・スタイル(ルール)を確立していきます。
”Iteration 0” で最低限実施する内容:
- 要員調達
- 社内/外から、検討が進められそうなスキルセットを持ったメンバーを探す
(※ 組織の枠組みで大体決まっていたりする)
- 社内/外から、検討が進められそうなスキルセットを持ったメンバーを探す
- 開発環境の準備
- 開発環境の選定
- CIでのビルド環境の準備
- 開発環境構築手順の作成
- 不具合・課題管理用トラッキングサーバーの準備
- 要求内容の具体化
- プロトタイプに向けた要求機能の選定&イメージ合わせ
- 技術課題・リスクのブラッシュアップ
- 開発プロセス(仮)の策定
- プロト開発用 設計プロセスの策定
- プロト開発計画(日程)の策定
- メトリクス収集項目・収集方法の構築(工数集計・レビューコスト集計などなど)
開発生産性のモリタリング
また、「プロトタイプの作成」あたりでは、その後の開発計画策定につながる「エンジニアの生産性」などのメトリクスを収集しつつ、モニタリングしていきます。
同様に、「ソフトウェア要求」に対する品質(どれだけ、製品としてのイメージが固まっているか?)についても、このあたりの「Q&A」の内容・数や、変更に伴う「開発生産性」への影響などについても、細かくデータを収集しておきます。
このIteration”0” での開発を通じて得られたデータを軸に、実際の開発の規模を捉えていきます。
計画は変わるもの!
開発計画はある意味、ソフト開発の近未来をこれまでの経験を生かして「予測」することになります。
開発対象のソフトウェアの難易度・ハードウェアからの前提条件・要求内容の品質・開発メンバーのパフォーマンスからアイデンティティ、メンバー間の関係性などなど、開発計画を策定する上では、変動要因が無数に散らばっています。
まずは、実験的なデータから大枠の開発計画を策定し、環境の変化に応じて柔軟に見直しをかけて、”QCD”を確保していく必要があるかと思います。