エンジニアとしておそらく一番の差が出る部分
はじめに
今日はエンジニアとして5年ほど働いてきて、私が勝手に考える、エンジニアとしての実力が出てしまう行動についてお話ししようと思います。
はじめに言及しておきたいのですが、いろいろな能力の人がどんな職種にもいると思いますし、
年をとるにつれて働き方が変わったり、価値観が変化したりするでしょう。
このあたりは私自身そう考えることもありますし、何度も記事に書いてきました。
例えば
https://note.com/kenmaro/n/n85669eed1c36
のような記事です。
それを踏まえた一方で、ソフトウェアエンジニアとして実力がある人はやはりチームに大きな加速をもたらしますし、
そこに人間性、やマインドが伴うかどうかでチームの力が大きく変わってくると考えています。
そのような組織やチームにインパクトを与えられる、実力のあるエンジニアの行動について独断と偏見で書いてみようと思います。
いつでもフルで作業できる準備をしている
進捗を確認させない(自分から進捗を勝手に報告する)
この二つについてです。
1つ目についてはもちろん思うところがあって書いていますが、どちらかというと2つ目のポイントについて一番話したくて書いています。
それでは書いていきます。
いつでもフルで作業できる準備をしている
これはどちらかというとオタクっぽい発想かも知れません。
ソフトウェアエンジニアはパソコン1つあれば基本的に仕事がどこでもでき、集中さえできれば私はどこで仕事をしてもいいと思っています。
フルで作業できる、というのは、この集中できる環境をどこでも作れる状態である、という意味です。
例えば私個人に関して言えば、air pods pro と自前のマックブックプロがあればだいたいどこに行っても集中して作業できる自信があります。
コーヒーを飲みながら作業するのが好きなので、カフェに行ったり、マックに行ったり、コワーキングに行ったりして土日に作業することも多いです。
これも少し脱線しますが、エンジニアをやり始めて2、3年目くらいまではほとんどマックに行って100円のコーヒーを買って数時間作業していました。
今5、6年目になり、マックにはあまり行かなくなってしまいました。たまには行くのですが最近は以前より集中力が落ちたのかなんなのかわからないですが、
もっとスペースのあるカフェや、少し値段はかかりますが静かでスペースもあるコワーキングなどに行くことが増えました。
いずれにせよ、ここで言いたかったのは、自分が集中して仕事に取り掛かれる準備をいつもしているということです。
人によってそれがメガネをかけることかも知れませんし、図書館に行くことかも知れませんし、昇降式のテーブルを家に買うことかもしれません。
また、以前
https://note.com/kenmaro/n/n593e9af575a4
こちらにも書いたのですが、お金を掛けるだけで仕事の効率がよくなるのであれば、躊躇なく掛けるべきだと思います。
例えば今まで働いてきた中で言うと、オフィスの中でなぜかめちゃくちゃ狭いテーブルの環境で毎日作業している人や、1000円くらいの付属キーボードをずっと使っている人、
copilot に課金していない人などを見てきましたが、それらを変えるだけでも作業効率は30パーセントくらい上がるのではないかと正直思っています。
まあこの辺は賛否両論ありそうなのでこの辺りにしておきますが、私の頭の中に浮かぶ、お金で解決できることやティップスを列挙しておきます。
いい(広い)机を使う
いい椅子を使う
いいモニターを使う
いいキーボードを使う
いいマウスを使う
copilot を使う
PCのメモリやCPUのスペックは少なくとも30万くらいのレンジのPCを買う
vim をマスターする
好きな飲み物を片手に仕事する
適度に休憩したり体を動かす
朝の時間に集中して手を動かす
などです。
進捗を確認させない(自分から進捗を勝手に報告する)
2つ目のポイントについてお話ししようと思います。
進捗を確認させない(自分から勝手に進捗を報告する)ということです。
私が今まで出会ってきた、トップ5〜10パーセントに入ってくるエンジニアは、もれなくこのパターンです。
実力が足りない、というよりマインドの問題だと思いますが、あまり活躍できないエンジニアは、進捗を報告してこないことが多いです。
例えば私がリーダーの立場だとすると、私に一声進捗を共有してから帰る人もいれば、何も言わずにすっと帰る人もいます。
私が先に帰る場合やリモートワークをしていた場合でも、引き留めて1分くらいでやったことを共有してくれたり、メッセージしてくれたりする人もいます。
総じて、進捗をこちらから確認しなくても、勝手に報告してくれる人というのは実力のあるエンジニアであることがほとんどです。
そして意外と、これをやらないひとも経験上多いです。
そして、年数もほとんど関係ない気がします。インターンであっても、なにも教えていなくても、帰る前に、「これを今日はやりました、ここがわからず詰まってしまい、明日教えてください!」とか、「今日はここまでできました。帰ってからここまでやろうと思います、明日から数日出勤できませんが、ここまではやろうと思いますので、これ以降はお願いします」
みたいなコミュニケーションを行える人が多くはないですがいるからです。
このようなコミュニケーションを行える人で、エンジニアとしての能力が低かった人は見たことがないです。
たまに雑談だけして帰る人もいますがその人は一旦除こうと思います、笑
私は、どう考えても1日作業したのであれば、少なくとも1日の最後に、自分のやったことや進捗などについて報告するのが普通だと思います。
私も自分のボスにはメッセージなり口頭なりで報告するようにしています。
そして、これに付随して、私がリーダーの立場だとしたら、基本的に進捗を自分からチェックすることはしないようにしています。
なぜなら、実力のあるエンジニアは勝手に報告してくるということを知っているからです。
逆に、進捗を過剰にチェックしてくるマネージャーは、エンジニアからは嫌われることが多いです。
進捗をチェックしてプロジェクト全体の進み具合をマネジメントする、ことが仕事なのはわかりますが、
私であれば、人によって進捗の共有を促すかどうかには大きな差をつけます。
実力のあるエンジニアに対してはほとんど促すことは行いませんし、まだヘルプの必要なエンジニアについては、1日1回くらい進捗を質問すると思います。
このように、エンジニアであれば、マネージャーが進捗を聞いてくる前に自分から進捗を簡単に説明できるべきだと思いますし、
マネージャーは過剰に進捗を確認するべきではないと思っています。
特に、業務委託であったり、成果物を作ることで給料をもらうパターンであれば、これは顕著になると考えています。
業務委託であれば、夜に作業したり、休みの日に作業したりすることも多いでしょう。
そんなときに、「今日はこれをやりました」とか、「今週は忙しく作業ができませんが、来週にこれをやろうと思っています」といわれるだけで、仕事をお願いする方は非常に安心感を持って仕事をお願いすることができます。
私も業務委託では特に、信頼を失わないように自分からやったことを簡単にでいいのでメッセージとして送るようにしています。
また、職場の環境について言えば、リモートワークであればあるほど、その人が本当に仕事をしているかというのは見えにくくなりますから、そのような状況では一層、自分から進捗を説明することが求められるでしょう。
最後に
というわけで、今回は私が考える、能力の高いエンジニアについて2つの行動について書いてみました。
結局のところ、私が書いたのは能力というよりも、エンジニアとしてコードを書くのが好きなことだったり、働く時の姿勢みたいなマインド面を話したように思います。
皆さんが考える、エンジニアが大事にすべき行動とはどのようなことでしょうか?
もし考えがある人はコメントなどで教えていただけたら嬉しいです。
今回はこの辺で。
kenmaro
この記事が気に入ったらサポートをしてみませんか?