2010-11-21 13 views
3

私はチームを編成して大学の割り当てを行う方法が必要です。チームの授業のための方法論

私は大学の学生ですと、すでにいくつかのプログラミングの経験を持っています。比較的大規模なプロジェクトで2人以上のチームで働いていた私の経験は、計画、組織、コミュニケーションの問題のために、すべてが通常、非常に迅速かつひどく先週行われたことです。 1月には、6人のチームの中で(私のスキルにとってはかなり難しい)プログラミングプロジェクト(Oracle上のJavaアプリケーション)をやらなければなりません。すでに私のチームメンバーを知り、プロジェクトリーダーに選出されました。意味のある大きさの時間のために人々が集まることを期待するのは現実的ではありません。誰もが別の時間に自由であり、毎週1時間以上の会議は現実的ではありません。人々は勤勉であり、成功に献身していますが、誰もが自分の状況を持っています。ほとんどの分散作業は可能性が高い方法です。

私はXP、スクラムを見てきましたが、プロジェクトのフルタイム開発(他の人員やアルバイトをしている人)と顧客の関与を目的としています。仕様を書いており、経験があれば、家庭教師からのメールには2〜3日で最高の回答が得られます)。

人を整理し、作業を分割する方法任意の提案ですか?私はこの話題を研究することに真剣です。後でこの種の作品がもっとたくさんあるからです。

助けてください。

+3

http://programmers.stackexchange.com/? – khachik

+3

私はプログラミングに関するものではないので、この質問をトピックとしてクローズすることに投票しています。 –

答えて

4

私は大学で昨年のチームプロジェクト(6人)のリーダーの一人でした。私の経験に基づいて、私はいくつかの重要なポイントを持っています。

フォーラム、オンラインチャット、電子メール、SVNコミットメッセージなどはすべて非常に良いコミュニケーションメカニズムであり(私はそれらをお勧めします)、毎週のミーティングより重要なものは何もありません。これらは、タスクの委任/議論/監視、一般的な問題や大きな画像の話、グループ決定、そして単にアプリケーションを使用して、グループとして問題を特定することを含むべきです。こうすることで、人々が自分の仕事をしている場所、混乱する可能性のある場所、そして何をする必要があるのか​​を理解するかどうかがすぐに分かります。これは重要なことです。なぜなら、「紛失」してどこから始めるのか分からないという感覚は、しばしば怠惰ではなく進歩を遂げる上で最大の障害です。さらに、グループの決定は、あなたがお互いにアイデアを跳ね返すことができる人で最善のものです...そして、これはすべて共有された所有権の感覚を確立するのに役立ちます。

タスクを作成、委任、監視する最良の方法はありません。しかし、作業負荷を分かりやすく分かりやすく(可能な限り)、分かりやすいサイズのタスクに分けて、それらの間の依存関係を特定することが重要です。私たちのグループは、タスク、日付、バグのリストからなるTODOファイルをリポジトリに保持していました。私たちは、義務要件であるかオプションであるか(MoSCoWと考えているか)、クリティカルパスにいるかどうか、リスク/不確実性がどれくらいのものかなどといった要素に基づいてタスクを優先順位付けしました。彼らが実際にその仕事をしたいと思っていたかどうか、誰かが望んでいた作業を残しました(これも潜在的に危険です)。私たちの強力なプログラマのカップルも、「浮動的な役割」を果たしました。つまり、どんな仕事でも助けてくれるはずです。重要なポイントは、タスクの説明に会議で議論された内容が含まれている必要があるということです。何が、なぜ、どのようにキックスタートとしての文章(つまり、これを達成するには、blablablaを読みたいかもしれません。 )...それをに簡単にあなたのチームメイトがタスクに入るためのもの。

+0

フォローアップの質問:専任のチームリーダーと建築家/デザイナー(おそらく一人で両方の役割)を抱えましたか?あるいは、デザインの決定を「集合的に」行う方がよいでしょうか。あなたはUMLを使ってみましたか、この種のプロジェクトにはあまりにもオーバーヘッドですか? –

+0

私たちには専任の建築家/デザイナーがいませんでした。当初は作業負荷を3つのメインチャンクに分割し、それぞれに作業する一対の人員を配置しました。これは、重要な初期設計の決定がすべて少なくとも2人の人によって行われたことを意味していました。その後、いくつかの設計上の意思決定をまとめて行いましたが、ほとんどの場合、それぞれのタスクを担当する担当者が作成しました。私たちはUMLを使用しませんでしたが、おそらく目を見張るべきことです...特に、コードから自動的に生成できるのであれば、あまりオーバーヘッドになるとは思わないでしょう。 –

3

いくつかの考え:

  • コミュニケーション - おそらくタスクに人を割り当てるIRCやウィキ
  • を使用する - あなたは、人々の強みと弱みがどこにあるか、把握チャンクにプロジェクトを打破して割り当てる必要がありますそれに応じて
  • 監視 - 人々が遠隔地で作業しているプロジェクトの大きな問題は、時間通りに作業を行えないことです。あなたがこの上に保つ(例えば、使用のバージョン管理、チェックインを見て)する方法を考える必要があります - この仕事をするために、誰もがそれにアップフロント
  • 戦略予備を購入する必要がある - それはあるかもしれません他の人たちが人々の邪魔になるのを防ぐのが難しいと思っているプロジェクト全体の仕事を担当する一人の人(おそらくあなたが一番強いプログラマーならば)を持つ価値があります
5

プログラミングプロジェクトではありませんが、 5人のグループ割り当てであなたが選んだグループリーダーに似たポジションです。私たちは2週間早く終了する予定ですので、このグループは成功したと言います。私はこれが(私も「現実の世界の状況でプロジェクトを管理するための経験を描画するので、おそらくもう少し利点を持っています)が起こったことを確認するために、グループのリーダーとして、やったいくつかのこと:

  • セットオフセットからの地面の規則。出席者の出席、仕事の締め切り、苦労している場合の対処方法について、誰もが期待していることを知っていることを確認してください。私たちの大学には、「体重を引っ張っていない」人がグループから脱退できるシステムがあります。ユニと似たようなことがある場合は、その手順を開始するために必要な手順も概説する必要があります。たとえば、2回のミーティングを欠場すると、「イエローカード」になります。別のミス、それは '赤いカード'です。
  • 割り当て可能なチャンクに分割し、タイムラインを決定します。毎週何をすべきかをすでに知っていれば、毎週仕事を割り当てるのがずっと簡単になります。もちろん、あなたが決めた時間枠にかかわらず。
  • ミーティング。上記のすべてが決定された最初の会議があるはずです。おそらく長い会議です(最初の会議には90分かかりました)。そのミーティングでは、次のミーティングの前に完了するタスクを設定します。その後の各会議で、各人が行った作業を検証し、それが完全で正しいことを確認します。そして、もちろん、次の会議のためにタスクを委任すること。それで...
  • 各人、ペア、または何でも、離れて行くと、独立して仕事を自分自身で行う必要があります。会議の時間が(私たちと同じくらい)短いので、すべてが完了し、計画が立てられ、タスクが委任されていることを確認する必要があります。
  • コミュニケーション。私はグループのメンバーが彼らがやっている仕事について伝え、完成した資料をアップロードするためのフォーラムを設けました。また、他の人が助けることができるように、またはタスクを再割り当てできるように、人々が問題を投稿できる特定のサブフォーラムがあります。各会議には議事録があり、次の会議には議題が設定されていることが重要です。私はフォーラムにアップロードされているので、会議を欠席した人は誰も暗闇の中に放置されず、彼らが何をする必要があるかを正確に知ることができます。

プロジェクトは、プログラミングプロジェクトなので、以下はうまくグループが組織され、粘着性の維持に役立つことがあります。

  • 早期に - 好ましくは最初の会議で - 「モジュール」またはクラスにあなたのプログラムを破ります/プロシージャ/何でも;基本的に、管理可能な、コードの独立したチャンクを書く。これを毎週誰かに割り当てることができます。後で不必要にコードを変更するときに時間が無駄にならないようにするには、グローバル変数があればそれを決定します。すべてのコーディングが始まる前に、各クラスのメソッドとプロパティを決定することをお勧めします。
  • sgolodetzが示唆しているように、バージョンコントロールを使用して、書かれているコードを追跡することもできます。繰り返しますが、これを行う場合は、ルール/ガイドラインがいつ/どのくらいの頻度で更新されるかを確認してください。
  • 関連タスクに取り組んでいる人がミーティングの間に会い、コードがうまく統合されていることを確認してください。この方法で、彼らは一緒に働いて、それぞれの人のコードが他人のコードと確実に協調するようにすることができます。

私はここの鍵は整理されていると思います。厳密で詳細な計画を立て、できるだけそれに固執する。

大学では、少なくとも、冷酷さを一定量保つことが重要だと思います。人々が体重を落とさなければ、あなたの学年にも影響します。それはちょうど私かもしれませんが、一度ルールが設定されると、それらは守られて破られるべきです(つまり、仕事を完了しない、またはあなたが苦労していることを知らせないで、会議などに出席していないことを知らせないでください)。常に結果最初に合意されていたように、「カード」システムで。それはあなたの未来のことなので、気にしない人々がそれを危険にさらさないようにしてください。

+1

+1 - すべての非常に良いアドバイス、私は全面的に同意します。私が言うことの1つは、あなたのチームから人を取り除くことは、本当に体重を引っ張っていなければ必要になるかもしれないということです。できるだけ多くの人に目を向けて、実際に行うことができます。あなたは本当にあなたのプロジェクトを損なう人々を取り除くことをためらうべきではありませんが、あなたがそうすることに貢献していないことを確かめるために、それらを非現実的な期限などに設定してください。 –

+1

ああ、間違いなく。私のポイントでその明確化の+1。私は、適切なレベルの努力をしていない怠惰な人たちの話を主にしていました。 –

1

まず、プロジェクトのバージョン管理システムを設定します。これは、チェックインされたコードの目的をすべてのチームが利用できるようにするためです。誰かが何かを壊してしまった場合、以前のバージョンに戻すことができます。また、プロフェッショナルショップはすべてソースコントロールを使用します。使用の習慣で。

これで進捗状況を確認できます。ジョーが何かを試していないと、彼は仕事をしていないことを知っている。 Sallyがmid_termで辞めるなら、あなたはすでに彼女がしたことすべてを記録しています。

もう1つのことはコードレビューです。みんなのコードは1人以上の他の人によって再検討されます。あなたはこれから多くのことを学びますが、これもプロの開発者にとって必要なスキルです。

どのような順序で実行する必要があるかを計画します。他のすべてが依存しているものを開発する人々は、あなたのチームにとって最も信頼できる開発者であり、早期期限を過ぎるか、他の誰もその部分を行うことができないことを確認してください。

週間進行会議で、自分の仕事をしていないと誰かを呼び出すことを恐れないでください。自分の体重を引っ張っていない人を特定するのが早ければ早く問題に対処することができます。

関連する問題