プログラミングチームとは、コンピュータソフトウェアを開発または保守する人々のチームのことです。[ 1 ]プログラミングチーム の編成方法は様々ですが、エゴレスプログラミングチームとチーフプログラマーチームが一般的な構造となっています。[ 2 ]
プログラミングチームの編成方法は様々ですが、一般的に用いられる構造としては、エゴレスプログラミングチームとチーフプログラマーチームが挙げられます。 [ 2 ]プログラミングチームの構造を選択する際の主な決定要因としては、難易度、規模、期間、モジュール性、信頼性、時間、社交性などが挙げられます。[ 2 ]
マリリン・マンテイによると、分散型プログラミングチームに所属する個人は、より高い仕事満足度を報告する。[ 2 ]しかし、エゴレスプログラミングチームは、10人以下のプログラマーのグループで構成される。コードはグループメンバー間で交換され、目標が設定される。リーダーシップは、特定の時期に必要とされるニーズと能力に応じてグループ内で交代する。エゴレスチームには構造がないため、大規模プロジェクトでは効率性、有効性、エラー検出が弱くなる可能性がある。エゴレスプログラミングチームは、非常に複雑なタスクに最適である。
チーフプログラマーチームは通常、チーフプログラマー、シニアレベルプログラマー、プログラムライブラリアンの3人チームで構成されます。必要に応じて、追加のプログラマーやアナリストがチームに追加されます。この構造の弱点としては、チームメンバー間のコミュニケーション不足、タスクの協力不足、複雑なタスクの完了の困難さが挙げられます。チーフプログラマーチームは、チーム内の情報フローが限られているため、より単純で分かりやすいタスクに最適です。このチーム構造で働く人は、一般的に仕事の士気が低いと報告しています。[ 2 ]
2人のプログラマーが1つのワークステーションで共同作業を行う開発手法。
チーム全員が同じことを、同じ時間に、同じ場所で、同じコンピュータを使って行うソフトウェア開発のアプローチ。[ 4 ]
プログラミングモデルを用いることで、ソフトウェア開発チームはこれらの異なる手法を用いてプロジェクトを開発、展開、テストすることができる。
これらのプログラミングモデルの両方において、チームメンバーは通常、毎日 5 ~ 15 分のスタンドアップミーティングに参加します。従来、チームの各メンバーは立ち上がり、前回のスタンドアップミーティング以降に取り組んだこと、次回のスタンドアップミーティングまでに取り組む予定のこと、そして進捗を妨げているもの(「ブロッカー」と呼ばれることが多い)があるかどうかを述べます。[ 5 ]
ウォーターフォールモデルは、より伝統的なアプローチとして知られており[ 6 ] 、生産の線形モデルである。この方法論における一連のイベントは以下のとおりである。
ソフトウェア開発プロセスでは各段階が明確に区別されており、一般的に各段階が終了すると次の段階が開始されます。
このモデルを採用するプログラミングチームは、開発プロセスの早い段階でプロジェクトを設計できるため、設計を何度も繰り返すことなく、作業の大部分においてコーディングとテストに集中できます。また、これにより、チームはより包括的かつ綿密な設計を行うことができ、すべてのソフトウェア成果物を完全に理解することが可能になります。
アジャイル開発モデルは、従来のウォーターフォールモデルよりもチームベースの開発アプローチです[ 6 ]。チームは迅速なデリバリー/デプロイメントで作業し、作業を「スプリント」と呼ばれるフェーズに分割します。スプリントは通常、各チーム/チームメンバーに与えられる2週間の計画されたソフトウェア成果物として定義されます。
各スプリント終了後、作業の優先順位が再設定され、前回のスプリントで得られた情報が今後のスプリント計画に活用されます。スプリント作業が完了すると、プログラミングチームによるレビューと評価が行われ、次のイテレーション(つまり次のスプリント)に回されるか、完了した場合はクローズされます。
アジャイルマニフェスト[ 8 ]の一般原則[ 7 ]は以下のとおりです。
{{citation}}: CS1 maint: 複数の名前: 著者リスト (リンク){{citation}}: CS1 maint: 複数の名前: 著者リスト (リンク){{citation}}: CS1 maint: 複数の名前: 著者リスト (リンク)