web-dev-qa-db-ja.com

潜在的な利害関係者が多すぎる場合に開発プロジェクトを開始する方法

私は(唯一の)Webアプリケーション開発者として大学で新しい仕事を始めました。

大学には多くの異なるが、すべてかなりひどくコード化されたレガシーシステムがあります。主に組み込みPHP彼らは出席、試験結果、採点などのようなものを扱います.

私の最初の仕事は、このデータの多くを組み込んだシステムを構築することです。このシステムは、現在、さまざまなデータベースにあり、それを引き出すためのフレンドリーなAPIはありません(既存のシステムは、Vanilla PHP =データとビューを分離せずに)生徒に関する司牧情報を記録するための新しいプラットフォームを使用して、それを家庭教師や上級職員に便利な方法で提示し、生徒の問題にすばやく対応できるようにします。

最初のミーティングでは18人でした。大多数を代表する明確なリーダーや声はありませんでした。識別できないクライアント。会議は、教員の長からデータ入力にExcelスプレッドシートを使用すべきかどうかについての議論まで、マイナーな機能に関する詳細な実装のアイデアから始まりました。

ご想像のとおり、私の頭は最後に回転していた。いいアイディアはたくさんありましたが、聞いてもらえませんでした。これは私がマーケティング代理店の開発チームの一員になる前は、非常に新しい役割です。プロジェクトマネージャー、クライアント、デザイナー、開発者という非常に明確な役割がありました。

熟練した開発者やマネージャーが、同僚をプロジェクトチームに似たものに育てる方法について、いくつかの指針を教えてくれるかどうか知りたいのですが。アジャイルは進むべき道ですか?さまざまな声をすべて処理する方法を教えてください。いくつかのプロセスを非常に迅速に実施する必要があることは明らかですが、それが何かはわかりません。

15
Matt Harrison

現在の問題の解決策として、「アジャイル開発プロセス」は期待していません。あなたにとって最初にすべきことはミッションをクリアするです。つまり:

  • 自分の責任を明確にする
  • 他の利害関係者の責任が何であるかを明確にする
  • 各レガシーシステムの責任者を特定する
  • webアプリケーションのクライアントが(まだ)いない場合は、将来使用するクライアントを見つけ、システムの代表的なユーザー(要件について話し合うことができる人)として組み込む許可を求めます。
  • さまざまな目標を持つさまざまな利害関係者がいる場合は、それらの要件を収集します(たとえば、1人の部屋で一緒に18人ではなく、1人ずつ面接して)。結果をリストに書き込みます。その後、優先順位付けを開始します。
  • ロードマップ(全体像)とリリース0.1の小さな仕様を書き留め、上司と代表的なクライアントに正式に同意してもらう
  • 編集:GlenH7のコメントを参照

これには時間がかかる場合があります。プロジェクトのこの段階では、多くのコードを記述しないでしょう。このような状況では、最初に「要件エンジニアリング」を行う必要があります。しかし、小さなことから始め、大きなことを考えてください。最初のリリースを開発したら、何かを見せたり、要件を関係者と再度話し合ったりする必要があります。

26
Doc Brown

このプロジェクトで本当に働きたい人を群れから分離してください。

多くの政治的理由により、誰かがこの会議を参加者のリストと一緒にまとめました。参加者は、招待しないと最も動揺するメンバーによってメンバーシップが決定されました。それが起こります。この目標は満たされましたが、開発者として、何も決定されていないことがわかりました。誰も何をすべきか割り当てられていませんでした。あなたが運が良ければ、彼らは次の会議をスケジュールするか、神が禁じるのに成功しました、彼らは毎月第3火曜日に再会を設定しました。

次は、委員会、小委員会、タスクフォースの形成です。これはベターですが、どれも同じように価値がありません。

最後に、このプロジェクトに本当に関心がある人を見つけます。本当にそれを正しく行うために時間をかけたいと思う人は誰ですか。うまくいけば、この人には、これを行う時間を与え、すでに長いToDoリストの別のアイテムにするだけではなく、監督者がいることでしょう。できるだけ早くこれらの人々を見つけてください!彼らが上司の期待を管理し、合意された量のコミットメントを得るのを助けます。

元のグループに戻って迷惑をかける人と同じくらい多くの人の前で何かを得ます。彼らはみな賢い人や教育を受けた人かもしれませんが、たくさんのスペックを読むつもりはありません。彼らはいくつかのことを好きで、他のものを憎み、もっと欲しいと思うでしょう。提案を書き留めておくことは問題ありませんが、そのパーティーにゲームのスキンをフォローしてもらうようにしてください。すべてを行うと約束しないでください。近い将来に何ができるかを考えてください。

定期的に5人を超える人とやり取りする必要がある場合は、一部のマネージャーが、実際にそこにいたくない人たちを何人か関与させたためです。

6
JeffO

観察とその「必要性」に基づいて既存のシステムを固化/改善すると思われるアイデアのリストを考え出して、実際に目に見える利益を達成できる場所に集中できるようにします。そのリストに、あなたが役立つと思う各アイデアと、非開発者からの目立った「合理的な」提案を含めてください。

開発作業に含める必要があるものの機能リストを作成します。各メンバーに「投票」力を与え、おそらく「粘着性のある星」の形で提供し、各メンバーが重要だと思うものの隣に星を配置することによって、全体が実際に何を望んでいるかを調べます。チェックに署名したり、最終的な発言をしたりすると、一部の人々はより多くの星を獲得する可能性があります。その後、うまくいけば、あなたと他のすべての人が全体にとって重要なことを理解し、うまくいけば、優先順位に同意します。その後、ロードマップに変換します

1)。チームの調査-各メンバーが重要/必要/最優先と考えるものを見つけます

2)。すぐに何かを入手する-すべての問題を一度に解決しようとせず、「最小限の」機能を入手して承認させ、ユーザーのフィードバックに基づいてまとめて進めます。

)。開発者のフィードバックと他のユーザーのフィードバックを使用して、開発プロセスをガイドします

(ビルド、フィードバックの評価、ビルド、フィードバックの評価)すすぎと繰り返し

また、「努力点」または完了までの推定時間を設定することを検討することもできます。これは優先順位付けにも役立ちます。

4
hanzolo

最初の課題は、このプロジェクトの必要性を特定することです。それらすべての人々と別の会議を開き、解決する必要がある問題を書き留めるように依頼してください。このプロジェクトが解決策となる多くの方法について彼らに話させないでください。ニーズや問題を明確に特定するように強制します。

これを行う1つの方法は、付箋にそれらのニーズを文書化するようにそれぞれに個別に依頼することです。付箋ごとに1つのアイデア。次に、 アフィニティダイアグラム を実行して、それらの異なるアイデアを特定のニーズにグループ化できるようにします。最後に、彼らに投票( Multi-Voting )させ、最大のニーズを確認できるようにします。

アジャイルは、最も顧客価値の高い機能に最初に取り組むことを思い出させます。最も大きなニーズから始めて、実際に短時間で実行できる最初の小さなピースができるまで、そのアイテムを分割し続けます。

2
lsievert

KISS-旅程を作成します。皆さん、来てくれてありがとう、レビューしてください。サイドトラッキングは、懸念事項を共有して対処し、会議後も滞在するように依頼すると遅くなります。最も幸せを保つための論争がある場合は、投票によって決定を下します。システムに参加する動機は、その方法に対する個人の信念に直接関係しています。

0
Steven