私はまだ学校にいますが、他の人との付き合いに問題があることを知っています。
私は怒ったり恥ずかしがったりしているわけではありません。自分のやり方で働き、他の人の意見を尊重しながら意見を述べたいのですが、私は知識に大きな好奇心と飢えを持っていますが、実践に欠けており、人々は働きたくないと思います彼らは私が何らかの士気を話すことを恐れるかもしれないので、私と一緒に。 (たとえば、私はWindowsをたくさん使用していても、WindowsではなくLinuxを使用してプログラミングを学び始めました。Macを持っています)。
チームワークに欠けているプログラマーはどうなりますか?問題はどこから始まりますか?優れたプログラマであることは、少なくとも少しは補償しますか?プログラマーが言われたことだけをするのではなく、自分の仕事についてビジョンを持つことは正常ですか?
あなたの行動はあなたの年齢ではかなり一般的です。私はあなたのようでした。
良いニュースは、ほとんどの場合、それは良い方向に進化するということです。チーム内で自分を統合する方法を学びます。きっと気にいる!しかし、それを作ることができず、現在鬱病で立ち往生している人々に出会いました。
あなたの会社の管理スタイルに応じて、あなたはあなたのチームに拒否されるか、しばらくすると解雇されます。したがって、いくつかの困難に直面する準備をする必要があります。
フランスの最も一般的な管理スタイルは、恐怖と罰に基づいています。それはあなたの個人主義を奨励するので、これはあなたにとって良いニュースではありません。だからそれはあなたの行動を奨励します。
とはいえ、あなたはすでに問題があることを知っているので、外部からの支援なしに進化するために必要なすべてのものが揃っていることはかなり良い兆候です。最初のステップは認識しています。 2番目の問題は、最も難しいものであり、それに基づいて行動します。
チームワークを欠くプログラマーはどうなりますか?
その場合、1人のプログラマにとって大きすぎるプロジェクトで作業することが難しくなります。ソロプログラマにとっては難しく、チームの他のメンバーにとっては困難です。
問題はどこから始まりますか?
あらゆる種類の場所。現在、チームの一部としての作業が苦手なプログラマーが1人います。彼は自分の前のバグを修正することにあまりにも焦点を絞っているので、アプリケーションの他の部分に悪影響を与えるショートカットを作る傾向があります。または、アプリケーションの他の部分と互換性がない方法で新機能を記述します。彼のすべてのコードチェックインがチームの他のメンバーによってレビューされるように、物事を再配置する必要があります。しかし、彼を独り占めしないようにするために、他のすべての人のコードチェックインも確認します。そのため、朝のステータスミーティングと一緒に、昼食が終わるまで作業を行いません。つまり、私たちのオフィスでは、1人の男がチームワークでひどいので、4人が毎日半日の仕事を失っています。物事を壊す彼のチェックイン(私たちはそれらを「障害物」と呼ぶ)から無作為に1日から1週間(通常は新しいバグを追跡)を失う可能性があるため、これは以前のアドベンチャーに対する改善とは言えません。彼のコードへの修正のいくつかは、アプリケーションがどれほど複雑で厄介であるために、半ダースのバグをクリアすることになります(私の推奨は 軌道からそれを核に入れ、そしてそれが確実な唯一の方法であるためもう一度やり直します は受け入れられませんでした)。
私たちが寛大な気分にあるとき、私たちは彼を「ヘッドダウンプログラマー」と呼びます。彼はキーボードを見下ろして、本当に速くタイプする傾向があるからです。彼は他の人がやっていることに注意を払いません。
優れたプログラマーであることで、少なくとも少しは補償されますか?
いいえ。悪いチームプレーヤーであるほとんどのプログラマーは自分のスキルについて非常に高い意見を持っています。これは Dunning-Kruger効果 と呼ばれます。 [〜#〜] pdf [〜#〜] 紙.
多分:ソロプログラマーは、チームの他のメンバーよりもはるかに優れている必要があります。しかし、これは、他の誰も彼の行動を維持できないことを意味します。そして、それが起こったとき、それはおそらく、ソロプログラマーが実際にチームの他のメンバーよりもはるかに優れているわけではないことを意味します。彼(そしてほとんどの場合は男)は、だれでもだますのが得意です。
ビジネスソフトウェア開発では、会社はあなたが去ってからだいぶ前になるでしょう。プログラムはおそらくあなたが始める前に書かれたものであり、あなたがいなくてもずっと維持されるでしょう。他の誰も理解できないほど特別で驚くべきものを書くと、 その後、Naughty Dogがいる状況に陥ります -彼らの主任開発者が辞め、他の誰も独自のプログラミングを理解できません男が書いた言語(そして物事を書いた言語)なので、everythingをC++に切り替える必要があります。
プログラマーが言われたことをするだけでなく、自分の仕事についてビジョンを持つことは正常ですか?
それは一般的です-交通渋滞や糖尿病のように。私はそれを普通とは呼びません。企業の世界では、他にも考慮すべきことがたくさんあります。多くの開発者が持っている強いエゴは、通常、開発者に他には何も問題がないと考えさせます。この「適合性の欠如」と残りのビジネスに対する考慮の欠如が、ソフトウェア開発者が作業するのが難しいという結論に至るまで、非常に多くのタイプのマネージャーです。
ジョブが必要とするものに依存します。場合によっては、特定の任務を担当するチームがいないこともあります。しかし、ほとんどの場合、あなたにはマネージャーがいます。
また、チームを持つことは、あなたががらくたコードを書くことを時々思い出させるのに本当に役立ちます。 :
ソフトウェア開発者として、あなたはあなた自身の最悪の敵です。あなたがそれに気づくのが早ければ早いほど、あなたはより良くなるでしょう。 -ジェフ・アトウッド
つまり、チームを持つことで、物事をより早く簡単に学ぶことができます。孤独であることはあなたを隠者にするでしょう;)
それは学習可能なスキルです。あなたは今(単に他の人と一緒に仕事をすることによって)学ぶことも、仕事で難しい方法を学ぶこともできます。 (前者をお勧めします。)
他の人と協力できない場合、大きなシステムを構築することはできません。また、自分より賢い人と一緒に仕事をすることはできません。つまり、多くのことを学んだり、すぐに学んだりすることはできません。
今日の専門的なソフトウェア開発は、主にチームの努力によるものです。最高のソフトウェアは、新しいアイデアの共有と高度なコラボレーションによって生み出され、孤独な自分をいじるのではありません。 カウボーイコーダー 理想は、チームにとって既知の障害です。実際、それはチームワークの正反対です。
はい、チームの設定でチームのスキルが不足していることは非常に悪いことです。でも、正直にそれを使用したいのであれば、最終的には優れたものにならない理由はありません。チームの貢献者(ブートするための優れたコーディングスキルを持つ)!
他の人は私が言うことのほとんどをすでにカバーしていたので、これを追加します。あなたが意見やビジョンを持っているからといって、あなたが正しいか、あなたのアプローチが最良のものであるとは限りません。また、意見やビジョンを持っている可能性に心を開くと、他の人から学ぶことがたくさんあります。
チームワークとは、それらすべての意見をまとめて、関係者の集合的な経験に基づいて構築し、1人が考慮しなかったかもしれない欠陥に対処することです。
それは私が仕事で学んだ最初のレッスンの1つで、その後、より優れたプログラマーになりました。
優れたプログラマーであることは、少しではありますがほんの少しです。業界での16年間で、私が一緒に働いた最高のプログラマーはすべて、人々とやり取りすることができました-彼らには自然にやって来なかったかもしれませんが、彼らはそれを管理し、それは絶対に重要なスキルでした。耐えられなかった人々は容認されましたが、正直ではありませんでした。
私にとって、他の人と協力する能力の主な領域は、ユーザーとアナリストです。間違ったコーディングをしている場合でも、どれだけうまくコーディングできるかは重要ではありません。そのためには、製品を定義している人々との良好な協力関係が鍵となります。
最初のステップは、自分についてもう少し理解することかもしれません。あなたは他人の意見を尊重して幸せだと言いますが、これは本当に本当ですか?もしそうなら、なぜあなたは問題に対して道徳的な立場をとる傾向があることを暗示するのですか(他の人の見方を尊重することとは逆になる傾向があります)?
一般的に、他の人とやり取りすることは、誰が正しいか、誰が間違っているかを無視し(状況の80%では関係ないと信じています)、プロジェクトを前進させるために何でもすることに集中する傾向があります。
あなたは優れた学習者なので、もう1つ、覚えておくべきことがあります。
独立している時もあれば、一緒にいる時もあります。どちらも重要です。
あなたは学校にいるので、あなたは好奇心を働かせて、物事を行うための新しい異なる方法を探すことができます。それは良いことです。
ソフトウェアチームと協力して、良いアイデアを提供できます。一部は受け入れられます。いくつかはしません。次に、あなたはすべて「車輪に肩をかけて」、仕事を成し遂げます。それも良いことです。
プロジェクトでの私の経験は、人々がまだ全体像に焦点を合わせようとしているときに、最初は低いグループの士気があるということです。その後、目標に向かって進むにつれて士気は着実に上がります。終わりに向かって、あなたの「赤ちゃん」が「生まれる」ようになるので、それは非常に高いです。それはあなたが見逃したくないものです。
「多くの人が」「非常に扱いにくい」と考えられている多くの優れたプログラマを思い浮かべることができます。
この業界では、コンピテンシーとコンピテンシーを明確にする能力が重要であると私たちが予想し、想定していると私はかなり考えています。結局、私たちはお金を稼ぐためにいくつかのタスクを達成するために仕事に行きます、友達を作ることは二次的です。
あなたの人生のある時点で、あなたは2つのことの1つに気づくでしょう:
あなたの行動にも関わらず、あなたのスキル(そしてあなたの知識を明確にする能力)はすべての議論を終わらせるので、あなたはあなたが好きなだけの態度、引きこもり、反社会的、冷笑的、または失礼な立場にいます。
あなたは他の皆と同じように、チーム環境で働くことができる必要がありますが、知識を明確にするスキルと熟練度がほとんどの議論を終わらせる他者からの悪態、引きこもり、反社会的、冷笑的、失礼な行動に我慢します。
これに疑問がある場合は、チーム設定に同意して参加することにsomeの価値があると思います。おそらく、「行うためにそれを行う」ことは、可能性を探る。
私もあなたにとても似ています。私は混乱を嫌います。人々を邪魔したり解雇したりしないようにする方法を学ぶだけで、5年の大部分がかかりました。また、チームで作業したこともあり、1か月では自分で習得できなかったよりも、1か月で多くのことを学びました。 あなたが見せたり話したりする何か面白いものを持っているときだけあなたの周りの人が欲しいと思うのは奇妙ではありませんか?
まだご覧になっていない場合は、映画「 Real Genius 」をご覧ください。 Lazlo Hollyfeld に特に注意してください。心を開いてチームに飛び乗って、私のパジャマを自由に借りてください。
物事がどうあるべきかについて強い意見を持つことは何の問題もありません。優れたプログラマーなら誰でもたくさんいます。しかし、あなたは自問する必要があります:なぜ私はこのコードを書いているのですか?
それがあなた自身の娯楽のためであり、あなたが自分ですべての仕事をすることができるならば、あなたが好きなことをしてください。ただし、他の人が使用するためにそれを行っている場合、または支援が必要な場合、または退屈した後も他のプログラマーがそれを維持することを期待する場合は、他の人のニーズと概念を考慮に入れる必要があります。
ビジョンを持つことは問題ありません。しかし、他の人にあなたのビジョンを共有するように説得できる場合にのみ、それは本当に違いを生みます。ゲイツ、ジョブズ、トーバルズはすべて、多くの人々に役立つ製品を作り、彼らのビジョンに引き込むことで、ビジョンを実現させました。純粋にあなたのやり方で作業することは、より純粋で満足のいくものですが、代償が伴います。ヴォルテールが言ったように、あなたは完全を善の敵にさせているかもしれません( "Le mieux est l'ennemi du bien")。
他の人とコラボレーションすることができず、自然に生まれたコーディングの天才ではない場合、基本的に、重要なプロジェクトでの作業をブロックします。これは、バス係数を下げる以外にチームが必要だからです。
物理的な接触が気に入らないだけでなく、在宅勤務やオープンソースのメーリングリストでうまく機能する場合は、そのように機能できるスキルに特化する必要があります。
残念ながら、大きなプロジェクトで作業することはまれであり、チームで作業する必要がないため、これは少し問題になる可能性があります。相互依存的にプロジェクトに取り組んでいる場合でも、通常はエンドユーザーとより緊密に連携してチームワークに戻る必要があることに気づくでしょう。これは非常に重要なことです。
とはいえ、他の人が指摘したように、これは(ある程度)学習可能なスキルであり、あなたがそれに力を注いだ場合。一般に、米国の大都市で指導力を養うために受講できるコースがいくつかあります。ただし、優れたリーダーになることの一部は優れたフォロワーになることもできるため、これらのスキルも向上します。同様に、人前で効果的にコミュニケーションできることは、人々が練習を必要とするスキルであり、チームワークスキルに関連していることもありますが、見過ごされていることもあります。効果的にコミュニケーションできない人は、「チームプレーヤー」ではないとしても、彼らのコミュニケーションスキルに少し取り組む必要があるだけです。
ただし、チームでの作業の大部分は、ある程度自分を知っていて、自分だけでなく他の人にも慣れているため、心理学者やカウンセラーに相談して、改善できることがあるかどうかを確認するのに支障はありません。他の人との作業に関して。
全体としてのキャリアに関して言えば、ここ米国では、「仕事をするのが難しい」または「チームプレーヤーではない」という評判は、長期的なキャリアの見通しに非常に悪影響を与える可能性があります。他のほとんどの国でも同じです。これはまた、あなたがどの分野で働いているかに応じて、別の会社またはおそらく別の業界に移動することなく確立された後に振るのは難しい評判です。
何かを信じる場合は、それを言い、それを意味しますが、一度間違っているか、またはそれを上回ったことが判明したら、それを受け入れ、そこから学びます。チームワークとは、常に合意することではありませんが、特定の状況と時間枠で可能な限り最良のソリューションに到達する方法を持っています。
あなたは労働力に入る準備ができたばかりなので、別のことを指摘します。
エントリーレベルのプログラマーは決してスーパースターではありません。明らかに、あなたはそうではないので、あなたはあなたが他の誰よりも優れていると思って仕事に入ることができません。あなたはあなたのレベルで他の人と競争してきましたので、あなたは思うことができます。私はこれらの人よりも優れています。私は素晴らしいプログラマーでなければなりません。
しかし、学校を卒業したばかりの人は、10年の職業経験を持つ人が何を知っているのか知りません。あなたはまだそれを知らないだけです。今、私は多くの経験を持つ誰もがスーパースターであるとは限らないことを認めます、そして単にエントリーレベルであることはあなたがきちんとしたプログラマーになることができないことを意味しません。それはあなたが他の人より少ない味付けでスーパースターになることができないことを意味しさえしません(まあ、いくつかはスーパースターになることはありませんが、それも大丈夫です)。
しかし、チームで最も若い人以外の人になるまでは、アイデアを実現するための信頼性はありません。その信頼を得るには、チームプレーヤーである必要があります。ビジネスドメインとビジネスの運営方法について学ぶ必要があります。あなたは自分の個人的なニーズや欲求が職場のほとんどの場所で無関係であることを理解する必要があります。特定の仕事をして結果を出すために雇われます。あなたがそれらのいくつかを作り出すまでは、たとえあなたが正しいとしても、人々はあなたが提案するものに懐疑的です。話をする前に、散歩をしなければなりません。
チームワークはソフトウェア工学の重要な部分です。あなたが一人で働いているなら、あなたは他の人がどうであるか、そして人々があなたに何を期待するかについて気にしないかもしれません。ただし、他の人と一緒に作業している場合は、一緒に作業することが本当に重要です。ソフトウェアに関して言えば、チームワークとは、本当に「コミュニケーションがうまくいく」ということです。同僚に敬意を払い、すべてのアイデアに寛容になるようにしてください。それは大丈夫です。
あなたは一人で働くことになります。
チームで働くことの利点:
1-インタラクティブヘルプ:問題が何時間/日も発生しません。
2-本やオンラインチュートリアル、フォーラムでは見つけられないことを学びます。
3-競争:チームメイトを克服するためのモチベーションを高めます。
4-ディスカッション:本やブログを何時間も読むよりも優れています。