5

私はかなり経験豊富なC#開発者(約5年の経験)であり、最近、最初の開発チームをテクニカルリード(他の3〜5人の開発者の間で変化)として担当しています。この役割での過去4か月間、発生し続ける1つのジレンマは、プロジェクトマネージャー、アカウントマネージャー、クライアント、デザイナー、CEO、および私の間で行われるコミュニケーションの認識を共有する適切な程度を見つけようとすることです(特に電子メールを介して) 。

一方では、各開発者がプロ​​ジェクトの全体的な方向性についてより多くの認識を持っているほど、彼らの特定の機能が全体像で持つ範囲をよりよく理解できることを私は知っています。

しかし一方で、さまざまな利害関係者や管理者の間のメールの海で多くの時間が失われているように思われるので、開発者を「現在の作業を行うために必要なこと」に限定することを考えたいと思います。 「彼らを邪魔から解放します。

私はすべての開発者にBCCを適用して、これらの電子メールをフィルタリングし、基本的にすべての電子メールに「オプトイン」できるようにすることを検討しましたが、一部の開発者はこれを処理するための余分なノイズと見なすのではないかと心配しています。すべての開発者があまりにも多くの議論に貢献したいのであれば、それは「あまりにも多くの料理人」への扉を開くかもしれません。それでも一方で、他の意見は私がより良い決定に到達するのを助けることができます(すなわちハウスMDスタイル)。

ふぅ...考慮すべきことがたくさんあります。誰かがこの分野で賢明なガイダンスを持っていますか?

4

7 に答える 7

6

回答が遅くなりましたが、これまでに与えられた素晴らしいアドバイスに追加するものがあると信じています. あなたの質問に答えるには、より高いレベルに進む必要があるため、回答が長くなります。

あなたはチームの責任者であるテクニカル リーダーになりました。日常業務の多くの側面は、開発時代と似ているように見えるかもしれませんが、それらに取り組む必要がある方法は変わりました。ソフトウェア開発環境では、建設現場や工場の職長になるのとは対照的に、テクニカル リーダーを任命したとき (おそらく同じ机に座って、同じ服を着ているでしょう) に大きな変化はありません。しかし嬉しい変更点は、これらすべての会議に招待され、開発チーム外の人々からこれらすべての電子メールや電話を受け始めるようになったことです。

目に見える変化がないために、仕事をほとんど同じように扱い続ければいいだけだと思い込んでしまうかもしれません。これは事実ではなく、新しい能力での自分の行動と反応について意識する必要があります。外部からは少し「尊敬」されているように見えるかもしれませんが、内部ではその「尊敬」の一部を分かち合い、少し民主主義を演じ、一般的に公平になりたいと思うかもしれません。

まあ、これは公平性や敬意に関するものではありません。新しい仕事は次のことです。

  • 開発チームを指揮します (ほとんどの場合、個人的な例と目標を表すイメージを作成します)。

  • チームと他の組織単位の間の抽象レイヤーになります。

プログラミングでは、複雑さをカプセル化して隠すために抽象化レイヤーを作成することがよくありますが、組織でも同じことが起こります。あなたは層であり、開発チームをカプセル化しなければならないインターフェースです。そして、部外者の観点からの適切なカプセル化:

  • 目の前のタスク (アルゴリズムの具体的な実装など) に関係のない内部の複雑さを、外部のオブザーバーから隠します。

  • 外部ユーザーに影響を与える可能性があることを明確にします (スローできる例外、制限や制約など)。

  • 常に有意義なフィードバックを提供します。

  • 一貫して行動します。

これらの原則は、チームの外向きのコミュニケーションにも同様に適用できます。これらの原則に従うのは簡単なことではありません。実際には、具体的な作業が多く含まれます。たとえば、どの詳細が内部にあるのか、どのような事実を伝える必要があるのか​​、いつ、どのようにフィードバックを最適に構成して一貫した方法で提示する必要があるのか​​、誰に何を外部に通知する必要があるのか​​を決定するなどです。誰がいつフォローアップする必要があるか。ほんの些細な管理者のように見えるものもあるかもしれませんが、これは大変な作業です。

今、内部、内向きのコミュニケーションに。放送するのも一つの方法です。しかし、それは内部ネットワークを詰まらせ、誰もがコミュニケーションが自分に関連するかどうかを判断することに時間を費やさなければなりません. これは、入力に関係なく常にまったく同じ量の作業を行う、非常に一般的なアルゴリズムを持つようなものです。それは確かに可能ですが、なぜそれをしたいのですか?より効率的な方法は、明らかに入力に応じて処理を調整することです。ここでは、チームが何かをどのように処理するか、入力をディスパッチまたは変換する方法を決定するのは、誰かの仕事である必要があります。

  • どのような一連のアクションを実行する必要があるかを決定し、

  • または、将来の参照用に確認して保存するだけです。

  • またはフォローアップ、

  • または、後でレビューするために問題を延期し、それがレビューされ、意思決定ループにフィードバックされることを確認します。

これも小さな仕事ではなく、誰かがやらなければなりません。明らかに、外部と内部のコミュニケーションを管理するのはあなたの仕事であり、それをうまく行うために脳の処理能力の一部を費やさなければなりません。

役職に関係なく、全員に CC または BCC を送信しない正当な理由が他にもいくつかあります。

  • TO は「行動を起こす」、CC は「今後の参考のためにメモを取る」、BCC は「盗聴または大量メール」を意味します。人々のグループに電子メールを送信するときに、次のいずれかを使用する場合は注意が必要です。

    • 1 人に電子メールを送信することは単純な「TO」ですが、グループに電子メールを送信する場合は、アクション (簡単な確認を含む) が必要な人だけを「TO」します。これはデフォルトの意味であり、それ以外の場合は、期待されることを明示的に伝えます (つまり、FYI、アクションは不要など)。

    • 後で参照できるように、情報をメモしておきたい人だけを CC に入れます。合意に達するか問題が解決するまでに何度も電子メールがやり取りされることが予想される場合は、「CC」を使用しないでください。通知が必要な他の関係者には、後で要約確認を送信することをお勧めします。全員の時間を節約し、誰かが最終的ではないコミュニケーションに注意を払うことによる誤解を回避するだけでなく、やり取りをより個人的なものにし、より自然に流れ、形式主義と官僚主義を減らすのに役立ちます. 多くの場合、CC-d の電子メールは正式に処理されますが、これは必ずしも良いことではありません (ただし、まさにあなたが望むものである場合もあります)。

    • BCC の使用はほとんど問題ありません。誰かがあなたの会話を盗聴しているという知識が明るみに出れば、あなたの信頼性は簡単に失われます。それは単に「いつ」の問題です。そして、あなたのチームは、あなたが会話を他の誰かに BCC 送信している可能性があることを心配する必要がありますか? ほとんどの場合、BCC を介した大量メールも間違っています。電子メールが特に受信者に宛てられているという印象を与えます。

  • 転送、CC 送信、および BCC 送信はほとんど労力を必要としませんが、ノイズを増加させ、信号を希釈します。コミュニケーションを作成する前に、その人に何をしてもらう必要があるのか​​、コミュニケーションに基づいて行動するために何を知っておくべきなのかを考えておくことは価値があります。

  • 一部の会話は、完全に「オフライン」で行うのが最適です (電話または対面で行うのが最適です)。書面で放送または形式化することは、自分を窮地に追い込むようなものです。後でいつでも書面で確認できます。

テクニカル リードの責任の 2 番目の部分に移ります (目標を示す個人的な例と画像を通じてチームを指揮する)。これを達成するために、たまたま受信トレイに届いたすべての情報をチームに渡す必要はありません。ストーリーを作成する必要があり、優れたストーリーとは、特定の視聴者にとって関連性のある興味深い詳細のみで構成される実際のイベントの抽象化です。日常の経験に基づいてこの短編小説を作成し、何が関連性があり興味深いかを判断し、定期的にチームに提示することも大変な作業です。

ただし、チームを指揮し、抽象化レイヤーとして機能することで、開発者と外界がより効率的にやり取りし、より多くのことを達成し、より複雑に取り組むことができるようになることを忘れないでください。この仕事には意味があります。

于 2009-04-02T11:37:47.840 に答える
5

エンジニアリングチームは、マクロレベルで物事を行うように求められる理由のビジネス上の理由を理解する必要があります。エンジニアリングチームは、これから理解と動機付けを得るでしょう。しかし、おしゃべりが多すぎるのはノーノーです。ご存知のように、あなたの仕事の一部はフィルタリングすることであり、その一部はそれらを大量のノイズにさらさないことを意味します。開発者は、特定のことを行う方法や特定のテクノロジを選択する理由について意見や洞察を持っている可能性があり、それらの分野での専門知識を活用する必要があります。

絶対にBCCingの文化を作らないでください。

1つのオプションは、利害関係者がサブスクライブできる個別のメーリングリストを用意することですが、もちろん、すべてのおしゃべりがそれらのリストに含まれるわけではありません。

そしてもちろん、定期的な会社の会議は必須です。ビジネスが安定した完全な製品(または今後のマイルストーンに必要なもの)の提供に依存している理由をエンジニアリング担当者に知らせてください。20分、スライドなし、でたらめは私のために働くものではありません。チームと状況は異なる場合があります。

于 2009-03-23T04:20:12.480 に答える
3

1つの方法は、これらすべての電子メールを転送せず、週に1回、すべての関連情報、設計変更などを毎週の会議にまとめることです。私は絶対に開発者に大量の電子メールを送信しません。もちろん、重要なことが議論された場合、それは彼らの注意を引く必要があります。ただし、毎週の要約と関連する詳細の議論を試みてください。

于 2009-03-23T04:18:08.180 に答える
3

私は Wiki を使用します。メール ストームに追加する必要はありません。また、開発者も貢献したり変更したりできます。また、ドキュメントを共有するのにも非常に便利で、うまくいけば自立します。

ところで、電子メールから wiki への切り取り/貼り付けは、奇妙なことのように思えます。コンテンツを電子メールで送信できる軽量の .Net wiki を知っている人はいますか?

于 2009-03-23T04:22:32.240 に答える
3

あなたは技術者のようですが、次のアドバイスを差し上げたいと思います。プログラム マネージャーの仕事について Joel Spolsky のアドバイスに従ってください。基本的に、開発者を可能な限り隔離して、可能な限り生産性を高めるようにしてください。

彼はこの最近の記事「プログラム マネージャーになる方法」で簡単に言及しましたが、このトピックについては以前より深く掘り下げています。詳細については、彼の過去の著作を参照してください。

仕様が完成し、開発チームが作業に取り掛かると、私には 2 つの責任がありました。設計に関して出てきた疑問を解決することと、開発者が必要がないように他のすべてのチームと話し合うことです。

あなたが技術者でない場合は、チームから設計作業を手伝ってくれる人を選ぶ必要があります。彼らは、要件とは何か、最適な設計とは何かを理解するために、顧客と少しやり取りする必要があります。

編集: Joel のホームページには、Tech Lead と Program Manager というタイトルの 2 つのセクションがあります。プログラム マネージャーに関する詳細情報については、そこにある記事を参照してください

于 2009-03-23T04:27:05.363 に答える
1

この質問は、投稿されてから 1 年後に表示されますが、私の場合の特定のデータに関する経験を追加できます。プロジェクトに 2 ~ 3 人の開発者がいる場合、私は主に 1 対 1 で対応します。私のチームのほとんどはホーム オフィスで多くの時間を過ごすため、IM または電話でこれを行うことがよくあります。時々の会議は避けられませんが、主にプロジェクトの開始時に行われます (かなり複雑なプロジェクトを開始するには、開発者との 1 ~ 2 回の会議で十分です)。ダイジェスト。唯一の例外は、プロジェクトの詳細を解決するために、開発者を (管理者ではなく) ユーザーに直接接続する場合です。

私は定期的な会議 (毎週または毎日) を避け、次の順序で少なくとも 2 つの会議が発生した場合にのみ会議をスケジュールする傾向があります。

  1. 重要な情報が届きます (緊急度によっては、最大 1 週間かかる場合があります)
  2. 開発者は、できれば他の理由でオフィスにいます (開発者同士の会議)
  3. クライアントが利用可能です (選択肢はあまりありませんが、私はミーティングを行い、後でクライアント側の 1 人の実践的な専門家と開発者をつなぐようにしています)
  4. 設計に関するアドバイスが必要です (私はテクニカル リーダーであるため、高度なアーキテクチャに関する決定のほとんどを担当しています)

4 ~ 8 人のチーム (通常、8 人は 2 つのチームを意味します) の場合、ほぼ週に 1 回の 30 分間の短い会議で、全員が最新情報を把握するのに十分であることがわかりました。もちろん、これは、私がジュニア デベロッパーに対しては毎日、シニア デベロッパーに対しては週に 2 回ほど行っている 1 対 1 のセッションに追加されます。

1 対 1 の場合は、開発者がもっとやるべきことを探しているときや、始めたばかりのタスクについて質問があるときに、私に連絡することを好みます。また、これは、開発者が私を最新の状態に保つことを考える必要なく、物事がどのように進んでいるかを監視するための優れた方法でもあります. 私は、IM で十分な場合は電子メールを避ける傾向があります。それ以外の場合は、電話 (説明または議論することがある場合) に切り替え、次の場合は電子メールに切り替えます。

  • 顧客が電子メールでバグを報告した
  • 重要な細部がたくさんあり、開発者は実装中にその電子メールを何度も確認することになるでしょう。

何かについて調整する必要がある場合 (たとえば、Java と Javascript の開発者がインターフェースの詳細を検討する必要がある場合) には、開発者同士のミーティングもあります。

この作業方法は、私ができるだけ早く IM に応答しなければならないことを意味します。また、開発者が私または他の開発者の割り込みのみを処理する必要があるように、私は通常、多くの割り込みに対処する必要があります。私の仕事の重要な部分は開発者を効果的にすることなので、それは問題ありません。

コーディングに平和が必要な場合 (そして余裕がある場合) は、クライアントとのコミュニケーションを非技術的なプロジェクト マネージャーやベータ テスター (プログラマーよりも気晴らしに優れている) に委任することを発見しました。

于 2010-08-24T07:04:38.617 に答える
0

彼らが何を好むかを彼らに尋ねてください。私は、彼らがすべての電子メールでccされるのではなく、定期的に短い口頭での更新を選択すると思います。

于 2009-03-23T12:42:19.153 に答える