クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

言われたことをやらないエンジニアになるために

はじめまして。今年の4月にクラウドワークスに入社した新卒エンジニアの戸口(@Dooor)です。自分が初の新卒エンジニアなので、周りのエンジニアが全員中途で入社された方々という贅沢な環境で開発しています。

新卒が1人しかいないのもあって、周りのエンジニアをよく観察してみたりするのですが、言われたこと(だけ*1)をやらないエンジニアが多い印象を受けます。そもそもあれをやれ、これをやれ、と言っている人もいないです。

そんな環境なので「指示は特に出さない」とよく言われます。
配属後すぐに「思っているより放置されると思うよ」とか言われたりします。

昔から言われたことはしっかりできる(と思っている)僕ですが、言われたこと(だけ)をやらないエンジニアになるためにやっていることをお話します。

入社3ヶ月後に起きたこと

突然ですが、何で言われたこと(だけ)をやらないエンジニアになろうと思ったのか。
入社3ヶ月後にあることに気付いたからです。

自分がやったと言える成果がない

7月に入ってすぐ開発マネージャーと面談をする機会がありました。

「自分がやったと言える成果はありますか?」

と聞かれた時に、入社してからやったことは、他の人が考えて動いていたことに乗っかっていただけだなと思い、不甲斐ないことに何も答えられませんでした。。

しばらくして思ったこと

自分で課題を見つけて自分で改善できるようになろう。

やり始めたこと

不満メモ

クラウドワークスのサービス、会社、私生活どんなことでも不満に感じたことはメモに残すようにしました。

7月の中旬から始めて2週間で100個くらいたまりました(笑)。
本当にどうでもいいことまで残していますが、目的は、

  • 不満に敏感になること

です。

生活の中で、最初はめんどくさいと感じていたのに、慣れてきてめんどくさいと感じなくなることあると思います。

サービス開発も同じだと思っていて、開発をしていると毎日サービスに触れます。
かなり使いづらくても慣れてきてしまい、ユーザーが不便と思っていることにも気付けなくなってしまいます。

開発中のサービスを触っていて、

  • 何かよくわからないなと思ったけど、何か解決できた

ということがよくあります。よくある些細なことなので簡単に流してしまいがちですが、ユーザー全員が同じことを感じていたら恐ろしいことだと思います。

些細なことでも忘れないように、自分だったり周りの人が不便に感じていたり、わからないと言ってることはメモしています。(ぼそっと言ってるのが重要だったりします)

不満メモに残していることの多くは解決したとしても大きな価値はないことかもしれません。
が、どこに本当に解決すべき問題が転がっているかは誰にもわからないので、アンテナは常に張るように意識できるようになります。

プルリクエストを読み漁る

不満を見つけても改善までできないと意味がありません。

開発の話になりますが、僕はプログラミングの経験が浅い分、自分の知識だけで何でも改善できるとは思えないので、先人の書いたコードから知らないことを吸収しています。

なぜプルリクエストを読むようにしているかというと、

が書かれているからです。

f:id:Dooor:20160805103146p:plain

クラウドワークスでは

  • このぷるりは何のため?
  • マージされると何が変化する?
  • レビューして欲しい観点

とフォーマットが決まっています。

ソースコードを読んでても、自分じゃ思いつかない書き方、知らないメソッドなど出てきて勉強になります。が、何を意図して書いたのか、何のために書かれたのかはわかりづらい時もあります。

どんな課題があって、どんな解決策を取ったか、どんなコードを書いたかまでわかるので既にマージされたプルリクエストでも読む価値ありです。

できたこと

新機能を作る際、テストパターンが多く、チームのエンジニア全員でテストコードを書く機会がありました。
書いていくと100パターンを超え、ローカルでの実行時間は1分30秒程かかっていました。

テストを書いて、結果を確かめるのに1分30秒も待つのは辛いです。。

辛いですが自分の力ではすぐに解決できないので不満メモに残しておきました。

2、3日経つと待ってるのも仕方ないのかなと思い始めたのですが、そんな時にプルリクエストを読み漁っていると解決できそうな方法が転がっていたりします...!

普段はプルリクエストを読みながらわからないところはメモをして、で終わるのですが不満メモに残しておいたのを思い出して、実際解決できそうだったので解決を試みました。

結果...

  • テストの実行時間を3分の1にした

全体の実行時間ではなくて、特定のテストの実行時間ですが速度改善ができました。

before

約1分30秒だったのが...

f:id:Dooor:20160805103041p:plain

after

約30秒で終わるようになった...!!

f:id:Dooor:20160805103109p:plain

全体のテスト実行時間を短くしたわけではないので出した成果は大きくないかもしれません。
でも自分で不満を見つけて、解決までできたのは「言われたこと(だけ)をやらないエンジニア」になる第一歩だと思っています。

まとめ

僕の場合ですが、言われたこと(だけ)をやらないエンジニアになるために、

  • 不満に敏感になる
  • 解決するためのベストプラクティスを学ぶ

に取り組んでいます。

僕自身まだまだ試行錯誤の最中ですが、何かの役に立てば幸いです。

We're Hiring !

クラウドソーシングのクラウドワークスでは、言われたこと(だけ)をやらないエンジニアを募集中です。

www.wantedly.com

*1:言われたことだけではなく、自分のやりたいこともやっているエンジニア

© 2016 CrowdWorks, Inc., All rights reserved.