どのような状況であれば、チームにプログラマーを追加すると、すでに遅れているプロジェクトの開発が実際にスピードアップするのでしょうか?
ベストアンサー1
正確な状況は、明らかにプロジェクトに非常に固有のものです (開発チーム、管理スタイル、プロセスの成熟度、主題の難しさなど)。これをもう少し明確にして、過度に単純化することなく話せるようにするために、あなたの質問をもう一度述べたいと思います。
遅れているソフトウェア開発プロジェクトにチーム メンバーを追加すると、既存のチームが完了まで作業を続けた場合と同等の品質レベルを維持しながら、実際の出荷日を短縮できる状況はありますか。
私が思うに、必要ただし、これが起こるには十分ではありません(順不同)。
- プロジェクトに追加される予定の個人は、以下の要件を満たしている必要があります。
- プロジェクトの問題領域について少なくとも適切な理解があること
- プロジェクトの言語と、与えられたタスクに使用する特定のテクノロジーに精通していること
- 彼らの熟練度は、それぞれ最も弱い既存のメンバーまたは最も強い既存のメンバーよりはるかに劣っていたり、はるかに優れていてはいけません。弱いメンバーは、三次的な問題で既存のスタッフを疲弊させ、一方、強すぎる新しいメンバーは、彼らが行ったことや行っていることのすべてが間違っているとして、チームを混乱させます。
- 優れたコミュニケーション能力を持つ
- 高いモチベーションを持つこと(例:促されなくても自主的に仕事ができる)
- 既存のチームメンバーには次の要件が必要です。
- 優れたコミュニケーションスキル
- 優れた時間管理スキル
- プロジェクトリーダー/管理者には次の要件が必要です。
- 優れた優先順位付けとリソース割り当て能力
- 既存のチームメンバーからの高い尊敬
- 優れたコミュニケーションスキル
- プロジェクトには次のものが必要です:
- 適切で完成し、文書化されたソフトウェア設計仕様
- すでに実装されているものの適切なドキュメント
- 責任の明確な区分を可能にするモジュール設計
- 必要な欠陥レベルの品質保証のための十分な自動化プロセス。これには、ユニット テスト、回帰テスト、自動ビルド展開などが含まれます。
- 現在チームによって導入され使用されているバグ/機能追跡システム (例: trac、SourceForge、FogBugz など)。
最初に議論すべきことの一つは、出荷日ができる延期できるかどうか、機能を削減できるかどうか、そしてこれら 2 つを組み合わせることで、既存のスタッフで満足のいくリリースを実現できるかどうかを検討します。多くの場合、投資に見合う価値をもたらさない、チームのリソースを実際に浪費している機能がいくつか存在します。そのため、何よりもまず、プロジェクトの優先順位を真剣に検討してください。
上記の段落の結果が十分でない場合は、上記のリストを参照してください。スケジュールの遅れを早期に把握できた場合は、適切なタイミングで適切なチーム メンバーを追加することでリリースを救える可能性があります。残念ながら、予定の出荷日に近づくほど、人員の追加で問題が発生する可能性が高くなります。ある時点で、「後戻りできないポイント」を超え、現在の開発ブランチを出荷する以外の変更を行ってもリリースを救えなくなります。
まだまだ書きたいことはありますが、要点は押さえたと思います。プロジェクト以外で、キャリアや会社の将来の成功などの観点から、絶対にやるべきことの 1 つは、なぜ遅れたのか、もっと早く警告を出すことができたのかどうか、今後遅れないようにするにはどのような対策が必要かを考えることです。プロジェクトが遅れるのは通常、次のいずれかが原因です。
- 開始前に遅れた(時間よりも荷物の方が多かった)および/または
- 一度に1時間、1日ずつずれました。
お役に立てれば幸いです!