「技術力で、ビジネスをリードする」
まず、ユーザベースのミッションである、「経済情報で、世界を変える」があることが前提です。
ただそれだけだと上位概念すぎて、エンジニアの強みが発揮しきれないと感じたんです。エンジニアは基本的に技術が好きだと思いますし、僕たちもそういう人たちと一緒に仕事をしたい。僕たちが大事にしていることをメッセージとして発信したかったので、「技術力」を強調した表現にしました。
今後どんどん変化していく社会の中で、技術力によって解決できる課題はたくさんあります。ただし技術力だけではダメで、ビジネスにもしっかり貢献する必要がある。技術力とビジネスをつなげる必要があるという思いを込めて、最終的に「技術力で、ビジネスをリードする」としました。

SPEEDA Product Development Teamのミッション
「いいと思う」ぐらいの反応でしたね(笑)。
もともと1年ぐらい前からベースとなるものを共有していたこともありますし、採用の現場で候補者からの反応が良かったというフィードバックももらっています。
これは、SPEEDAのプロダクトチームで推進している「エクストリームプログラミング(XP)」という開発手法があるのですが、XPで掲げているバリューがこの5つなんです。XPについて頻繁に議論していたこともあり、最初に思い浮かんだのがこの5つでした。
エンジニアに限らず、何か新しいことを始めるとき、人は恐怖を感じるものです。そんなときに勇気を持って一歩踏み出すことはとても大事だし、みんなが勇気を持てるチームにするのは目指すべきところだと思います。
リーダーがいない組織
まず、リーダーやマネージャーといった存在はいません。かなりフラットな組織になっています。
システム開発する上で、仕様を考えたり要望を挙げる人がいて、リーダーやマネージャーなど取りまとめる人がいて、エンジニアに伝える人がいて……というような階層構造が一般的にあります。そうすると要件の抜け落ちや、違った形でエンジニアに伝わることが起きやすい。これが手戻りを発生させ、デスマーチにもつながります。
であれば、仕様を考える人とエンジニアにお互いに直接コミュニケーションを取ってもらったほうが効率的です。そうすれば開発スピードが上がり、要求イメージに近いものが届けられるはずです。

またリーダーやマネージャーといった存在がいると、その下にいるメンバーは思考停止に陥りがちです。組織全体で考えると、もっといろいろ考えて提案してくれる人が多いほうが良いはずですよね。だったら、リーダーやマネージャーを除いたほうが、組織としてより良く向かっていくと思うんです。
先ほどのXPやリーンソフトウェア開発論では「自己組織化」と言っているのですが、僕自身の経験も踏まえて、メンバーそれぞれが提案できるような組織にしたいなと思ってやっています。
特になかったですね。
そもそも指示待ち人間みたいな人は採用していないですし、エンジニアって技術を使ってこういう表現がしたいという思いを持っているものだと思っています。自由に動ける環境を用意することで、すごく考えてくれるんですよね。それによって、僕が思いもよらなかった解決法を提示してくれたりして、「やっぱり僕がトップダウンでやるよりも断然いいよね」と感じることは多いです。

知識の循環を促す
またプロダクトチームでは、プロジェクトメンバーも定期的に入れ替わるようにしています。
普段業務をしていると、小さいチーム内で知識やノウハウが閉じることはどうしても起こります。これをプロダクトチーム全体に循環させることが、全体の生産性向上という意味では大きなポイントになります。
少なくとも僕が見えている範囲では起きてないですね。
基本的に全員ペアプログラミングをしていますし、コミュニケーションをとることもバリューに掲げています。わからなければすぐに聞けば良い。情報共有のスピードはすごく速いチームだと思います。
林:
TDDを導入する際の大きなハードルの一つとして、「(面倒な割に)効果がよくわからない」というのがあると思っています。定量的な数字を出すのが難しいのは事実ですし、みんな納期がある中で、わざわざテストを書いてる時間なんてないよとなるのは自然です。
でも中長期的には、テストがあったほうが生産性は高くなりますし、より良い設計ができます。これは僕自身が10年以上エンジニアとしてプロダクトを作ってきたことや、(フリーランス時代の)他プロジェクトで効果を実感してきたことなので、確信を持ってSPEEDAでも進めています。

林さんがCTOになった理由
僕個人の目標は「最高の開発チームをつくる」なんです。エンジニアだけじゃなくて、ビジネスサイドも含めての開発チームです。
それを実現するために起業も選択肢に考えていましたが、稲垣さん(稲垣 裕介/SPEEDA CTO)と話しているときに、「自分も同じ思いだし、SPEEDAの開発でそれを林さんにぜひ実現してほしい」という話があって、ユーザベースに入社することが僕の目標実現にも近づくなと思って入社を決めました。
あと、そもそも社員になる前に3年以上フリーランスとしてユーザベースに関わっていたので、ここだったら確かにやれるなと思ったのが大きかったですね。
45点ぐらいかな。これはチーム合宿でもみんなに伝えています。
明確に「コレが足りない」という部分はなくなってきていると思います。
あとは自分で考えて動く自己組織化の部分だったり、エンジニアとしての技術力だったり、そういう数ある要素の練度を上げていくことが必要なのかなと思っています。
そのためにも、可能な限り新しい技術にチャレンジできるようにしています。言語やフレームワークなどについても、チームのみんなで最適なものを決める。技術というのは、流行ってからやるのでは遅いというのが僕の持論です。流行っているという状況は、すでに自分たちより優れたエンジニアや組織があるということなので。
可能な限り早く、新しい技術を取り入れる。それが「技術力で、ビジネスをリードする」ことにつながるはずです。最先端の開発手法を学びたい人にとって、最高の環境を用意していきたいと思います。
個人的にはあと2〜3年ぐらいで、SPEEDAのプロダクトチームを世界レベルにできると思っています。ただ、おそらくそれでも100点中の70点ぐらいだと思うので、「最高の開発チーム」という目標は果てしないですね(笑)。