ソフトウェアを予定通りに出荷するためのベスト プラクティス

StackOverflow https://stackoverflow.com/questions/173202

  •  05-07-2019
  •  | 
  •  

質問

機能のクリープの問題がなく、やる気と安定したチームがあり、解決すべき問題が明確に定義されており、プロジェクトに関連するドメイン/言語/ツールを知っていると想像してください。

どうやって スケジュールを守る 1.0 マイルストーンを達成するには?
に対するあなたのアプローチは何ですか 反復配送?

特にコミュニケーション上の問題がほとんど、またはほとんどない小規模なチーム向けの推奨事項を教えてください。

役に立ちましたか?

解決

  1. 実装タスクではなく機能に注目。
  2. 反復作業(毎週または隔週など)。
  3. 優先度の高い順に、機能をステージング環境にリリースします。
  4. コードを単体でテストするので、リリース日が近づくにつれて幾何学的に増加するバグリストによって速度が低下することはありません。
  5. 重要度の低い機能から範囲を切り取る準備をします。スタッフは、あなたが思っているよりも常に時間がかかります。
  6. 事前にUIをスケッチして(UIがある場合)、潜在的なユーザーに表示するようにしてください。
  7. テスト、テスト、およびテストをさらに行います。これは直感に反するように見えますが、時間がかかるよりも時間を節約できます。

他のヒント

それはおそらくユートピアのシナリオです;-)。とにかく、機能のクリープがなく、非常に優れたチームがあり、コミュニケーションの問題がまったくない明確に定義された要件がない場合、製品を時間通りに提供する最良の方法はおそらく

  1. 毎週のチームとのミーティングで現在のステータスを評価します(PMがある場合はPMとチーム)
  2. チームリーダーは、チームメンバーと毎日小さなミーティングを開催し、チームメンバーに委任された問題/要件に関するステータスを評価することができます。問題がある場合は、問題を解決するために必要な手順を実行する必要があります。
  3. プロジェクト計画の追跡と作業の委任(チームリーダーは、作業を適切に委任するには、各チームメンバーの個々の長所を知る必要があります)。
  4. テストは、技術が許す範囲で自動化できます。
  5. 各チームメンバーによる仕事の所有権。

1日の終わりには、人が仕事にどれだけ情熱を傾けているかがわかります。

私の2つのペイズの;-)

質問:大規模なソフトウェア プロジェクトがどうして 1 年遅れてしまうのでしょうか?答え:一日ずつ!

これはあなたの質問に対する答えにはなりませんが、スケジュールを守る必要があることを示していると思います。たとえ 1 日遅れても、何とかして取り戻す必要があります。(残念なことに、神話の人月の残りの部分は、ほとんどのプロジェクトに「なんとか」というものが存在しないということについての話になります...)

また、次のような製品の証拠に基づくスケジューリングもご覧ください。 フォグバグズ. 。これにより、製品がいつ出荷される可能性があるかについての最新の見積もりが得られます。実際、日付の範囲と各日付の確率が示されます。リリース予定日が締め切りを過ぎていることに気付いた場合、これにより、それに対して何らかの措置を講じる必要があることがわかります。効果が得られるまでに十分な時間があれば幸いです。

以前のポスターでは見落としていた小さな点が1つあります。締め切りに間に合わせるには、まず現実的なスケジュールを定義する必要があります。 プロジェクトはプロジェクトのサイズに応じて小さなタスクに分割する必要がありますが、私の世界では約3〜4か月かかるプロジェクトで、最大2〜3日間のタスクに分割しようとしています。このように、時間推定はほとんど現実的であり、リスクは事前に計算され、提案されたスケジュールに追加されます。

このスレッドには多くの良いアドバイスがあります。私が追加しなければならない唯一のことは、リリースに定期的な時刻表を採用することです。私の会社は数年前にこれに切り替えましたが、最初は苦痛でしたが、多くのメリットがあります。最大のメリットは、機能を簡単に延期できることです。

自分の機能が次のリリースに組み込まれ、そのリリースがいつになるかを知っているので、機能を延期しても問題ありません。これは、土壇場で中途半端な機能を急いで導入するのではなく、少し長く費やして次のリリースの開始時に使用できることを意味します。

販売/マーケティング/管理からの不合理なタイムラインを除けば、プロジェクトが予定通りに出荷されないすべての理由をほとんど除外しました。ソフトウェア開発方法論の歴史は、回避、影響の軽減、および/または回避のための方法の集まりです:

  • 不十分に定義されたスコープ
  • 機能クリープ
  • ドメイン知識の欠如
  • コミュニケーションの問題がある大規模なチーム
  • 意欲のない/無能な開発者

クライアントにとってミッションクリティカルな機能が何であるかを理解します。それらの進捗を保護します。多くの場合、成功の80%が作業の20%に由来することは非常に真実です。

ステージ 定期的 (毎月?毎週?)製品チームのために、現在受け入れられているビルドを使用した製品ウォークスルー。これらをできるだけ早く開始してください。現在のユーザビリティに関係なく、すべての機能をデモします。遅れているものをスキップしないでください。

要点は、プロジェクトの過程で、利害関係者に製品の現在の状態を明確に伝えることです。このようにして、意思決定者は出荷日を危険にさらすよりも、スケジュールのリスクに迅速に取り組む可能性が高くなります。

機能セットまたは出荷日を選択できますが、両方を選択することはできません。

個々の考えは次のとおりです。 -楽観的ではありません -最初に難しい部分を行う -スケジュールをずらすことなく機能を追加しないでください -スケジュールにヒットするためにドロップできるように機能を記述します

http://shipcamp.com

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top