2

あなたが2000人のユーザーと7人の開発者を抱える社内のエンタープライズWebアプリケーションのプロダクトマネージャーであるとします。350の将来の機能のリストがあり、それぞれが5〜150開発者の作業日数の範囲です。

作業する機能をどのように選択し、リリースプロセスをどのように実行しますか?

これが私が考えていることです:(退屈ならスキップしてください)

  • リリースプロセス。一度に複数の機能に取り組み、準備ができたらそれぞれを個別にリリースします。もう1つのオプション(これまで行ってきたこと)は、特定の機能セットを選択し、それらを「リリース」として指定して、一度にすべてリリースすることです(大量の電子メールで発表します)。

    リリースプロセスが短いことの利点は、開発が完了したらすぐに機能をリリースできることです。より大きなプロセスの利点は、整理が容易なことです。

  • 機能の優先順位付け。将来のすべての機能を、機能、説明、コメント、見積もり、メリット、(あなたの)見積もり、(あなたの)メリットの列を含むスプレッドシートに入れます。2人の上級エンジニア、もう1人の上級プロジェクトマネージャーとあなた自身にコピーを渡してください。

    エンジニアはすべての機能を見積もります(どの程度正確に?お互いに相談しますか?)。メリットを判断するために、全員が将来の機能にポイント(合計= 10 * [将来の機能の数])を割り当て(互いに相談せずに?)、スコアと平均(?)を比較します。

    ここでのもう1つの潜在的な戦略は、各機能を絶対的な(たとえば)1〜100のスケールでランク付けすることです。絶対的なランク付けがあると、機能リストの変更に応じて優先順位を付けることができるので便利です(誰かが新しい機能を提案するたびにポイントを再配布する必要はありません)。

あなたの戦略は何ですか?このレベルの詳細で問題を攻撃する本/ウェブサイトはありますか?

4

5 に答える 5

3

マイク・コーンによるアジャイルな見積りと計画と呼ばれるこのトピックをカバーするのに役立つ素晴らしい本があります。リリースを見積もり、計画するための優れた方法がいくつかあります。エンジニアリングチームがカードを集めてユーザーストーリーを確立する、プランニングポーカーと呼ばれるプランニングゲームを含みます。各エンジニアは、カード1、2、3、5、8、13を裏向きにプレイします。ハイカードとローカードが説明し、もう一度やり直します。1回または2回繰り返すと、通常、同じ推定値に収束します。

また、ソフトウェアアーキテクチャを超えて: Luke Hohmannによる受賞ソリューションの作成と維持もあります。これは、製品管理に関連するいくつかの部分と、優先順位付けに使用する理由に役立つ可能性があります。私はまだその本を読んでいませんが、ルーク・ホーマンの本の主題を取り上げた講演に行きました。それを読むのが待ちきれません。

また、スクラム、クリスタルクリア、XPなどのさまざまなアジャイル開発プロセスに関する本を読むことをお勧めします。KenSchwaberによるScrumとCrystalClearによるアジャイルプロジェクト管理があります:AlistairCockburnによる小規模チームのための人力による方法論。また、エクストリームプログラミングの説明:ケントベックとシンシアアンドレスによる変化を受け入れる(第2版)。

機能の優先順位付けに関しては、それは一般的に利害関係者によって行われます。Luke Hohmannが指摘しているように、システムアーキテクチャを含む、利害関係者のニーズに対応する機能に取り組む必要があります。

ただし、最も重要なことの1つは、チームからのソフトウェア開発プロセスについて合意していることを確認することです。プロセスを強制し、チームが信じない場合、それは機能しません。

于 2008-11-14T06:23:09.207 に答える
0

「絶対的な(たとえば)1から100のスケールで各機能をランク付けする」

それらを順番に構築します。

(a) かなりの価値があるか、(b) 重要な量の小さなものを手に入れたら、それらを解放します。

常に優先順位に従って作業してください。最も重要なものを最初に構築します。できるだけ多くの価値をできるだけ早く提供します。

于 2008-11-15T03:07:12.613 に答える
0

a few people here have already said it - involve the end users in the decision process of what goes in and what waits. after all, its not about whats useful to you, but whats useful to your end user.

that said, i wouldnt leave it open to 'all users to decide'; there should be a representative from the user group who you work with (i.e. senior user role).

even then, you arent saying "what features do you want?" to the user, you ask them what functionality they would like to see arrive next. the reason why you put it to them that way rather then letting them pick off a massive spreadsheet of individual features is two-fold: 1) they dont know about dependancies, 2) you want to gather together a pack of features for a logical release.

so the user representative may say "we need to have the photo gallery working next". they might not be aware that the photo galery is practically the same as the file upload module (it just accepts different file types).

so, in the next release version, you pack together the photo gallery and the file upload - why wouldnt you, considering that the file upload is like 75% done because of the work that went into the photo gallery module?

i dont believe you necessarily have to work on the hardest features first, its what the users need sooner + what other features you gather together to make a 'logical pack'.

to a certain extent, you want to clear the feature log too. so for example, you could have the following features and estimaed times:

  1. Registration Form - 3 hrs
  2. Photo Gallery - 8 hrs (<- client has said they want this next)
  3. File Upload - 2 hrs
  4. Voting/Poll module - 7 hrs
  5. Stock Ticker - 5 hrs

out of these contrived features, i would take no. 2 (because the client is asking for it), then i would take no. 1 and 3. no. 3 because its practically done when the gallery code has been done, and no. 1 purely because its the smallest estimate out of the remaining features. nothing will give you or your coding crew the feeling of progress on your project like seriously beating down the feature list (it will probably refill though).

as far as letting people know about a new release and whats in it, i would do it via email (rather then by blog or within the program itself). and i would make it as brief as possible, bullet points, something like this:

===

Version 1.1 of Blue Widgets has just been launched and is available for your use now.

The following has been added:

  • Photo Gallery

  • File Upload

  • Registration Form

The user manual within the system contains more information on how these features work.

===

bang - done, make it as easy for people as possible.

  • LM
于 2008-12-05T23:30:15.303 に答える
0

確かに、350の独立した機能はありません。いくつかは他の機能に依存している必要があります。それらをすべてタスク管理ソフトウェアに入れて、どのタスクが他のどのタスクに依存するかを定義できるようにします。そうすれば、決定プロセスがはるかに簡単になることにすぐに気付くでしょう...

于 2008-11-14T06:51:48.247 に答える
0

リリース プロセスに関しては、準備ができたら機能を紹介し、新しい機能が完了するたびに更新される会社のブログを介してユーザーに通知することができます。このようなブログ エントリでは、機能の概要、その場所、使用方法などを簡単に説明する必要があります。
これにより、ユーザーが興味を持ち、戻ってくるようになるだけでなく、潜在的な顧客がチェックアウトするための優れた方法も提供されます。あなたの提供の進行状況。

今後の実装の優先順位についてですが、そこにもお客様を巻き込んでみませんか?uservoice を見てください (このサイトのリクエスト/バグを追跡するために使用されます)。これは、ユーザーが最も望ましいものに投票できるようにするだけでなく、現在取り組んでいることと計画していることを示す優れた方法を提供します。

于 2008-11-14T06:57:24.990 に答える