#あいさつ
入社3年目のしがないエンジニアです。
今の会社には大学を出た後の新卒採用からお世話になっています。
入社当初は「今の俺ならやれる!やってやるぜ!」と意気込んでいました。かわいいですね。
3年目に突入し、過去を振り返るとまあ見えてくるものも色々あるもので、自分への戒めとどこかの誰かへのアドバイスを兼ねて残そうと思います。
#要約
####実装の目的を聞け
####理解できるまで殴り合え
####結論から言え
####わかんないことは聞け
####寝ろ
#実装の目的を聞け
開発作業をする上で意識するべきことは「成果物により何が変わるのか」だと考えています。
作業着手前に十分な説明を受けているとは思いますが、「何が問題で、それを解決するためにこうしている」という部分だけは明確にしましょう。
目的が分からない、特に「言われたから作った」の状態では開発作業のモチベーションに大きく影響します。
モチベーションがない状態の作業は、普段と比べてより時間を掛けてしまいます。「新人だから多少の時間オーバーは許される」といった考えに甘えず、工数オーバーを減らすための試みをしましょう。
ただ、実際の所「顧客がこう作れって言ったからこう作れ」という指示が下ることが多々あり、「オレはこうした方がいいと思うんだけどなぁ」と思いながら作業することもあると思います。そういった際は上司に相談すると顧客と調整してもらえたりもらえなかったりします。まずは相談しましょう。
#理解できるまで殴り合え
物理的に殴り合う訳ではありません。
自分が新人時代にしたやらかしに「よく分かんないけど、つまりこういうことでしょ」と考えながら作業をし、レビュー段階で「あれ、なんか指示と違くない?」と指摘され、最初から実装をやり直し、工数がかかってしまった。という事例があります。
作業の受け手側の解釈の仕方が間違っているのか、上司の指示が分かり辛いものだったのか、そこはさして問題ではありません。問題は、「理解してないけどまあ着手するか」という点にあります。
作業説明を受けた後に、「確認なんですけど、これってこういうことで合ってますか?」と確認を取るだけで大きく改善します。仮にその確認が合っていなかったとして、「合ってねえよ!」と怒る人はいません。
実際は、(あ、今の説明だとそう解釈しちゃうのか)と納得し、上司も指示の出し方を変えてくれます。
(上司も人間なので、最初から完璧な指示を出すことは少ないです。確認の結果間違っていても恥ずかしい事ではありません。)
上司としても、新人に作業依頼をする時は「大丈夫かな、出来るかな」と不安になることがあると聞いています。そういった際に上記のような確認をしてもらうだけでもかなり安心するらしいです。
また、不明点を最初に全て明らかにするのは大切です。作業中に不明点が出てくることも多々あると思いますが、最初に発生している不明点は最初に解消するべきです。上司が外出中に不明点が原因で作業が止まってしまった。なんてことがないように、聞けるうちに聞いておきましょう。
#結論から言え
いろんな人が言う事ですが、本当に大事です。
「今作業していたんですけど、○○の作業をしていて実際に動かしてみようと思ってドコソコを修正した資材を入れて動かしてみたんですが、△△画面で××エラーが発生してシステムが動きませんでした。」
という報告よりも、
「今△△画面で××エラーが発生してシステムが動かなくて困ってて、」と切り出された方がありがたいです。
後者の言い方をされた時であれば、上司はシステムの動きをある程度把握しているはずなので、最初の切り出しの段階で(△△画面で××エラーが出るのは大体原因がアレかコレだな)とアタリを付けることが出来、その後、修正内容を聞くうちに(ドコソコの修正をしてるのなら原因は多分コレだな)と整理出来ます。
もしここで前者の言い方をしてしまうと、「え、ちょっと待って××エラーが発生してて何したって?」と聞き返されます。
「ドコソコの修正をした」と聞いただけで(それは××エラーが発生するだろうな)と類推するのは難しく、エラー発生の原因を探るために聞き返すことになります。
#わかんないことは聞け
実務は授業や講義とは違います。授業や講義の課題では、基本「分からないことは調べれば分かる」物しか出ません。しかし、実務では「調べても分からないこと」が多くあります。自分でいくら頑張っても分からないことは分からないことです。実務の基本は「分からなければ聞け」です。
こう言うとよく返されるのが「ウチの会社はクソなので『自分で調べてみて』って言われます」です。この「自分で調べてみて」という言葉が返ってくる原因はいくつかあります。
これは私の主観ですが、上司がそのままの意味で「自分で調べてみて」と言うことはあまりなく、「自分なりに調べた結果を教えてくれ」というニュアンスが含まれていると思っています。
人に物事を教えるとき、1から10を教えるのはあまり好ましいとは思えません。当人は1から6までを把握しているかもしれませんし、1から9まで理解しているかもしれません。
1から9までを理解している人に1から10を教えるよりも、なぜ9で躓いているのかを教えた方が理解が速いです。
自分なりの調べ方をして、「1から3まで分かったけども、その先が分からない。」といったニュアンスであれば、「3でコケてる理由は~」と繋げてもらえます。
当人がどれだけ正解に近付いているのかを把握しない限りは、上司もアドバイスが出来ません。そういう意味での「自分で調べてみて」だと思います。
また、工数オーバーの原因が自分のスキル不足によるものになることは基本ありません。新人なら尚のことです。技術的な原因だったとしても、作業工数オーバーの原因の大体は上司と作業者のコミュニケーションエラーによるパターンは多いです。コミュニケーションエラーに対するアプローチは新人側からも出来ると思います。
自分が新人時代にやらかした工数超過の原因は「上司への相談をあまりせず、自分で物事を解決しようとして調査に時間を掛け、結果として工数超過をしてしまった」が大半でした。一番最初に書いた「今の俺ならやれる!やってやるぜ!」が原因です。
プロジェクトのクロージングの際には「作業者の進捗がオーバーした原因は不明点の調査に時間を掛けすぎたからで、不明点が発生したらすぐに上司に相談すること、また、上司に相談しやすい環境をプロジェクトとして整えること」という反省点を生みました。
反省点を見て分かる通り、「新人の調査力に問題があった」「新人のスキル不足」が原因とはなりません。新人のスキル不足を補うのは上司の役目であり、それが適切になされなかったことが原因です。なので、「新人はすぐに質問すること、プロジェクトは質問しやすい環境を整えること」が反省点となりました。
#寝ろ
マジで寝ましょう。夜。
学生時代と同じ生活リズムは日中の作業に大きな支障をきたします。
出来れば朝日で目が覚める位には睡眠環境を整えましょう。
大学生だった頃の私に言っても絶対に信じてもらえないのですが、「お前は12時以降に起きていられなくなる」は本当です。深夜2時に寝ようものなら有給が半日分無くなるのはほぼ確実です。
睡眠は一朝一夕で整うものではありません。日頃から意識して変えていく必要があります。
「エナジードリンクを飲まないと日中眠くて眠くて」という意見には、「睡眠環境を整えて日中眠くならない様にしろ」と返しています。というのも、エナジードリンクは本当に健康の前借りでしかなく、そのしわ寄せは大体土日に来ます。
日本には「寝だめ」という言葉がありますが、先に記述した通り睡眠は一朝一夕で整いません。「土日に超寝てるから大丈夫」とはならず、「土日に寝ても大丈夫じゃない状態」が必ず来ます。そうなった時に、「じゃあ明日からちゃんとリズム整えよう」と思っても、身体はすぐには変わってくれません。
尚、私自身はオンラインゲームをずっとやってる人なので夜更かしする人の気持ちも分からなくはないです。「自分が寝た後にみんなが楽しそうなことやってるの見てつらい」と思うこともあるかもしれないですし、「寝たらノルマ達成できない」もあるかもしれません。それでも寝てください。同じように12時に寝る人は数多くいます。12時に寝るからと言って、あなたが損をしているわけではなく、12時に寝なくてもいい人が受けてる恩恵を見ているだけです。同様の生活をしている仲間を見つけて、「12時に寝るので、それまでを精一杯楽しめる」ようなオンラインゲーム生活をしようね!
#最後に
これ以外にも言いたいことはいろいろありますが、特に言いたかったことは上記5つの事柄です。
これを意識して作業に従事していれば今頃は、と思うことは正直ないですが、意識すれば確実にスキルレベルは違ったとは思います。
自分に対する後悔と、どこかの誰かの役に立つ為の記事でした。
おしり