1つのチームに上級プログラマーが多すぎると、悪いことになることがありますか?
同様に、6〜7人のチームで4〜5人の上級プログラマーがいます。このような状況で最適な数/比率は何ですか?
これにより、アイデアに関する哲学や議論が過剰になりますか?
誰かがそのような経験を持っていて、それを私と共有できますか?
1つのチームに上級プログラマーが多すぎると、悪いことになることがありますか?
同様に、6〜7人のチームで4〜5人の上級プログラマーがいます。このような状況で最適な数/比率は何ですか?
これにより、アイデアに関する哲学や議論が過剰になりますか?
誰かがそのような経験を持っていて、それを私と共有できますか?
回答:
私が選択できれば、チームに6〜7人のシニアがいることになります(プロジェクトには多くの人が必要だと仮定します)。
これが問題であることがわかるのは、高齢者が自己認識が高齢者であり、労働倫理ではない場合だけです。
ドキュメント、計画、コード、コーヒー、すべてが重要であり、成熟した(真のシニア)開発者が「上」になるには、すべてのソフトウェア開発が重要であることを理解する人々のグループと協力することほど良いものはありません。何もしない」と仕事をきちんと成し遂げてください。
編集:他の多くの答えは、あまりにも多くのリーダーが問題であると述べています-しかし、なぜシニアがリードしなければならないという認識がありますか?シニアは、リーダーを選び、フォローするのに十分な成熟度を持っている必要があります。重要なのはプロジェクトです-役割を選択/取得し、それを愚かに揺るがします!
チームに上級プログラマーをロードする際に見られる最大の問題は、他のチームを弱体化させる可能性があることです。メンタリングとガイダンスを必要とする他のチームにジュニア開発者がいる場合は、人を移動させる必要があるかもしれません。
これにより、アイデアに関する哲学や議論が過剰になりますか?
確かにそれは可能ですが、違いが重要なものとそうでないものを知るのに十分なほど成熟している必要があります。尊敬されるチームリーダーを指定した場合、これらの種類の哲学的議論は最小限の労力で最小限に抑える必要があります。
1つのチームに上級プログラマーが多すぎると、悪いことになることがありますか?
間違いなく。
私はフレッド・ブルックスの外科チームのパターンの大きな支持者です。
また、開発チームのシニアが「最高の外科医」が誰なのかわからない場合、彼らは重要な建築上の決定をめぐって衝突し、チームの不利益にさまざまな方向に引っ張ることになります。
PS「チーフ外科医」に対する開発チームのニーズは、指揮者に対するオーケストラのニーズに似ています。どちらの場合でも、多くの退役軍人がいるでしょう。しかし、誰もが議論の余地なく担当している人がいなくても、あなたは素晴らしい混乱を抱えているでしょう。
それは、責任者がどのように配布されるかに依存します。すべての上級開発者が、設計、コードレビューなどに関して同等の責任を負うことになっている場合は、問題になる可能性があります。互いのドメインの制御を争うことなく動作できるように異なる責任が与えられている場合、問題になることはありません。たとえば、あるシニア開発者がプロジェクト設計の主な責任を負い、別のシニア開発者が担当しますソースリポジトリのセットアップとメンテナンス、ユニットテストなどを担当するようになります...
はい、キッチンで調理する料理人が多すぎるという問題があるかもしれません。また、全員が高い給料を期待している場合、かなりの費用がかかる可能性があります。これは、不良ケースの存在を確認するだけであり、その確率については何も述べていないことに注意してください。
最適は、開示していない多くの変数に依存します。ここでシステムをゲーミングする可能性が高いことを認識して、どのメトリックを使用しますか。同様に、あなたの世界にはどのような制約があり、それがグーグルやマイクロソフトが持っているものとは対照的に異なるかもしれません。
上級開発者が多すぎると、規約がない、または規約が多すぎるという問題が発生する可能性があります。一部の上級開発者は適応に長けているかもしれませんが、どれもコンベンションを導入しない可能性が高い場合、チームはどこから始めますか?逆に、解決するために何らかの競合解決を必要とするかもしれないいくつかの規約の熱烈なファンであるシニア開発者がいる可能性があります。
それは先輩の性格次第だと思います。彼らが慢で議論的であれば、それは悪いことです。しかし、彼らがすべて敬意を表していて、他の視点に開かれていて、お互いから学びたいと思っているなら、あなたは素晴らしいチームを持っています。
私は現在8人のチームで働いており、5人または6人がシニアで、私たちにとっては非常にうまく機能しています。私たちは仲良くなり、お互いから学び、それは私たちが持っている新しい人たちにとって素晴らしいメンタリング環境です。
私は、主任開発者が1人、上級開発者が4人、中間開発者が1人いるチームで働いていました。そして、チームの「シニア」メンバーの1人が本当に成熟した人ではないという理由(優れた開発者)のため、悪夢であることが判明しました。彼は、他のチームメンバーが十分に上級ではないことを常に(暗黙的または明示的に)証明しようとしました。また、彼はソフトウェア開発の基本原則と製品の詳細を理解できなかったため、慢かつ頑固に彼が正しいことを証明しようとしました。その結果、チームの有効性に深刻な影響を及ぼしました。悲しい部分は、それがアイデア/解決策についてあまりにも多くの議論ではなかったということです-それは何についての議論でした。例えば:
しかし、私はそれがむしろ例外であることを認めます。私はほとんどの場合、高齢者が適切に行動すると信じたい:)