アルパカログ

Webエンジニア兼マネージャーがプログラミングやマネジメント、読んだ本のまとめを中心に書いてます。

GAFAより身近なスーパーエンジニアから学ぶ「Engineers in VOYAGE」まとめ

「Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち」は、VOYAGE GROUPのソフトウェアエンジニアたちが事業を成長させてきた奮闘について、テスト駆動開発の和田卓人さんがインタビューするという形で書かれています。

Googleやアマゾンなど、いわゆるGAFAと呼ばれる高度なテック企業の成功事例はWebでたくさん見つけることができますが、これらは参考にはなっても自社で実践できるかと言われると難しいことが多いです。

一方、この本に登場する事例は、日本のWeb企業で働くソフトウェアエンジニアにとってどれも「あるある」と思えるもので、そしてその気になれば明日からでも実践できるほど身近なものばかりです。

このエントリでは、「Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち」の中から印象に残った点をまとめます。

フルサイクル開発者

この本で初めて目にした言葉が「フルサイクル開発者」です。

フルスタックと言うと、一人でプロダクトやサービスをすべて作れることに主眼がおかれると思います。一方、フルサイクルでは、全部を作れる必要はないけれど、その代わりビジネス的な要件を整理するところからできる必要があります。

「フルスタックエンジニア」という言葉は一時期(いまでも?)よく聞かれました。しかし、多くのソフトウェアエンジニアに求められているのはビジネス的な要件を理解し、整理することができる「フルサイクル開発者」なのかもしれません。

背景がわかれば、実装している自分たちのほうから、もっとよい実現方法を提案できます。「そのアウトプットを黙って作るには相応のコストがかかるけれど、達成したい目標がそれであれば、実はもっと簡単な実現方法があります」といった提案ができるわけです。

より良い成果を出すためには、企画やディレクターに言われたものをそのまま作るのではなく「なぜそれが必要なのか?」「もっと簡単な実現方法はないのか?」というふうに一緒になって考えることが必要不可欠です。

企画やディレクターの人たちが仕様を漏れなく把握しているとは限らない。だからエンジニアも一緒になって考え、良い案があれば提案して議論する。

そんなVOYAGE GROUPのフルサイクル開発者たちの働き方が目に浮かんできます。

フルサイクル開発者の仕事はコードを書くことだけでなく、ビジネスなんですよ。

立場による視点の違い

インタビュアーである和田さんの言葉にも、ハッとさせられる気付きがあふれています。

経営的な観点では、「システムを減らす」という選択肢はあまり出てきませんよね。惰性で続いている事業があったとしても、その部分の機能を減らすというのは、そもそも選択肢としては検討されません。「少しでも売上が出ているのであれば基本的にはサービスを続けよう」という判断になるものです。「事業を減らすことによってどういう利点があるか」という話の前提が技術者の視点から出されることは大事

経営観点を持ったソフトウェアエンジニアはほとんどいないでしょうから、このように経営観点での判断軸を見せられると「言われてみれば確かに…」となります。

事業を減らす、機能を減らすといったことを実現したければ、それを行うことによる経営上のメリットをどう説明できるかが大事ということですね。

チーム開発の実践的なノウハウ

チーム開発で明日からでも実践できそうな役立つノウハウもあります。

全員がMakefileを書けるので、チームの基礎知識といった位置付けになってます。「make testを実行すれば言語を問わずにユニットテストが動く」と言う程度だったものが、いまではチームの人たちがなんでもかんでもmakeを使って自動化している

複数のプロジェクトを横断的に見ているチームでは「とりあえずmake testを実行すればテストが動く」ということのありがたさは、身にしみてわかると思います。

機械学習

最後の章では機械学習を使ったプロジェクトも登場します。

機械学習をほんの少しだけかじったことのある身として、1番刺さったのが次の言葉です。

人間がものすごく頑張っているところに中途半端な予測モデルを突っ込んでも、あまり結果は改善しません。

これは本当にそのとおりで、だからこそ人間が頑張るところ、AIが頑張るところの見極めが今後より一層重要になってくると思っています。

以上です。

このエントリでは、「Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち」の中から印象に残った点をまとめました。