1つのチームに多くの上級プログラマがいることは悪いことになるかもしれませんか?
6〜7人のチームに4〜5人の上級プログラマーがいるといいます。このような状況での最適な数/比率は何ですか?
これは、アイデアについての哲学や議論のしすぎにつながりますか?
誰かがそのような経験をしたことがあり、それを私と共有できますか?
私が選ぶことができれば、チームに6〜7人のシニアがいることになります(プロジェクトにそれだけ多くの人が必要だと仮定します)。
これが問題であると私が見ることができる唯一の時は、高齢者が自己認識においてのみ高齢者であり、倫理に反している場合です。
ソフトウェア開発のすべての要素が重要であることを高く評価している人々のグループと協力するのに勝るものはありません-ドキュメント、計画、コード、コーヒー、それはすべての問題であり、成熟した(本物の上級)開発者が「上にいる」ことが必要です何も」そして仕事をきちんと終わらせなさい。
[〜#〜] edit [〜#〜]:他の多くの回答は、リーダーが多すぎることが問題であると述べています-しかし、なぜシニアがリードしなければならないという認識があるのですか?シニアは、リーダーを選んでフォローするのに十分成熟している必要があります。重要なのは、プロジェクトです。役割を選択/取得して、ばかげています。
シニアプログラマーがいるチームをロードする際に私が目にする最大の問題は、他のチームを弱める可能性があることです。メンタリングとガイダンスを必要とする他のチームのジュニア開発者がいる場合は、人をシフトさせる必要があるかもしれません。
これは、アイデアについての哲学や議論のしすぎにつながりますか?
確かにcanですが、違いはmatterと、違いがないことを知るのに十分成熟しているはずです。尊敬されるチームリーダーを指名した場合、この種の哲学的議論は、ほとんど労力をかけずに最小限に抑える必要があります。
1つのチームに多くの上級プログラマがいることは悪いことになるかもしれませんか?
間違いなく。
私はフレッド・ブルックスの大きな支持者です 外科チームのパターン 。
そうは言っても、開発チームのシニアが「主任外科医」が誰であるかを知らなければ、彼らは重要なアーキテクチャ上の決定をめぐって衝突し、チームの不利益にさまざまな方向に向かっています。
追伸「チーフ外科医」に対する開発チームのニーズは、指揮者に対するオーケストラのニーズに似ています。どちらの場合も、多くの退役軍人がいる可能性があります。しかし、誰もが責任を持って責任を負うことなく、大混乱を起こすでしょう。
それは責任がどのように配分されるかに依存します。すべてのシニア開発者が設計、コードレビューなどについて同等の責任を負うと想定されている場合、それは問題になりますcould。彼らが働くことができるように彼らに異なる責任が与えられている場合なし互いのドメインの制御をめぐって戦うなら、それは問題ではないはずです-たとえば、ある上級開発者がプロジェクト設計の主な責任を負います、もう1人はソースリポジトリのセットアップと保守を担当し、もう1人は単体テストなどを担当します。
1つのチームに多くの上級プログラマがいるのは悪いことになるかもしれません。
必ずしも。私は非常に生産性の高いシニア開発者の小さなチームで働いてきました。談話のレベルは非常に高く、悪口はありませんでした。
TDDを使用すると、ソフトウェアアーキテクチャに対する大きなコミットメントがほとんどないため、それらについて議論する必要はほとんどありません。設計の決定は、両方のアプローチを実装し、どちらが最も効果的かを確認するだけで解決できます。開発者は非常に速いので、これらの試験のコストは非常に低くなります。
はい、適用される可能性のある1つの比喩に対して、キッチンで料理人が多すぎるという問題がある可能性があります。彼らがすべて高い給与を期待している場合、それはまたかなり費用がかかるかもしれません。これは単に悪いケースの存在を確認するだけであり、その可能性については何も述べていないことに注意してください。
最適は、開示していないいくつかの変数に依存します。ここでシステムをゲームする可能性が高いことを認識して、どの指標を使用しますか?同様に、あなたの世界には、GoogleやMicrosoftが対照的に持っているものとは異なる可能性がある制約があります。
上級開発者が多すぎると、規則がないか、規則が多すぎるという問題が発生する可能性があります。一部の上級開発者は順応に長けているかもしれませんが、誰も慣習を導入する可能性が低い場合、チームはどこから始めますか?逆に、解決するためにいくつかの競合解決を必要とするかもしれないいくつかの慣習の熱狂的なファンであるいくつかの上級開発者がいるかもしれません。
先輩の性格によると思います。彼らが傲慢で論争的であるなら、それは悪いことになるかもしれません。しかし、彼らがすべて敬意を払い、他の視点を受け入れ、お互いから学ぶ意欲があるなら、あなたは素晴らしいチームを持っています。
私は現在、8人のチームで働いています。5人か6人がシニアで、私たちにとってはとてもうまくいきます。私たちはうまくやって、お互いから学び、そしてそれは私たちが持っている新しい人たちにとって素晴らしいメンタリング環境です。
私は1人の主要開発者、4人の上級開発者、1人の中間開発者がいるチームで働いていました。また、チームの「シニア」メンバーの1人が本当に成熟した人(ただし、優れた開発者)ではなかったため、悪夢であることが判明しました。彼は他のチームメンバーが十分に年上ではないことを(暗黙的または明示的に)常に証明しようとしました。また、ソフトウェア開発の基本原則と製品の詳細を理解できなかったため、傲慢にそして頑固に彼が正しいことを証明しようとしました。その結果、チームの有効性に深刻な影響を与えました。悲しい部分は、それがアイデア/解決策についてあまり議論しなかったことです-それはnothingについての議論でした。例えば:
しかし、それはむしろ例外だったと認めます。高齢者はほとんどの場合正しく振る舞うと信じたい:)