ビジネスには、ソフトウェアに実装されるビジネス要件の5つの個別のストリームがあります。 10人の開発者からなるチームがあります。
「ナイーブな」組織的ソリューションは、チームを2つのうち5つの「チーム」に分割することです(要件ストリームごとに1つ)。しかし、これはチームの完全性を損なうと感じています(チームワークをより困難にし、サイロ効果を引き起こし、コミュニケーションをより困難にするなど)。
複数の要件ストリームに対して提供するために、このような開発者チームをどのように最適に編成するかについての洞察はありますか?要件ストリームよりも開発チームの数を減らすことは可能ですか?
私は2つのチームを提案します。 10は1つのチームには本当に多すぎます(知識の広がりが広すぎると速度が低下し、1人のチームリーダーが一度に5つのストリームに集中するべきではありません)が、それぞれ5つで快適に機能し、4:6に柔軟に対応できます。 1つのチームに大きなプレッシャーがかかります。
あなたは5チームが素朴な見方であるということは絶対に正しいです。ストリームから1人でも失うと、問題が発生します。それらの両方を失うと、あなたは生き残るのに苦労するでしょう。
1つのチームに複数のストリームを通過させるのはかなり簡単です。スクラムとかんばんの組み合わせをお勧めしますが、最も単純なケースでは、優先順位の高い作業のバックログが必要であり、チームの誰もが1つのジョブを終了すると、ストリームに関係なく、次に優先度の高いジョブに移動します。
ドメインの専門家がいても(実際には避けられない)、ストリーム1から仕事を選んで、その知識がまったくない場合は、彼らのところに助けを求めることができます。しかし、私が最終的に仕事をして、すべてのストリームについて少なくとも少し学ぶことが重要です。
コードレビューは、その知識を広めるのに役立つだけでなく、コードベースを高レベルの品質に保つのにも役立ちます。
私見、チーム形成の1つの方法は次のとおりです。