web-dev-qa-db-ja.com

後期プロジェクトに人を追加すると事態が悪化する場合、どのオプションが有効ですか?

期限が定められたプロジェクトに取り組んでいます(遅れたり、機能を削除したりすると、罰金が科せられます)。

僕らは遅れている。

私のプロジェクトマネージャーは、人を追加して順調に戻ることができるかどうか尋ね続けます。

ブルックの法則と Mythical Man Month によれば、

後期のソフトウェアプロジェクトに人的資源を追加すると、後でそれが可能になります

それで、私は私のプロジェクトマネージャーに追加の人々に「感謝しない」と伝えなければなりません。彼らはその答えを受け入れません。他に何を伝えることができますか?

後期のソフトウェアプロジェクトをスピードアップするために利用できる他のオプションはありますか?

9
John Wu

これを処理する方法は5つあります。

  • 容量を拡大
  • 再交渉する
  • 辞任
  • 勇敢に降りる
  • ドロップ品質

あなたはすでにボールの後ろにいるので、全体的な容量を増やすことに投資する時間はありません。しかし、あなたがした場合:

  • チームを拡大するには、1人以上のアクティブな開発者を教育と訓練に犠牲にする必要があります。新しい開発者が稼働していても、全体的な開発が遅くなる前に、チームのサイズには上限があります。
  • レッドテープを減らす/制限を削除するには、レッドテープの意味と機能を理解している1人以上のチームメンバーを割り当てて、メリットのないレッドテープを削除または再加工する必要があります。
  • 反復的な作業負荷の自動化。 XKCDはこれを釘付けにする 、これに投資することでどれだけの利益が得られるかにはトレードオフがあります。あなたはすでに閉じているので、ペイオフ期間は短いので、自動化している間はおそらく価値がありません。

これを行うことは有益な場合がありますが、早期に、そして残業を続ければ、最大の見返りがあります。


お客様に戻り、正直に言います。 これは予定通りに配達されません。交渉しましょう。

はい、罰則があります。それらは呼び出されます。早い段階で、これが起こることを確認し、放射性降下物を小さくします。

  • プロジェクトは中止され、キャンセルされる場合があります。悪い日ですが、今なら2か月間で何か便利なことができます。
  • 配信の縮小範囲について、フォローアップ配信について交渉する場合があります。少なくとも今、あなたは顧客が何を重要視しているのかを理解し、それをスケジュールして、それを成し遂げます。次に、混乱を取り除き、次の機能セットを提供します。
  • スコープの縮小について交渉するかもしれません。以前と同様ですが、クリーンアップする必要はありません。
  • もっと時間が与えられるかもしれません。賢く使ってください。

結果がどうであれ、あなたの評判にはプロジェクトの失敗をプロアクティブに早期に管理するという事実が含まれます。多くの企業は、それを成熟の兆候と見なします。


辞任

辞任を選択した場合、プロジェクトはさらに危険にさらされ、おそらく次のようになります。

  • 良い推薦を得られない、
  • あなたの職業上の関係に深刻な害を及ぼす
  • おそらく契約の損害賠償の一部を担当しています。

しかしながら:

  • とにかく、超人として演じていなかったので、良い推薦は得られなかったでしょう。
  • あなたの専門的な関係が、熱く、燃えて、ごみのソフトウェアを提供することによってボロボロにならないと思うなら、もう一度考えてください。
  • 言うまでもなく、これが成功または失敗した場合でも、とにかく働いていた時間が無給になる可能性があります。

したがって、どこか他の場所が良いと思うかどうかにかかっています。おそらくこの時点です。しかし、この選択ができない場合もあります。


船を持って下ってください。

  • プロ側では、モラルと尊厳を保つことができます。
  • 短所は、その期限を守ることではありません。

するべきこと:

  • 大声で、直接的で、専門的になります。
  • 納期に間に合わず、現在の最良の推測を不確実に投影しないことを明確に綴り続けます。例:すべてが計画どおりに進む場合は6〜10か月。 xを超える問題が発生した場合は8〜20か月。
  • プロジェクトについて周回するすべてのコミュニケーションの印刷された目撃コピーを必ず保管してください。
  • あなたに与えられたスケジュールに同意したり、承認したりしないでください。これは、あなたの正気に計画されたスケジュールに相応しません。例:月曜日にデモできますか? いいえ、デモ可能なものから少なくとも2か月は離れています。ただし、スケジュールは3週間です。最短で、もっとおそらく2か月
  • 会社のポリシー、特にあなたの権利について、およびビジネスの評判に影響を与える問題をエスカレーションする方法について読んでください。これらのプロセスに従ってください。

あなたは大きなプレッシャーにさらされるでしょう。あなたは仕事、ボーナス、特別な駐車場を失うかもしれません。あなたはおそらく前にパレードされ、スケープヤギとして使用されます。

あなたは法的スイートの対象となる可能性があります。これが、十分な注意を払ったことを証明するためのコミュニケーションを維持している理由です。

検討する方法についてのトレーニングを受け、敵対的な聴衆にあなたの主張を表明することはお金になります。人前で話す、ディベート、主張力のトレーニングなどが役立ちます。


品質を犠牲にする

これは最も悪質な答えですが、時間どおりに交渉しない2つの容赦ないビジネスや機能の間に立ち往生している場合、そして何らかの理由で辞められず、何らかの理由で道を譲るという道徳的な高みに立つことができない場合あなたの船。

私は個人的には品質を犠牲にすることを容認していません。これを指摘して、このソリューションがNOT A SOLUTIONである理由を概説します。

問題は、2つの政党が戦争状態にあり、両者の間に立ち往生していて、必然的に自分の周りの破壊につながるということです。意図的であろうとなかろうと、このアクションを悪意、実用主義、またはその他の正当化から選択する人がいます。それは確かにあなた自身と他人の両方に気づいていて警戒すべきことです。

このオプションを選択する必要があります:

ください、あなたの尊厳と道徳を箱に入れてください-あなたはそれらを買う余裕はありません。あなたが個人的に自分のために仕立てている地獄へようこそ。

締め切りがあり、システムの最終状態を説明する一連の文があります。あなたの役割はランプの魔神を演じることであり、あなたは不当な要求を与えられました、あなたの目標は要求の手紙に会う間、最小限の労力、配慮、または考えでそれを解決することです。要求の精神を気にしないでください-それはすでに契約の条件を変更することができず、あなたの道徳と尊厳と同じ箱に送ることができることがすでに証明されています。

  • 隅々まで見つけて、それを取ってください。 「機能」に半日を費やすか、丸1日を過ごすかを選択する場合は、半日を費やします。それが次の一連の開発者を正確に罰するとしても。
  • ふわふわの要件がある場合は、包括的な解決策を見つけてください。例:安全でなければなりません。 SSLを使用するように定義します。サーバーボックスが安全であると仮定します。したがって、パスワード資格情報を暗号化せずに保存できます。等...
  • 2つの方法で読み取ることができる要件がある場合。実装時間を短縮する方法で解釈してください。また、署名された利害関係者のドキュメントで要件を言い換えます。
  • 可能であれば、何もしないことで要件を満たします。これが他の誰か/何かによってどのように提供されるかを説明する段落は、実際に実装するよりも100倍高速です。
  • 優れたエンジニアリングを気にしないでください。初心者プログラマーを考えてください。UIで直接コードを書くと、スパゲッティが王様です。
  • すべての要件を満たしている場合、残りのすべての瞬間がボーナスになります。

経験豊富なエンジニアであれば、コードのどの部分が早く噛み付くのかを推測することができます。これらは、上手く機能するのに十分注意する必要がある唯一のコードです。

しかし、真剣に自分自身がこの立場に置かれることを許さないでください。他の解決策の1つを押してください。辞めることでさえ、より良いです。少なくとも、これがオンでないことをメッセージを両側に明確に送信します。


あなたの選択をしてください。

15
Kain0_0

それはすべて、あなたが私たちと共有しなかった多くの要因に依存します。まず、どのようにしてあなたが遅刻することをどのように決定しましたか、そしてどれだけ

  • 締め切りまであとどれくらいですか?
  • 残された作業はどの程度明確に定義されていますか?
  • 未完成の仕事に対するあなたの努力の見積もりはどの程度信頼できますか?

適度なスピードアップ(10-15%)で間に合うと判断した場合は、チームがその速度に到達するのを妨げる調整と要因のオプションを確認する必要があります。

  • チームが取り下げたり、延期したり、他の人に委任したりできる無関係なタスク/責任はありますか?
  • 機能をドロップできない場合、機能の実装方法にスコープの柔軟性がありますか?たとえば、Excelのエクスポートが要求された場合、ニーススタイルのxlsxファイルまたは単純なcsvファイルを作成できます。短時間で実行できると思います。
  • プロセスにボトルネックはありますか? (これは実際にはマネージャーの計画が機能する場所です)

そのような要因がある場合は、それらを排除してください。

結局のところ、チームが現実的にできることは何もないとわかった場合、組織は弾丸を噛んでペナルティを支払う必要があります。それは、利用可能なリソースが与えられているために、定義が不十分であるか、時間内に実行できないプロジェクトを受け入れ、進捗状況を監視して、まだ時間があるときに調整することができなかった、など。あなたのチームは管理の失敗について責任を負いません。

上司が労働者を追加すると目標を達成できると主張する場合は、彼の申し出を受け入れ、彼が間違っていることを証明することもできます。新しい労働者の受け入れを拒否するか、追加の労働者に間に合うように配達することができないかにかかわらず、彼はとにかくあなたのせいにするかもしれません。

8

残念ながら、プロジェクトをスピードアップする確実な方法がいくつかあります。

  1. ドロップ機能
  2. ドロップ品質

したがって、機能を削除することは明らかです。まだ開始していないが見積もりに含まれている一部の機能を取り消す場合は、見積もりが優先されます。

問題は、契約上提供する義務を負っていない機能を特定することです。

これが品質の出番です。どのソフトウェアプロジェクトでも、「顧客は気にしない」(書面で書き留めるのに十分な)ものの束があります。セキュリティ、パフォーマンス、実験室外での作業など、金メッキされたもの

通常、開発者が「仕事の倫理」や「法的要件」などの社会主義的なナンセンスから追加するこれらの役に立たないもの。しかし、真実はあなたがそれを完全に切り取ることができ、あなたが支払われた後まで顧客は気づかないでしょう。もしそうなら!

開発者が気が利くようになった場合は、プロジェクトの次のフェーズで、または顧客が(有料の)追加機能を要求したときに、これらのものを絞り込みます。誰も彼らが行方不明だったことを決して知ることはないでしょう!

今、一つの落とし穴があります。 「haventはまだ始まった」と言ったことに注意してください。同様に明らかに、すでに作業の90%を完了している場合、10%の時間しか節約できません。マックス!

これらの厄介な開発者は、最初からこの種の金メッキを組み込みたいと考えています。だからあなたはタフで、プロジェクト全体(あなたの締め切り)を危険にさらさないようにする必要があります!!

彼らが最初から貴重な機能にのみ取り組んでいることを確認してください! 「ただのパイロット」、「デモライセンスを使用する」、そしてみんなのお気に入りの「フェーズ2に入れることができる」と伝えます。

1
Ewan

後期のソフトウェアプロジェクトに人的資源を追加すると、後でそれが可能になります

これは少し簡略化されています。開発者を追加すると、生産性が向上します長期的には。しかし短期的には、より多くの人々がより多くのオーバーヘッドを持ち、より多くの計画を必要とするため、開発が遅くなり、新しい開発者は既存の開発者からの情報と支援が必要になります。

したがって、生産性が低下するまでにはしばらく時間がかかります。プロジェクトの複雑さに応じて、おそらく1か月以上です。新しい開発者が経験が浅く、多くのメンタリングが必要な場合は、かなり時間がかかります。

この見積もりは、単純な「人月」の考え方とは対照的な重要なポイントであり、人を増やすことで生産性を比例的に高めることができると考えています。しかし、明らかに、より多くの人々を追加しても、全体的な生産性を向上させることができないというのは真実ではありません。

いくつかの要因が、立ち上げの容易さに影響を与えます。

  • プロジェクトの文書化の程度。現在の開発者の頭に唯一のドキュメントがある場合、新しい開発者を導入することによる生産性の損失はさらに深刻になります。
  • アーキテクチャのモジュール性。新しい開発者は、他の人のつま先を踏まずにモジュールの作業を開始できますか?

問題は、プロジェクトがすでに遅れている場合、短期間に時間を節約するために、既存の開発者がドキュメントとモジュール性に失敗したリスクがあることです...

1
JacquesB

あなたは悪い場所にいます、それは確かですが、あなたの苦境を和らげることができるいくつかの戦術があります。

機能の削除または延期は、おそらく最善の方法です。費用便益分析を適用する-残りのスケジュール内に実装できる機能のセットを決定し、欠落した機能のペナルティを最小限に抑えてから、それらの機能を実行します。理想的には、これらは請求を支払う顧客と交渉する必要があります。リストを共有し、顧客がより価値があると見なす機能を延期する場合、機能とペナルティを再交渉できる場合があります。

これは言うまでもありませんが、開発日以外のすべてのアクティビティをチームから締め切り日まで(または奇跡的にプロジェクトが軌道に戻るまで)オフロードします。プロジェクトに関連しないサポート、メンテナンス、バグ修正、トラブルシューティングなどを開発者から保護します。必須の部門およびスタッフ会議をキャンセルします。管理タスクを委任します。 (たとえば、エンジニアが購入依頼書に記入し、配達を追跡し、サプライヤーをフォローアップしている場合、代わりにプロジェクトマネージャーに管理担当者を割り当てて、それらのタスクを実行してもらいます)。パフォーマンスレビュー期間が期限前に発生する場合は、レビューを後で延期します。レイズを延期しないでください。

最後に、プロジェクトにリソースを追加しても、必ずしも全体的な遅延が発生するわけではありません。これは、プロジェクトがどれだけ遅れているか、納品までにどれくらいの時間があるか、そして、チームのメンバーがすでにフレームワークやツールに慣れているかどうかによって異なります。使用しています。たとえば、5人の開発者がいて、残り25の「1か月」のタスクが残り、ペナルティが発生する前に4か月残っています。この時点で、プロジェクト、フレームワーク、ツールセットに精通した2人の開発者を招くことができます。など、あなたのスケジュールを満たしています。ここでの鍵は、人々をクロストレーニングし、スケジュールの問題をすばやく特定し、スケジュールの問題に積極的に取り組むことです。

これを本当に修正するには、時間をさかのぼって次のことを行う必要があります。

  1. プロジェクトの早い段階でスケジュールの問題を特定します。ベロシティが1か月あたり3つのタスクであり、1か月あたり4つのコールをスケジュールする場合は、リソースを追加します。

  2. 可能であれば、共同のアジャイル開発プロセスとして、機能と配信について顧客と交渉してください。

  3. 開発チームのメンバーをクロストレーニングします。可能な限り、共通のフレームワークとツールを使用してください。広範なトレーニングや「スピードアップ」を必要とせずに、開発者をプロジェクトに追加できることを目標にします。

1
Jay Elston

配送量を減らすことができます。機能を削除し、品質を低下させ、テストされていない製品を提供します。誇りに思うことは何もありませんが、ペナルティを回避できる場合は、これを経営陣が検討する必要があります。

ソフトウェア開発の観点から、どのようにしてより多くを同時に提供できますか?多くの可能性があります。

  1. 本当に良い開発者を追加します。 「神話の男の月」が何を言っても、これらの開発者が本当に優れている場合、彼らはトレーニングなしで最小限のガイダンスで他の開発者から仕事を奪うことができます。もちろん、より良い状況よりも生産性は低くなりますが、生産性は高くなります。

  2. 開発者から不要な作業を取り除きます。不必要な会議は絶対になく、必要な最短時間のみ。日次のステータスレポートを要求しないでください。時間は物事の作成に使用できます。開発者が開発に関連しないタスクを実行する必要がある場合は、それらを削除します。

  3. 開発者がより多くの作業を行えるようにします。昼食に出かける代わりに、健康食品を会社に届けます。家に帰るのではなく、隣のホテルに予約します。自宅で仕事をする必要がある場合は、会社に整理してもらいます。

  4. 有料残業。これは短時間で機能しますが、長期的には機能しません。あなたが外部の仕事をしなければならない仕事の量を減らすための対策(3を参照)をとれば、それはよりうまくいきます。

0
gnasher729