私たちはそれらすべてに出会わなければなりません-何年も前から存在し、素晴らしいドメインの知識を持っている開発者が、その知識をチームと共有することに失敗しています。
チームは必死に知識を共有する必要がありますが、彼らはそれを買いだめから引き離すことはできません。
チームはこの問題をどのようにうまく解決しましたか?
チームからコード所有権を削除します。ワークロードを分散します。コードレビューを行います。ナレッジトランスファーセッションを編成し、数回のセッションを待ってから、自分たちの地域でプレゼンテーションを行うように依頼します。
もちろん、マネージャーではない場合はマネージャーの支援があることが不可欠ですが、チームのeveryoneが定期的に情報を共有している場合、誰かが出てくる可能性のある言い訳はあまりありません同じことをしないために。
また、彼のマネージャーは彼と一緒に座り、これが彼の仕事を脅かさないことを説明する必要があります。それが彼がそうしている理由です。
個々のnotがすべての知識のフォントであることは良いことです。それは彼が他の、より興味深いものをすることから解放します。
The Computer Psychology of Computer Programming (私が本を目の前に置いていないので言い換えた)でコメントしたとき、ジェラルドウェインバーグはこのタイプの人に言及していたと思います、プログラマーが自分を不可欠なものにしようとしていることに気付いたら、すぐに彼を解雇してください。25年後、彼が本を再発行したとき、彼は他にアドバイスはなかったとコメントしましたこれとしてありがとう。
これが1つの解決策です。
彼らが望むものを彼らに与えなさい-彼らだけが行うべき知識を持っているすべてのメンテナンス作業とタスクを彼らに割り当てなさい。
いいえ、他の誰もこれらの他の非常に重要な保守作業を行うことができないため、彼らは新しい作業を行うことができません。
はい、新入社員は楽しい仕事をしていて、光沢のある新しいおもちゃで遊んでいますが、あなたはこれらの非常に困難で優先度が高く、退屈なタスクを実行する必要があります。
もちろん、あなたが彼らの一人にそれをする方法を見せたいと思わない限り....
これは、Rands in Reposeの article を思い出させます。
この男が情報を買いだめしている理由を理解する必要があると思います。就職保障(フェズに関する記事のような)は大きなものです。しかし、不安も同様です。あるいは、彼がこの種の仕事を気に入って、それをすべて自分に望んでいるか、または特定の領域についての強い所有感を感じているだけなのです。または、熱心すぎて、時間を作る方法を見ていません。
これらの問題のいくつかは、対立しないトリックによって解決できます。
情報要請のいくつかの試みに参加することも価値があります-タンゴに2つかかる可能性があり、質問者が適切な質問をしていないことを十分に脅かしているという考えを否定したくない場合があります。問題を悪化させます。ジャンプして物事のバックアップを開始し、その人を動かすために幅広い質問をする必要があるかもしれません。また、経営陣に質問を投げかけることは、情報共有活動に重要性と重要性をもたらします-経営陣を撤退させ、回避することははるかに困難です。通常、いくつかの生産的なセッションが進行中なので、途中から抜け出し、「これを持っているなら、私は必要ない」と言って、次の問題に進むことができます。
もう1つの重要な点は、知識を共有する必要のある分野での仕事を支配させないことです。他の誰かに作業の責任者を任せて、知識を共有するのは情報収集者の仕事であることを明確にします。彼がそれを共有できない場合は、情報の共有はチームの要件ではなく、オプションではないことを説明する残忍な会話が必要になる場合があります。彼が他の誰かが学ぶのを手伝わないことによってチームスケジュール問題に貢献していること。
「拒否」が正しい言葉であることがよくあるかどうかはわかりませんが、通常は忙しすぎて、明らかな説明をするために多くの時間を割く余暇(または傾向、社会的スキル)がありません。 )n00bsに。
ポジティブな解決策は、アシスタントを提供することです。ほとんどの場合、チーム全体に仕事を広げるようです(ただし、システムについてすべて知っている昔の人と知らない新しい人がいる場合、チームはそれほど多くないと思います。 、このセットアップを考えると、彼らが彼らの貴重なスキルを伝えたくなくて、より若い、より安いバージョンに置き換えられたくないのも不思議ではありません!)新しいアウトソーシングチームへ...うーん?)
アシスタントがシステムの一部で作業することをお勧めします。長期的には、その専門家になることが期待されます。経験豊富な開発者は、その小さな領域での作業の支援を期待されます。 「Xがどのように機能するかを知りたい場合は、(廃止された、または存在しない)ドキュメントを忘れて、Jimに相談してください」.
彼らにアシスタントを与えることは、経験豊富な開発者(彼らがそうである)としての立場を確認するだけでなく、主要なワークロードの一部を軽減する機会を彼らに与えるだけでなく、時間とともに知識を広げます。彼らはメンターまたは「チームリードへの第一歩」の立場になり、彼らの仕事が安全であり、彼らの経験が評価されることを彼らに安心させるでしょう。これらのいずれも実行できない場合は、マネージャーとして失敗しています。
どんな種類のsuper-complxシステムでも(もしそうなら、あるいは新人が自分でそれを理解できるはず)、知識の伝達は非常に長いプロセスであることを忘れないでください。私の場所では、このような作業には最低6か月かかります。それでも、私は私たちの製品が何をしているかについて、まだ多くのことを学んでいます。ここでほぼ10年!
毎年のレビューの一環として、各チームメンバーのコミュニケーションをコミットメントにし、これについて評価します。
チームが個人だけでなく業績で評価されていることを確認し、すべての個人がチームの成功が優先事項であることを確認し、チームの成功を妨げた場合はペナルティを科します。
コミュニケーションを妨げるものがないことを確認し、ドキュメントを作成して情報を共有するためのプロセスとシステムがあることを確認します。例えばWiki、Sharepointサイト、設計ドキュメントの予定された成果物など.
すべてのプロジェクトに、それに取り組むことができる少なくとも2人のプログラマーがいることを確認してください。これは、誰かが会社を辞めたときに常にバックアップがあるであることを確認するためです。
すべてのデータベース情報を含むwikiも開始しました。これは、情報にすばやくアクセスしたり、情報を更新したりするのに非常に役立つ方法です。
私の経験では、情報の保管者は2つのタイプに分類できます。自分の知識を共有し、自分のように他人をあからさまに助けて満足感を得る人とそうでない人です。明らかに。
現在、双方には理由があり、知識を共有したい人は、知識を共有していない人が提供していないのと同じ理由で、ほとんどすべてを提供することはめったにありません。それらはより良く、そして私の偏見では、彼らはそうすることにおいて正しいです。 (もちろん、あなたも単に自分自身を不可欠にするためだけに知識を共有しない人もいます、そしてそれは間違った理由のためです、そして彼らは通常それらが最初はそれほど素晴らしいものではないので取り除かれるべきです)
結局のところ、彼らは知っていることを学ぶために、通常は純粋な実験、批判的思考の寛大な適用、直観と洞察の閃光、およびさまざまな種類の犠牲家畜を伴う神秘的な儀式を学ぶために、難解な海と難解な海を深く掘り下げる必要がありました、そして、彼らはそれのためにうまく出てきました。思考の線は通常、周りの人々があまりに怠惰であるか、それを管理できない場合、彼らは最初から仕事をするべきではなく、確かに彼らの知識に値しないということです。彼らの周りの人たちが彼らがしなければならなかったのと同じことを経験するとき、彼らはよりよく考え、複雑な問題を解決する方法などすべてを学んだので、彼らはより良いプログラマーになります。
それは本質的に争いを通して他の人を良くすることを強いています。たっぷりと投げ捨てられますが、ガントレットを介してそれを作る人は、彼らが協力によって良くなった場合よりも必然的にはるかに良くなります。
さて、彼らに情報を共有させることに関しては、彼らにそれを強制することはできません。彼らに強要しようとすると、彼らはあなたを貪欲、怠惰、またはあなた自身でそこに行くには愚かであるとあなたに思わせるでしょう、そして彼らは確かにそれらのどのケースでもあなたに同情するつもりはありません。誰かが彼らにそうさせようと強いる試みを強要しようとすると、彼らは非常に厄介になるかもしれません、かなりの知性をすべて個人を阻止することに向けるか、または原則を裏切るのではなく、完全にやめさえすれば、結局、彼らのスキルを使用できる場所はたくさんありますそして知識。
知識を共有して喜んで彼らの知識を共有したくないこれらの1つを取得する唯一の方法があります。通常、彼らが持っていないことを知っていれば十分です(しかし、実行するのは困難です)。現状維持とそれをすべてやめます。それ以外の場合は、いくつかの山羊を購入して、飛び込みます。
「貯蓄者」が意図的にそうしているのではなく、実際には社会的スキルの欠如、時間的責任などの理由でそうしているだけの場合。是非とも、彼らを「アシスタント」または特に緩和を担当するジュニアプログラマーに依頼してください。ワークロードまたは知識の抽出を支援します。これが新しい人物の目的であり、面接プロセスに「溜め込み者」を巻き込むことを両当事者に明確にします。管理者はこれに手を取り、彼らが彼らの知識を共有することを可能にする必要があります。それが管理の目的であり、障害を取り除き、労働者が仕事を成し遂げることを可能にします。
誰がボスですか?どこで終わりますか?情報を共有する必要はありません。ドキュメントを提供する必要はありません。時間通りに物事を成し遂げることに失敗し続ける。コーディング標準には従わないでください。担当者がこれを重要だと考えるか、そうではないかのどちらかです。結果があるはずです。彼らは基本的に会社から盗んでいます。
「秘密のゲームを持っている」をプレイする人は、最悪です。これらの人々は安全ではない傾向があり、危機モードで作成または繁栄します。
私は、彼らがシステムに対して行うすべての変更または修正を文書化するようにします。また、含めるように開発した修正ごとに事後分析を提供します...
私もこの人に責任を負わせます...
多くは、関係する知識のタイプに依存します。直接コードであるか、ビジネスプロセス指向であるか。通常、後者はビジネスの他の場所で利用でき、取得できます。
第2に、開発者が共有せずに特定の領域で仕事の全人生を費やすことができないようにすることには、いわば議論があります。ですから、業務の実行を担当するラインマネージャーがいる場合は、特定の開発者がビジネスプロセス所有者の最初の連絡窓口になることなく、ビジネス変更要求が確実に実行されるようにすることをお勧めします。 ...これは、開発者がグルになるための努力を妨げます。