commmune Developer Blog

commmune開発者ブログ

コミューンのCTOに就任してから1年半くらい経ちました

早いもので、2019年05月にコミューンにCTOとして参画してから1年半くらい経ちました。

私が言うのもあれですが最近勢いがついてきました。シリーズAの調達を終えてさらに加速が見込まれます。しかしそんな中でも代表の高田、橋本をはじめ社員は「勝って兜の緒を締めよ」状態です。
(高田)「やっとスタート地点に立っただけ。本当の戦いはこれからだ!」と主人公みたいな台詞を口にしていたりします。スタートアップの日々は戦場に近いのかもしれない、とすら感じます。

これだけだとまるで軍隊のような会社、と誤解されがちですが、裏では(ささやかですが)ちゃんと皆で調達の祝いをしました。会社が成長、存続できるのはスタッフの皆さんの活躍あってこそ。だから普段から経営陣は「本質的に」はたらきやすい環境づくりに励んでいます、本気で。

さて、いい機会なのでコミューンのCTOとして「今どんなことを考えて組織づくりをしているか」「どんなチームをつくりたいか」「一緒に働きたいエンジニア像」みたいな部分を筆の赴くまま書き残しておこうと思います。

コミューンの開発組織が目指す究極のゴール

「とにかく良いものをつくる、つくり続ける」

これに尽きます。commmuneはエンドユーザーが使って初めて価値が出るサービスです。
そしてユーザーにとってどれだけ使いやすいサービスになれるか。その鍵を握っているのが私たちエンジニアです。だからコミューンのエンジニアチームは最高のものづくりができる集団でありたいと考えています。

今はまだまだ道半ばです。バグを出してしまうことも多いし、やろうやろうと思いつつ先延ばしにしてしまっていることも多い。しかし牛歩かもしれませんが開発チームは歩み続けてます。

  • より安全に、大規模な開発をするために1年がかりでJavaScriptからTypeScriptにソースコードをまるまる移植したり(死ぬかと思った)
  • デグレーションを減らすためにPercyというビジュアルリグレッションテストを導入したり(便利です!)

ちなみにcommmuneはこの1年間で約700のアップデート(バグ修正、新規機能、改善など)がありました。その大半は小さな積み重ねではありますが、少しずつプロダクトを磨いています。

「CTOのポエム*1」には、こう書いています。

「すごい技術」に人は感動しない。「すごいプロダクト」に人は惹かれる


私は技術を貶めたり蔑ろにしたりするつもりはありません。むしろエンジニアとして技術の刃を日々磨くことは必須であり、称賛されるべきと思います。ここで言いたいのは「ユーザが体感し評価するのは技術そのものではなく、結晶としてのプロダクトである」ということです。

誤解を恐れずに言えば、技術は「縁の下の力持ち」であるべきです。質の高いプロダクト(その体験)を裏でガッシリ支える、献身的な存在であってほしいと思います。

「すごい技術」の典型例の1つは「VR(仮想現実)」かもしれません。
2016年辺りから「VR」という言葉がセンセーショナルに巷に広まりました。あのゴツい(?)見た目も相まって「今までにない没入感の高さを味わえる」と、その技術自体のすごさが喧伝され、プロダクト(体験)が洗練される前に世の中の期待が先走ってしまったように感じます。例えば「遂にゲームの世界に入り込むことができるようになった」「自宅にいながら宇宙旅行を体験できる」「引っ越しの内見はもはや必要なくなる」などなど人々は大いに夢を見ました。

しかしご覧の通り、今までのところ広く普及するには及びません。実際に体感した方の多くは「まあ、こんなもんかな」程度の感想を内心抱いたのではないでしょうか。何を隠そう私もその一人です。360度のディスプレイ、高い没入感、など技術自体の新奇性は素晴らしいでしょう。しかし、ユーザーはシビアです。「なんか心地よくないな」「なんか頭熱いし目も疲れるわ…」と少しでも感じたなら、2度目はありません。

この経験から、人々が望んでいるのは「すごいプロダクト」であり、決して「すごい技術」ではないのだな、と痛感したのです。commmuneにおいても同じ轍を踏まぬよう、心して取り組みたいです。


エンジニアチームの推薦図書

社員、業務委託、インターン生など立場に関係なく、入社後下記を一読します。私はチームの文化づくりをとても大切にしますが、残念ながら私の頭の中を口で語り尽くすことはできません。抜け漏れがあるし、なにより話がそんなにうまくないからね。

誰しも経験があると思いますが、自分の言いたいことを正確に誤解なく伝えるのは本当に難しい。

そんなときに役立つのが「本」です。自分の考えと近い書籍を使って代弁してもらったほうがよっぽどクオリティが高いです。

『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』

f:id:commmune:20200925091601j:plain:w200
誰しも一度は目にするはず

『Team GeekGoogleギークたちはいかにしてチームを作るのか』

f:id:commmune:20200925091732j:plain:w200
HRTは弊社の柱となる考え方です

これらの書籍のいいところは結論が「具体にも抽象にも寄りすぎていない」ことです。リーダブルコードは「他の人が最短時間で理解できるコードが良い!」といきなり難しい。でもこの言葉、絶妙にバランスがいいので世に広まっているのだと思います。Team GeekのHRTも同じですね。

なお「CTOのポエム」には、こう書いています。

鶏を割くに焉んぞ牛刀を用いん


簡単なことをやるのに必要以上の複雑さを持ち込むのは「害」です。これはある種、美学の話かもしれません。

この心得の真意は「余分なものを削ぎ落とした美」を追求することです。勘違いして頂きたくないのは「最低限動く実装でよい」「継接ぎのコーディングで良い」などという意味ではありません。名著リーダブルコードの原点「読み手が最短時間で理解できる」実装がやはり理想なのです。

良いチームは良い礼儀からはじまる


廊下ですれ違うときは「お疲れ様です」。朝顔を合わせたら「おはようございます」。帰宅する際は「お先に失礼します」。挨拶は基本、古事記にも書いてある。

冗談ではなく挨拶はチームの雰囲気を変えます。皆が挨拶できるチームは明朗で、誰も挨拶をしないチームは陰鬱です。小学校で習ったはずなのに大人になるとやらなくなってしまう。躊躇してしまう。だからこそ少し勇気を出して自分から発声しましょう。


コミューンはTypeScriptを使っています

ここで一応コミューンの技術スタック / 開発体制を記しておきます。


  1. 「自分たちでつくったほうが良いものが出来上がる」部分は内製で、逆に
  2. 「外部ライブラリやSaaSに頼ったほうが良いものが出来上がる」部分は外だし

ここでも究極のゴールである「より良いものが出来るかどうか」が判断基準になります。

組織づくりはたった1つのことしか意識しない

チームマネジメント、チームビルディング、などちょっと気取った言い回し、じつはあまり好きではありません。私は組織について考えるとき、たった1つのことだけを意識します。

「チーム全員が共通の目的/目標を理解しており、その実現に向けてひとりひとりが自ら協働し、貢献できている*2

やや難しいですがこの1文にすべてが詰まっています。お気付きの通り細かく見ると3つに区切れます。

  1. チーム全員が共通の目的/目標を理解しており、
  2. その実現に向けてひとりひとりが自ら協働し、
  3. 貢献できている

それぞれをもっと噛み砕くと、、、
1。コミューンのビジョンやバリューをわかりやすく、くり返し伝える。エンジニアであればCTOのポエムを暗記するほど読み込む。そして「良いものをつくる」という究極のゴールに向かえること。
2。チームプレイヤーであるということ。そして自律して行動できるということ。特に開発は一人で淡々と進めるものという誤解をされがちですが、実情は真逆です。コードレビュー、ソースコメント、ペアプログラミングなどなどあらゆるところでコミュニケーションが必要です。
3。実際に成果を出せることはもちろん大切ですが、それだけではなく「自分がチームに貢献できている」というある種の自己効力感もとても重要だと思います。人間は機械ではありません。モチベーションによって生産性が大きく上下します。だから自己効力感は大切で、そのほうが働いていて楽しいですしね。

わたしがなにか施策を考えたり、開発の「場」をデザインしたりする時はこの3点に対して矛盾がないかを必ず熟考します。直後で述べますが、採用方針にも影響を与えています。
どんなに純粋な技術力が高くても、チームプレイヤーになれない人は採用していません。あるいはコミューンで使っている技術(Next.jsやTypeScript)に興味があっても、コミューンのプロダクトや思想に共感いただけない人は採用していません。

そのくらい強烈な一貫性がなければ、それは「方針」ではなく、ただの「飾り」になってしまいます。これは文化も同じです。

採用はカルチャーフィット8割、スキルフィット2割

私が文化を大切にする、というのは既に書いたとおりです。そしてそれは本気の姿勢なのです。(社内でも100回くらい同じことを言ってます)
入社後はもちろんですが、入社前、つまり採用の時点からカルチャーフィットを重視しています。極端な話ですが入社時点では「Node.jsやったことありません」「React.js触ったことありません」という方でも採用は全然ありえます。わたしたちの文化、プロダクトに強く共感いただけて「いいものをつくりたい!」という情熱にあふれていることが何よりも大切だと思います。

今の規模はエンジニアが8名、全スタッフで20名前後です。

もっともっと拡大が見込まれます。良いチームをつくる、良い人を惹きつけるには私たちの考え方やカルチャーを外の世界に向けて発信することもとても大切じゃないか、と思うのです。そういうわけで開発や採用に関して今でも既に、他のスタートアップに比べて圧倒的に情報発信量が多い、はずです。その姿勢は今後も貫く所存であります。

さいごに、コミューンではエンジニア募集をしています。
詳しくはこちらの採用ページをご覧ください。
フロントエンドエンジニア
サーバーサイドエンジニア
SRE

*1:弊社採用サイトなどで全文が閲覧できます

*2:バーナードのアレに近いです