コードを書き続けることが最良のサービスにつながると信じているという株式会社リクルートコミュニケーションズの大石壮吾氏。
いいコードや優れたアルゴリズムを設計できれば、それがすぐに売上や収益アップに直結するアドテクノロジーの世界において、その価値や意味について語っていただきました。
株式会社リクルートコミュニケーションズ ICTソリューション局 アドテクノロジーサービス開発部 部長 大石 壮吾氏
1996年、印刷会社にエンジニアとして就職。2001年、リクルートコミュニケーションズに転職。「ホットペッパー」創刊、組版エンジン開発等を経て、2005年に本格的にネット開発チームを社内で立ち上げる。2013年からはアドテクノロジーを活用したプロダクト開発に取り組んでいる。
目次
プログラムを書くことこそがエンジニアの最大の価値発揮
私は、エンジニアになってかれこれ20年になります。今はアドテクノロジーサービス開発部の部長として主にマネジメント領域を担っているので、仕事においてコードを書く機会はほとんどありません。
ただ、エンジニアとしての経験を活かして、エンジニアが挑戦し続けられる仕事や環境をいかに生み出し、一人ひとりのエンジニアが最大のパフォーマンスを発揮できるようにするために、プログラムを書くことこそがエンジニアの価値発揮だ、ということをメンバーに伝えていくことを意識しています。
私の持論として「物事を進化させる人間自身がコードを書かなければ、一流のものはつくれない」というものがあります。
世の中のエンジニアは大きく「天才肌」と「努力家」の2タイプに分かれます。うちのチームにも、天才的なプログラマもいますし、またビジネス側の視点から調整していくのが得意なエンジニアもいます。
しかしどんな立場であれ、コードを書き続けることが最良のサービスにつながると信じているので、メンバーに対しては常にコードを書き続けることを求めています。
コードが売上アップに直結するアドテクの世界で、技術とビジネスを接続
特に、今注力しているアドテクノロジーの領域は、技術進化のスピードが速く、市場の変化対応も激しい世界です。
そして最大の特徴は、いいコードや優れたアルゴリズムを設計できれば、それがすぐに売上や収益アップに直結する世界であるということです。
アドテクノロジーを活用してビジネスを発展させていこうというニーズが年々高まっている状況において、ユーザーの動きをチェックしながら、様々な施策をスピーディに実装し、成果を出していく。
そうすることで、ビジネスに直接的な貢献ができるのは、エンジニアとして大きなモチベーションにつながるはずです。
SIなどの世界に多い印象ですが、やりがいを実感しづらい環境に悩んでいるエンジニアは、「自分が担当しているプログラムによって何が実現できるのか?」を考えてみると、技術とビジネスを接続して、モチベーションを高められるかもしれません。
どんな環境においても、これからのエンジニアは、技術が果たせる役割が大きく変わってきているということをもっと意識するべきだと考えています。
コードを書く理由は、「自ら課題を設定する力」で見つける。
しかし、ただ闇雲にコードを書いているだけでビジネスにインパクトを与えられるかというと、そう簡単な話ではありません。エンジニア自身がビジネスゴールを理解し、コードを書かなければ、その行為は無駄になるでしょう。
これはアドテクノロジーの領域に限らず、システムとサービスに関わる全ての領域において大切なことだと思います。その中で、具体的にどの課題に注目し、ビジネス、テクノロジーの両観点で優先順位を付け、解決の手段を考え、最適なコードをスピーディーに書いて実現していけるのか。
これが課題設定力であり、逆に、他からの指示で仕様書に従って黙々とコードを書いているだけでは、本当の意味で技術を使いこなし、ビジネスに貢献できるエンジニアとは言えないと思います。
リクルートでは、Will・Can・Mustという3つの要素で目標設定をしています。
Willは自身が実現したいこと、Canは現在できること、できないこと、Mustはやるべきことなのですが、エンジニアにWillを設定してもらうと「●●言語の新Verの書き方をマスターする」「プログラムを効率化させるために開発環境を整備する」などの手段を置いてしまうケースが多いと感じてます。
抽象度の高いテーマから考えて、一つずつブレイクダウンしていき、目の前のコードまで落としこんでいく。こうした訓練を続けていくと、自分がコードを書く理由が見えてくるはずです。
目の前のコードと、経営や事業が目指すゴールを結びつけるための方法
しかし今、自分の意思でコードを書けるような環境ではないところにいらっしゃる方も少なくないと思います。
その場合、まずできることは「なぜそのコードが必要なのか?」という視点を持つこと。普段行っている一つ一つの業務が、どんな人や機能につながっているのかを想像して、ユーザー視点から逆にどんなサービスや仕組みがあったらより便利になるのかを考える。
今の時代、誰でも簡単にアプリを開発・発信できるので、まずは理想のサービスを自ら設計し、とりあえずコードを書いて、世の中にリリースしてみる。
そうすると必ずフィードバックや評価を受けられるので、これを繰り返していくことで、物事を構造的に捉える力や、本質を見抜く視点を身に付けていけると考えています。
マネジメントとして日々多くのエンジニアと接していますが、このプロセスを途中であきらめてしまっている人がいて、もったいないなと感じる場面があります。
アドバイスを受けられる機会を設けたり、自分だけでなく外部からの視点を受け入れる訓練ができるような仕組みを通して、「自ら課題を設定する力」を磨ける環境を作っていきたいと思います。
技術面だけでなく、ビジネスへの貢献という面でも優れたエンジニアを一人でも多く育てていきたいです。
※本記事はエンジニアのためのTechLife Magazine「motech」(※2015年4月30日掲載)からの提供記事です