プログラム開発する前の準備
プログラム開発する前に何を準備するか、とその注意点をまとめてみました。
戦略・方向性の明確化
製品開発の基本ですが、「誰のために、何を実現するための製品」かを明確にし、方向性の意識合わせが重要です。
長期ビジョンのゴール(目指すもの)と、今回の開発のゴールを明確にします。これが不明確になっていると、ちょっとした仕様決めの判断も少しずつ狂いが生じてきます。開発する前に徹底的に製品戦略・方向性を議論し、開発計画にもりこむことが必要です。
開発者のモチベーション向上
モチベーションが上がる開発と上がらない開発の差はなにか?
いっぱい給料がもらえればいいというのもあるが、開発者一人一人が製品への思い入れや、自分の意志をもち、活発に意見を交換でき、開発できたら、いい製品ができるのではないかと思います。
そのために、プロジェクトマネージャーが行うことは、短期の目標(目前の顧客や時期の明確化)や社会的な意義を共有することです。
開発に必要な技術(スキル)の洗い出しと人集め
開発に必要な技術(スキル)を整理し、調査することが重要。スキル所有者を集める。まわりに居ない場合は、アウトソースする。
対応としては、
- 開発の前提になる技術の明確化
- 技術調査、調査資料の作成
→これらの技術を保持している開発者を探し、メンバーに加えることが重要です。
技術的なスキル以外に「プロジェクト規模」の大小によって、プロジェクトマネージャ(PM)の経験(スキル)が必要です。
失敗の多くが調査不足による「機能の欠落」である。よくあるのが、「エラーの想定不足」というのがあり、どの種類のエラーが発生して、どう処理すべきか実装されていないケース。この場合、プロジェクト全体の構成にも影響することがあり、想定されるマトリックスを作ったりして、追加開発することが必要になります。この時に、「ごまかそう」として、場当たり的な対応をすると、「トラブル循環」に陥っていくので、開発者は勇気をもって「再設計」や「工程の変更」を行う。
必要な技術の調査が不足したため、以下のような失敗例がある。
(失敗例1)
通信系のプログラムの開発で、使用する通信プロトコルスキルのない人が開発したので失敗した。発注時に、必要なプロトコル仕様書を提示したり、スキルの確認を行う必要があった。これらのことを怠り、外注まかせにしたために失敗した。
(失敗例2)
JavaによるGUIプログラムの開発を行ったが、調査が不足しており、どのAPIを使用するか、使用方法などを誤解して開発を進めた。その後、テストで問題を検出し、相当量の追加開発が必要と判明、仕様設計からやり直した。
まとめ
戦略・方向性を明確にして、開発できる人材を集め、技術情報を収集する。というのが基本で、リーダーは開発者が同じ目標に向かって、モチベーションを向上させることに気を配りながらプロジェクトを進めていきます。また、開発者とのコミュニケーションをとり、問題の発生に早く対応することが重要です。