ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

ミスるエンジニアとミスらないエンジニア

f:id:yourmystar_engineer:20180914172445j:plain

どうも。ユアマイスター星(@inase17000)です。

先ほど、こんな記事を読みました。

paiza.hatenablog.com

一般的にエンジニアってこんな人がいい!みたいな感覚としてはかなり同意できる内容だったのですが、僕にとってエンジニアに向いてる/向いていない論をするのであれば、「想像力を持って仕事ができるか」を挙げたいです。

下記の記事にも似たような話を書いたのですが、想像力を持って技術を題材にものづくりを進める人であって欲しいと願っています。

yourmystar-engineer.hatenablog.jp

さて、何年間も開発現場に身を置いてきて、何百かのエンジニアに出会ってきました。 その中で知識も経験もたくさんあるベテランのエンジニアもいましたし、まだまだプログラムを習い始めたばかりの駆け出しのエンジニアもいました。

一緒に仕事をしたり話を聞いていたりしてミスるエンジニアとミスらないエンジニアがくっきり分かれるものだなぁと気づきがあったので考えをまとめました。

ミスるエンジニア

共通していえる特性として

  • そそっかしい
  • 細かい作業が嫌い
  • プライドが高い

そんな人が多かった印象です。

出会ったケースは様々ですが、ルールがあるのに守らずミスる、検証に時間をかけた手順書があるのに無視してオレ流でミスる、そんなことを繰り返しみてきました。

とある現場では、SQLの条件部を書かずに、全レコードを一斉にアップデートかけちゃった、とか、関係ないサービスを再起動かけてダウンさせた、とか、顧客影響が発生するようなミスも色々聞いたことがあります。 #本当にあったIT怖い話

ミスらないエンジニア

共通項といえば、反対のことになるのですが、

  • 落ち着きがある
    • 自分のやっていることを理解・把握している
  • 細かい作業が苦じゃない
    • むしろ自動化して早く正確にやる方法を模索する
  • 自分を含めどうせ人間はミスるものと知っている
    • 人間がやらなくていいものは極力機械にやらせる

そして、ミスるエンジニアと違って、こっちのタイプの人は想像力が豊かです。

例えば、大量のファイルの似たような箇所をちょっとずつ違う文字列で変更を加えないといけないような改修があったとします。

ミスらないエンジニアは、コードをいきなり書き始めるのではなく、腕を組んで戦略を立てます。これ100パー。

安易に取り掛かってしまうと、途中で考慮漏れが発覚し無駄なやり直し作業が生まれたり、精度が落ちたりするのを知っているからです。

ミスらないエンジニアは、手動でコードを変更しないでいい方法を考えます。例えば、grepで検索して文字列置換で一度の操作でコードの修正する方法がないか、なんて思いを巡らせます。

もし起きちゃったら、どうしたら良いか

ミスをしてしまった時、悔しがったり凹んだりしているだけでは、全く成長がありません。次同じ失敗しないように活かせるよう以下の観点でアクションするのが大事だと思います。

  1. なぜミスが起こってしまったのか原因を特定する

    目を向けたくない事実についてもしっかり向き合うことが大事です。振り返りisギフト。改善is宝。

  2. ミスを防ぐために、人間に頼らない方法がないか検討する

    せっかくエンジニアになると決めたのだから、プログラムやテッキーな方法で解決する。人力でやる場合の1/10くらいの時間で終わらせたらドヤ顔でキーボードをタカタカターンってできます。

  3. また同じミスをした時にどうすればいいか調べて蓄積する

    実は一番大切だなーと歳を重ねて思うのは、ミスった時の受け身の取り方だったりします。ミスっても大丈夫なようにあらかじめ基礎知識をインプットしておくことや、壊してもいい環境で例外系をテストをするなど、技術の理解とともに運用時の俊敏性も身に付けることができると思います。

以上のことを積み重ねていけば確実にミスを減らしていくことができると思いますし、何より失敗から学べる、成長しやすいエンジニアになれると思います。

Twitterの方も徐々にですがフォロワーが増えてきました。どんな人がこのエンジニアブログみてくれてるのか知りたいというのもあり、お気軽にフォローしてもらえると嬉しいです!

twitter.com