プロジェクトの1つに関する私の組織では、アジャイルスクラムの方法論に従い、プロジェクトの人的資源の配分を以下に示します。
Scrum Team:
SM
ProxyDev1(Internal): 50% in the project
ProxyDev2(Internal): 50% in the project
Dev3(Internal): 100% in the project
Dev4(Internal): 100% in the project
Dev5(External): 100% in the project
Dev6(External): 100% in the project
Dev7(External): 100% in the project
Dev8(External): 100% in the project
上記のように、外部企業の開発者がいます。また、内部にはプロジェクトに50%しか関与していない開発者が2人います。これらはプロジェクトで最も経験豊富な開発者であり、他の開発者はプロジェクトに比較的新しい開発者です。
スプリント期間は4週間で、3つの改良(PO、ProxyDev、SMによる2つの改良、プロキシdev、devs、SMによる1つの内部改良)、2つの計画(Proxydev、SM、POによる1つの計画、PD、SMによるその他の計画)があります。 、PO、Devs)、1つの見積もり(すべて参加)、およびすべてが参加する通常のレトロおよび毎日。
ご覧のように、proxydevsはすべての会議に参加しており、経験豊富であり、これらの会議ですべての開発者の時間を無駄にすることがないため、時間を大幅に節約できます。スクラムイベントに使用する時間を短縮できます。 POは他の会社からのものです。
SMが直面している問題は、外部の開発者はプロジェクトの経験が少なく、それらを説明するために多くのオーバーヘッドがあり、期待が正しく理解されていないことです。したがって、コンセプトワークなどの作業は私たちが行う必要があり、それらは実装を行うだけです。外部開発者からのオーバーヘッドをどのように減らすことができますか?
プロセスをスムーズに実行するためのここでの私のオプションは何ですか?外部開発者と連携するために、他のフレームワークを再構築または使用する必要がありますか?さらに、内部チームを再編成することで生産量を改善できますか?私たちはどんな犠牲を払っても外部企業と協力しなければなりません。
どうもありがとうございました
外部開発者はその名前が言うとおりです-外部。彼らが大規模に貢献し理解することを期待しないでください。コアチームだけがそれを行うことができます。それはすべての会議に出席することよりもはるかに多いので、それらの多くを組織することによって物事が良くなることを期待しないでください。人がプロジェクトについて学び、理解するための最良の方法は、aからzまでプロジェクトに参加することです。プロジェクト形成の決定が下される議論に参加することは非常に重要です。なぜなら、それはすべての質問が質問され、答えが受け取られる場所だからです。外部の人々は本質的にそれを経験することはできません。なぜなら、彼らは「雇う筋肉」であり、プロジェクトを頻繁に変更するからです。
そうは言っても、私は外部の開発者が意味のある方法で貢献できないことを示唆しているわけではありません。それどころか、しかし、いくつかのことを考慮に入れる必要があります。最初に、彼らがプロジェクトについてあなたほど多くを知らないことを認めてください。コアな人々はそれを簡単に忘れて、他の人が彼らのレベルにいることを期待します。これは、プロジェクトがどのように機能するかを説明する図が見落とされたり、更新されなかったり、そもそも完全に作成されていない理由でもあります。そして、私はUMLについて話しているのではありません。単純なペンと紙の概念図は、すべてのパーツがどのように機能するかを理解するための黄金の出発点です。第二に、前述の理由により、外部の人々は、タスクドメインがあまり変更されていないときに最高のパフォーマンスを発揮します。これは、やがてその特定のドメインをますます理解し、パフォーマンスを向上させることができるためです。第三に、それがあなたの力にある場合は、50%ではなく100%をコミットできる外部開発者を選択してください。マルチタスクとコンテキストの変更は生産性の向上にはつながりません。
これを処理する正しい方法は、チーム全体を計画およびグルーミング会議に招待することだと思います。グルーミングの目的は、チームのすべての開発者が理解できるようにストーリーが十分に開発されていることを確認することです。あなたの話はそのレベルの理解に書かれていないようです。
しかし、私がとる最初のアプローチは、それらの開発者に、問題が何であると思うか、そして何が彼らにとって物事を容易にするかを尋ねることです。すべての会議に参加する必要のない実行可能なソリューションを提供できれば、時間を節約できます。
あなた自身の分析によると、問題は、プロジェクトの外部の人がプロジェクトでの経験が少なく、期待を理解していないことです。これには、他の人からのより多くの作業とオーバーヘッドが必要です。
根本的な原因が、外部の人が製品や期待について十分な知識を得る機会がないことなのか、それとも彼らがより概念的な仕事をすることができないことなのかは、あなたの物語からは明らかではありません。
能力に関するものであれば、4人の外部開発者全員で同じであるため、問題は個々のスキルに関連しているようには見えません。したがって、それは契約上の設定にのみ関連する可能性があります。これは、たとえば、仕様からのみ機能する純粋なコーダーを目指して(そして最終的には、チームの他のメンバーとの口頭でのやり取りのために英語を十分に習得できない)、伝統的な仕事の分割を想定してプロファイルが選択された場合に発生する可能性があります。この場合は、契約を変更するだけで済みます。
しかし、それが本当に能力の問題であることに私は驚きます。だから、ここにあなたのためのいくつかの質問があります:彼らはどれくらいチームの一員ですか?製品と期待についてもっと学ぶために、どのような機会を彼らに与えますか?既存の機能に関する知識獲得をどのように組織しましたか?新しい内部開発者は外部よりも貢献できますか?もしそうなら、なぜですか?
答えがありません。しかし、私はあなたが外部に彼らのチームの役割で成長する可能性を与えていないのではないかと思います。実際、計画に参加させないことで、すべての改良がオーバーヘッドの節約に見えるかもしれません。しかし実際には、この慣行により、これらのチームメンバーは、何が受け入れられるかどうかについての重要なフィードバックを奪われるため、チームメンバーは追いつくことができず、不足している情報を提供するために常にあなたの善意に依存します。
覚えておいてください:
一人でもっと速く、一緒にもっと遠くへ
したがって、長期的なメリットを探す場合:
私は最初に行くことをお勧めします!
正解はあなたの困難を部分的に受け入れることだと私には思えます。 PetrasとChristopheがほのめかしたように、外部の開発者は基本的に、少なくとも内部のスタッフが行うプロジェクトについてのレベルの理解を持っていません数週間の間に。
これを認識し、受け入れてください。内部スタッフ(および私はおそらくPOでしょうか?)はプロジェクトとその期待をよりよく理解しているため、設計ドキュメントの作成と改訂をさらに行う必要があります。これを実行する際には、プログラムの設計自体が同じプログラムをコーディングする行為と同じであることを忘れないでください。プログラミングは家を建てることに類似している場合もありますが、プログラミングの実際の建設作業はすべてコンピューターによって行われるため、欠陥があります。私たちはすべてここの建築家です。私たちの一部は、粗くて一般的な超高層ビルを設計しているだけです。ファッション、他の人はより詳細に個々の床を設計します。これを認識し、それに適応してください:
tl; dr:設計ドキュメントは、コアチーム(PO、SM、およびプロキシ)と、いくつかのハイブリッドユーザー/開発者/テスター(外部開発者)を含む開発プロジェクトとして扱う必要があります。これをプロジェクト内の一種のプロジェクトにし、すべてのプロジェクトメンバーが内部プロジェクトにも協力します。そして、あなた(SM)は、そのために多くの「秘書」の仕事を処理する必要があります(他の人はそうではないように見えますが、フルタイムでいるようです)また、開発者が作成した開発ツールに関する情報の一部は、関連する開発者から「採用」する必要があるため、それらの開発者ドキュメントは、適切な場合に同じプロセスで改善できます。