チームの中で最上級の開発者であり、チームの他のほとんどの人が数年後輩である新しいチームでどのように自分自身を扱いますか。チームの前の仕事は、あなたを含め、他の誰もがこれまでのキャリアで成し遂げたことはありません。
経営陣はチーム全体の生産性の向上を強く要求し、上級開発者として責任があります。
このような状況で切り札を出すためのヒントはありますか?明らかに、チーム全体が学ぶ時間を必要とし、チームの新しいことを忘れないようにしましょう。ただし、期限も前倒しです...
厳しい締め切りやプロジェクトの目新しさによって、優れたエンジニアリング手法が妨げられないようにしてください。ソフトウェアリポジトリのセットアップ、コーディングスタイルへの同意、テストスイートの考案など。タスクの新しさは、質の高い人がいることを望んでいる限り、それほど大きな問題ではありません。一生懸命働き、彼らの前の仕事を学びなさい。
または別の言い方をすると、あなたの責任と任務は、あなたの経歴と経験から高品質のソフトウェアを構築するために必要なツールが与えられたと経営陣が信じているためです。この仕事が今大変に思えるからといって、突然あなたのスキルを忘れないでください。
まず最初に、コードの最初の行からソースコード管理システムの使用を開始から始めます。早い段階で頻繁にコードをチェックする習慣を身に付けましょう。
次に、テスト戦略を決定するです。もちろん、これは単体テストを意味しますが、受け入れテストを自動化する方法も検討する必要があります。
3番目に、コードは定期的にビルドされ、定期的にテストされるように、継続的統合サーバーを確立します。
それができたら、チームとしていくつかの単純なコーディング標準を確立します。コードを誰でも簡単に読めるようにしたい。規格が何であるかは問題ではありません。タブでインデント、スペースでインデント、同じ行に中括弧など。彼らが何であるかは問題ではなく、誰もが一貫してそれらを適用するだけです。
チームはほとんどジュニア開発者であるため、コードのレビューを計画するは、システムに技術的な負債が多すぎないことを確認するために頻繁に使用します。
最後に、SCRUMを使用することを検討してください。もしそうなら、コーチを雇うか、いくつかのトレーニングに行きます。あなたは皆、これまでにないことをしているので、現実的な期限を設定することは単に不可能です。 SCRUMを使用すると、管理者はあなたが日常的に行っていることを可視化できるため、進捗状況を確認できます。そして、あなたの締め切りは明らかにあなたに与えられたので、SCRUMは少なくとも締め切りに間に合わない場合、少なくとも段階的に完成したストーリーを配信することを保証します。まったく機能しないシステム。
@chrisaycockの回答に加えて...メンタリングやトレーニングなどに割り当てる必要がある時間を過小評価しないでください。リードとして、詳細を手放し、チームを信頼する方法を学ぶ必要があります。あなたの仕事は、イネーブラー、ロードブロックリムーバーになり、経営陣がそれに突き当たったときに干渉を実行することです。約7または8の「通常の」チームでは、リードはもはやプログラムしません。状況では、これは3または4(たぶんもっと少ない)、あなたはプロジェクトのプログラミングリソースではありません。
2つの領域でのコミュニケーションに焦点を当てます。
1)あなたとチームのメンバーが何が関係しているかをよく理解するにつれて(ほとんど常に「当初考えられていた以上」)、これを経営陣に説明するために多くの時間を費やすことが重要です。実際の締め切りはほとんどありません。通常、NASA 200年に1回だけ特定の軌道位置にある小惑星を探査します。これは実際の締め切りです。それ以外は、ほとんどの締め切りは人工的なものであり、多くの場合、作業に基づいていません。通常、これらは固定されているため、それだけの金額」、「プログラマーのボブが2週間で去る」、「来週投資家に提示しなければならない」。しかし、作業が完了しないと、これらの締め切りに間に合わなくなります。次に何が起こるかを再評価し、何を行うかを決定します実際には、経営陣はむしろその「悪いニュース」を前もって取得するでしょう。これを行うのは簡単ではありません。それが、この仕事が難しい理由の1つです。締め切りに間に合う場合は、機能を削減することを意味します。それから、1つのことあなたはすべてを回避しようとしていますこれは締め切りを作成するための迅速なコードです。コードベースの終わりの始まり、うまくいかない、そして窒息する技術的負債の始まり。
2)チーム間のコミュニケーション。ブライアンや他の人が推奨するような正式な慣行を設定します。チームとして定期的に会うことを確認してください。週に1回毎日のスクラムに加えてあなたの最も重要なツールであるlisteningによって尊敬と信頼を得てください。あなたが助けることに集中することを確認してください。すべての犠牲を払って否定的な批判を避けてください。必要な場合は、肯定的な批判と励ましを使用してください。 「それは素晴らしいことです。考慮したいことがXであるとしたら、それは必要ありません。代わりにXを実行する必要があります」
私がやったことは、有能なものを特定し、分割して征服することです。私はトップ2か3を取り、キャプテンにします。他のチームは、キャプテンに続いて自分の小さなチームに均等に分けられます。
私は船長にチャンクまたはモジュールをプログラムに与えます。
キャプテンは、初心者に小さなプログラミングや研究タスクを与え、彼らが何をしているのかを説明しながら、メンタリングを行います。
私は、全員が同じオープンスペースにいるように部屋を配置しようとしますが、各チームには独自のコンピューターの輪があります。物事が迅速に動くように、私は皆に叫んでいる距離にいるのが好きです。
これは、これまでのところ約10〜20人のプログラマーに適しています。小さなグループの方が1つのグループにいるほうがいいので、まだ大きなグループとは一緒に作業していません。