残念ながら、レガシーの理由でドキュメントがほとんどないソフトウェアチームの上級メンバーとして、新規採用者を快適にするために何ができるでしょうか?
私は、特定の欠陥/機能のリクエストについて、その人とコードベースを理解するためのデバッグセッションを計画しています。ただし、コードベースは実に大きく、この方法でユーザーに公開できるコードの量は決まっています。
新規採用者が最近の卒業生または経験豊富な専門家である場合、どちらの場合でも提案を探しています。
これらは、彼らがより新しいか、または広範な業界での経験を持っているかどうかにかかわらず、すべての新規採用者に実際に適用されます。
x
サブシステムについて誰に尋ねればよいですか?」採用時にリストが提供されていれば、適切なリストを見つけるために人々のチェーンを経由する必要なしに、電子メールを送信したり、直接彼らと話したりする方がはるかに進んでいます。私はこれであなたを本当に助けることができると思います。私が18歳のとき、私の最初の仕事は.Net開発者の地位でした。彼らは非常に大規模なフレームワークを持っていて、CABのクラッシュコースをすぐに学ばせました。最初のプロジェクトが始まったとき、プロジェクトを見積もり、SqlServerとそのフレームワークを学ぶことが期待されていました。これをすばらしい経験にしたのは、私のシニア開発者が見積もりからSqlServer、そしてそのフレームワークに至るまでのプロセス全体を通して私のためにそこにいたということです。質問や助けのリソースとして彼を使うことができたので、非常にタイムリーに学ぶために必要なことを学びました。ちなみにこれはコロラドにいる間にも行われ、彼はカリフォルニアにいました。 (リモート開発)。彼は私にCABのホワイトペーパーを読んだり、優れたリソースなどを教えたりしてくれたので、彼がすべての教えをしなければならなかったようではなく、質問に関しては彼はそこにいました。結論として、あなたはあなたのジュニア開発者をサポートしてくれる人を必要としています。特に、彼らが会社で学び、成長し、良好な仕事上の関係を築きたい場合。彼らは私がカリフォルニアに引っ越すことを望んだ、なぜなら彼らは私が学んで進歩することができた率と私の仕事に満足していたので、残念ながら私はコストなどのために移動をすることができなかった。
その一つの経験は本当に私にも特徴をもたらしました。現在、自分の地方都市の企業や財団のために自分でソフトウェアを開発していますが、まだ21歳です。これは最高の最初の仕事であり、RenEvo Software&Designs(私のシニア開発者でした)のTom Andersonに非常に感謝しています。素晴らしいメンター。
私が今いる会社であるIMOは、新規採用者にぴったりです。これが私が効果的だと思ったもののいくつかです。
メンター
経験を積んだ開発者の中には必要とは思わない人もいるかもしれませんが、メンターとして割り当てられている人物が1人います。この人はあなたが持つことができる任意の質問に答えることができるようになります。彼らが新入社員の近くに座っていると、よりうまく機能します。メンターの要点は、新入社員、特に後輩が 十分な質問をしていない の罠に陥らないように十分に快適であるようにすることです。
ドキュメント
あなたはすでにそれについて言及しましたが、ドキュメントが役に立ちます。こちらのwikiには、基本的にあなたの最初の2週間を説明したドキュメントがあります。最初の2週間のランプアップが完了するまでに、あなたは自分自身を溝に入れ、土地の平地を手に入れ、そこで快適に仕事をしています。
一枚の紙に簡単なスケッチを描きます。機能ブロックとデータはそれらの間を移動します。そのため、新入社員はこのリストを手元に置いておくことができ、彼が触れようとしている場所がどこにあるか、どのモジュールが階層的に影響を与えるかを調べます。
他のすべては時間とともに来ます。しかし、2行のコードを変更する必要があるときに、それはあなたを馬鹿に感じさせる大きな絵ですが、依存するモジュール、コードブロックなどにどのような副作用が発生する可能性があるのかわかりません。
忍耐力
新しい会社に参加することは、特に、習得する新製品があり、慣れ親しんでいるものとは異なるツールを使用している場合、非常に困難な場合があります。新しい環境に慣れるまでの時間を与えて、速度を上げます。それらに実行するタスクを割り当てますが、通常の経験豊富なプログラマーがかかるよりもはるかに時間がかかることに注意してください。
サポート
必ずしも専任のメンターを割り当てる必要はありませんが、必要なときに支援を提供できる人がたくさんいることを確認してください。
学習方法は人それぞれです。メンターが必要な人もいれば、メンターが遅くする人もいます。 1つのサイズですべてのソリューションに対応できるわけではないので、代わりに彼らの地面を見つけてそれらをサポートさせ、ロープを学ぶ間我慢してください。
私は4か月前に新しい仕事を始めましたが、私の新しい職場はこの新入社員にとって本当に良い仕事をしたと本当に思っています。
A.バディ
彼らはいわゆる「バディプログラム」を持っており、開発者は新入社員のバディ/メンターになるためにサインアップできます。新しい開発者が採用されると、同じチームのメンバー(バディになるためにサインアップした)が新しい人のバディ/メンターであることが指摘されます。新しい人を立ち上げて実行すること、彼が遭遇する問題を手伝うこと、彼と一緒に昼食に行くこと、彼をチームに紹介することなどが彼の責任です。
B.依存度が低い
これも前述のとおりですが、コードベースを完全に理解していない限り、重要ではなく、実行が難しい割り当てから始めます。知らないコードベースに放り込まれ、1日目から実行する必要があることほど悪いことはありません。可能であれば、比較的簡単で、システム全体にまたがる割り当てを行ってください。そうすれば、彼はシステムについての知識を得るでしょう。
最初にコードを書いたとき、時間がない時間に小さなタスクがあるかもしれません。彼にそれらのタスクを与えます。
C.新規採用トレーニング
これはおそらくほとんどの人にとって贅沢ですが、私はこれを行う余裕のある大企業で働いています。毎月または2か月ごとに、ある種の新入社員トレーニングが用意されています。これは基本的に一連のプレゼンテーションであり、新入社員にシステム、テストの実施方法、バグ追跡の仕組みなどに関する何らかの知識を与えることを目的としています。
私が作業している場所には、まったく異なるタスクに取り組んでいるチームがたくさんありますが、同じソフトウェアで作業しています。各チームのメンバーは、ソフトウェアの一部についてプレゼンテーションを行うために割り当てられ、そこでその部分が何を行うか、どのように機能するかなどを紹介します。さらに、テストの作成方法、実行方法、コードベースへのチェックイン方法などについて、テストに関するトレーニング(私はテスターとして働いています)があります。
要約すると、新入社員にはやさしく、最初の1か月ほどは真面目な仕事を期待しないでください。ヘルプを得るためのツールを提供し、可能であれば、プレゼンテーションやビデオを提供します。
以前に述べたことに加えて、時間、教材、社内クラス、本などを提供することにより、トレーニングの必要性を特定し、それを提供します。これが問題ないことを彼/彼女に知らせてください。
彼/彼女を「悪者」から遠ざけてください。通常、すべての組織に少なくとも1人の傲慢な人がいます(これは私の法律です:))
メンターを割り当てる場合は、メンターが助けることがメンターの仕事であり、彼の親切な心の外ではないことをメンターが知っていることを確認してください。そのためのメンターのスケジュールで時間を作ってください。
最初の1か月ほどで彼の進捗状況を追跡し、可能であれば彼の問題を推測します。