これからの時代のエンジニアの生存戦略

freee の概念 @yokoji です。

昨日は @hiraguri が[「freeeのチーム運営で大事にしていること」](http://qiita.com/hiraguri/items/bd1ebe3409dd20eb35d3)を書いてくれたので、私は「個のエンジニアとしてこれからどうあるべきか」について書いてみようと思います。

この記事は [freee Advent Calendar](http://qiita.com/advent-calendar/2016/freee)の25日目、最終日の記事になります。

freeeでは一緒に働くメンバーが300名を超え（エンジニアは80名）、来年には初めての新卒エンジニアが入社する予定で、ユーザにより大きな価値を届け続けていくためにはメンバーひとりひとりの成長が今後より一層欠かせないと考えています。

「チーム自体が、チームを修正・改善し、自律的に、変化に適応していく組織」でユーザに価値を届け続けるためには、メンバーひとりひとりはどんなエンジニアであるべきか？について、思っていることをつらつら挙げてみます。


## どうつくるのか？よりもなぜつくるのか？を重視する

昨今、ユーザに価値あるサービスを届けるハードルは年々上がっていると感じています。本当に使いやすいサービスでたくさんの人に使ってもらえるプラットフォームとなり、さらにそこから生まれるデータで新しい体験や価値を生み出していく。そこまで求められるケースが増えてきています。アプリケーションをつくる技術はコモディティ化が進んできて、ビジネスになりそうなアイデアを実装するだけならば、ほとんど差はつきません。

その中で、いかにシャープにクリティカルな課題を見つけて解決できるか？が、これからのエンジニアに求められるひとつの大きな価値になってきています。究極的に言うと、コードを書かなくてもうまくハックして問題を解けるならば、それを素早く判断できるのも優れたエンジニアのスキルだと思いますし、**解くべき課題をシャープに見つけてそれを何とかハックして解くことにとことんこだわれる**エンジニアは、技術トレンドが変化してもどんな事業をやるにしても活躍できるのではないでしょうか。

エンジニアは得てして「目の前の課題を見ると解決してしまいたくなる人々」であることが多いと思いますが、なぜ解くのか？なにを解くのか？を徹底的に考える習慣をプラスすることで、これからもより大きな価値をユーザに届けることができると思います。

では、サービスも複雑になり技術も日々進歩していく中で、どうすれば解くべき課題をうまく見つけてハックできるようになれるでしょうか？

そのポイントは

* ユーザに価値が届く仕組みの全体観を、自分の言葉で語る
* 失敗から学び、得意なことを見つけてフォーカスする
* わくわくする課題に取り組む

の 3点だと思っています。


## ユーザに価値が届く仕組みの全体観を、自分の言葉で語る

まず、**自分がユーザに提供する価値を、エンドツーエンドで自分の言葉で語れること**が重要です。お客さんへの価値は、誰のどのようなプロセスを経て、どのような仕組みで届いているでしょうか？まず浅くてもよいので、広く全体を見渡してサービスの仕組みのエッセンスを理解することが、真のボトルネックを発見し、確からしい課題にたどり着くために役立ちます。

また個のエンジニアとしては、**ものがどうやって動いているのか？をユーザ視点のエンドツーエンドで自分の言葉で語れること**が重要です。どういう経路・仕組みでユーザからリクエストを受け取り、どのようにユーザにレスポンスが届くのでしょうか？連続した使える技術スキルマップを自分の中に構築していくことが重要です。

例えばWebエンジニアであれば、「Webブラウザであるページの要素をクリックしてから新しい画面が描画されるまでに何が起こっているか？」「データ量やアクセス数のオーダーが1,000違うと、全体として何が起こるだろうか」などについて、自分の知りうる限りの情報を使って説明してみようとすることは、自分の技術スキルマップの把握に役立ちます。

最初は各領域の解像度は低くてもいいですし、フルスタックに何でもできる必要はありませんが、まず全体を見渡してブラックボックスを特定し、エッセンスやボトルネックを把握することが重要です。いろんな業務をこなしたり、古典に触れたりシニアメンバーと情報交換する中で、意識的に各エリアの解像度を上げ、キャッシュを置いていくイメージです。技術が進歩し、すべてのレイヤーをつぶさに把握する難易度が劇的に上がっていく中でも、これを意識的に継続していくことで、各所でアナロジーを効かせられるようになり、新しい技術にキャッシュアップするスピードや効果的な課題解決（ハック）へのアプローチ・技術選択を考える上で、役立ちます。


## 失敗から学び、得意なことを見つけてフォーカスする

新しいことに果敢にチャレンジするときは、失敗の振り返りから得られるフィードバック、そこから見つかる課題が重要です。チームとの議論を通じてユーザ理解や技術スキルを磨いていく機会でもありますし、周囲のフィードバックを素直に受け止めて自分の強みや弱みを理解するための機会でもあります。

チームで開発していると、[プログラマー風林火山](http://blog.livedoor.jp/lalha/archives/50065532.html)のとおり、いろんな強みをもったエンジニアがいることに気づきます。周囲からの率直なフィードバックを得られる環境で、自分の活かし方を知り、インパクトを最大化していくプロセスが大事です。自分を客観的に見ることは思ったより難しいことですが、心理的安全性の確保された環境では周囲を頼ることができますし、あえて周囲にフィードバックを与えていく姿勢も重要です。

私自身についていうと、典型的な風のエンジニアで、しかも「目の前の課題を見ると解決してしまいたくなる人々」でした。とにかく課題を素早く腕力でねじ伏せるのは得意だけど、それ以外のことは大体苦手でした。自分ではそのことに全然気づいていなかったけれど、チーム開発の中でメンバーから率直なフィードバックを受けて気づかされて以来、得意なことにフォーカスできるように心がけています。

新しいことにも果敢にチャレンジしつつ、得意な領域で積極的にチームに貢献する意識を持ちましょう。


## わくわくする課題に取り組む

CEOの @dice-sasaki@github がみんなによく言うのは「会社はムーブメントだ」ということです。会社は“ムーブメント” 社会運動だと思っているので、仕事をする場所というよりやりたいことをやっている場所であるべきだということです。

freeeの場合、テクノロジーで中小企業のひとたちの働きかたを変え、彼らが創造的な活動だけに集中できる環境をつくろうとしています。本当にみんながこの問題を解きたくて、集まっています。

夢中になってひとつのことに取り組む情熱こそ、社会への最大貢献の機会であり、成長の一番の燃料であり、生きがいです。

日々の課題解決には泥臭い作業がつきものですが、必ずわくわくする未来へのつながりを意識して、課題に取り組むべきです。

見つけた課題に確固たる信念と情熱を持ち、ユーザに価値を届けるためのストーリーを語り、チームで解決していきましょう。



## さいごに

freeeでは小さいビジネスこそ強くてかっこいい社会・ムーブメントを、日本発でつくっていくことにチームで挑戦しています。我こそは次のfreeeをつくる！というひとや、freeeのビジョンに共感してそのムーブメントに少しでも加担したいひと、失敗しながら学んで大きく成長したいひとはぜひ[こちらのページ](https://jobs.freee.co.jp/)から一度話を聞きにきてください。

freeeでは、[巨匠制度](http://qiita.com/teppei_tosa/items/b9af950b09c4f877e15a)や委員会制度など、メンバーの課題意識から出発してプロジェクトが始まることが本当に多いです。公の場ではどうしてもキレイな側面しか見えないことも多いと思うので、[お弁当ごちそう制度](https://builder.japan.zdnet.com/off-topic/35081959/)（いつでも社員と一緒に夕ご飯のお弁当を食べられますので、カジュアルにお声がけください）なども活用して、freeeで実際に働いているメンバーと実際に働いている場で話し、リアルな雰囲気を感じてとってほしいと思います。

---


freeeのフロントエンドヤンキーで名カメラマン・鍋奉行の @ymrl からスタートした [freee Advent Calendar](http://qiita.com/advent-calendar/2016/freee) ですが、今年はこれでおしまいです。来年もまた、freee チームが取り組んだ新しいチャレンジについてお伝えできればと思います。

最後にこの場をお借りして、今年もAdvent Calendarを企画してみんなを沸かせてくれた3代目巨匠 @teppei_tosa さん、ありがとうございました！