こんにちは、CTOの id:motemenです。
Hatena Developer Blogの新たな連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。
連載第1回では、id:onishiが シリコンバレーのスタートアップ企業Launchableでアプリケーションエンジニアをしている id:ninjinkun(敬称略)こと、浅野慧さんにご協力いただきました。
第2回である今回は、CTOのid:motemenが担当します。
ゲストは、建築・建設業界のDXを推進、シェアNo1※の建設プロジェクト管理サービスを提供している株式会社アンドパッドでシニアソフトウェアエンジニアを務める id:shiba_yu36さんこと、柴崎優季さんです。
※ 「クラウド型施工管理サービスの市場動向とベンダーシェア」(デロイト トーマツ ミック経済研究所調べ)
2010年にはてなにアルバイトとして参加、2012年に社員として入社、2021年までシステム開発からチーム改善まで様々な側面で活躍いただきました。id:motemenとも、CTOとチーフエンジニアとして、エンジニアの育成や評価など、エンジニア全体の組織開発に取り組んできました。
id:shiba_yu36さんがはてなを卒業してから、まだゆっくりお話しする機会がなかったので、今回の連載の機会に声をかけさせていただきました。アンドパッドさんでどんなことをしているのかや、組織・チーム、開発の様子などについて、いろんなお話を伺いました。
柴崎優季さん(id:shiba_yu36) / 株式会社アンドパッド シニアソフトウェアエンジニア
2010 年はてなでアルバイト開始 / 2012年はてな入社 /2021年9月まで はてな在籍
- ブログ:$shibayu36->blog;
- Twitter:@shibayu36
アンドパッド入社後の3か月
id:motemen(以下「」) お久しぶりです!今日はよろしくお願いします。
id:shiba_yu36(以下「」) よろしくお願いします!
お互い関西在住ですし、せっかくなのでオンラインじゃなく対面でお話しましょうということになりましたが、本来僕がお伺いするべきところ、ご来社いただいてしまってすみません。「訪問」企画なのに...
いえいえ。移転した京都オフィスに行ってみたいと僕からお願いしたので、全然大丈夫です!前のビルとはずいぶん雰囲気が変わりましたね。
今日はいつもよりちょっと来社している人数が多めなのでオフィスがにぎやかですね。あとでみんなとも会話しましょう!
では、お話を伺っていきますね。
まずは所属しているチームや担当しているプロジェクトについて聞かせてください。はてなを卒業して、アンドパッドさんに入社したのが2021年の10月でしたね。
株式会社アンドパッドの提供する「ANDPAD」について
- 「ANDPAD」は現場の効率化から経営改善まで一元管理できるシェアNo.1※クラウド型建設プロジェクト管理サービスです。2016年に提供を開始し、直感的で使いやすさにこだわった開発と導入・活用への徹底したサポートで、利用社数15.6万社を超えています。国土交通省のNETIS (新技術情報提供システム) にも登録されており、41.3万人以上の建設・建築関係者が利用しているクラウド型建設プロジェクト管理サービスとなっております。2021年11月に「ANDPADアプリマーケット」を公開、連携パートナーとともに建設業界全体でのDX化に取り組んでいます。
はい。いま1年と少し経過したところです。アンドパッドに入った時は、僕の場合は当初所属するチームが決まっておらず、全社の情報を見たり色んなチームと話したりするところから始まりました。課題を探すことからはじめることになり、「マジか!」と思いながら過ごしていました(笑)。
そういう感じでした。入社して最初の2週間はチームに所属せず、まずは会社がいま戦略的に何をやろうとしているのか、組織的にどういう状況なのか、会社の戦略を進めていったら組織にどういう問題が起きそうか、そんなことを考えながらいくつかのチームと話をして、最近困ってることについて聞いたりして過ごしていました。
いろんなことをインプットした結果、認証のリアーキテクチャが自分にとって難易度が高くて、かつ、面白そうなタスクだと思ったので、アカウント基盤チームに所属することにしました。
そうですね。好きなチームに配属してもいいし、しなくてもいいと言ってもらっていました。僕の場合はチームに配属しながらボトムアップで改善する方が得意なので、チームに配属するほうがいいかなと。
アカウント基盤チームは、id:shiba_yu36さんの興味や得意な部分にマッチしていそうだと思いました。それからテックリードのロールになったということですけど、それもあとから決まったんですか?
はい。認証のリアーテクチャをやることにはなったものの、それをどう進めていくかまでは決まってなかったんです。既存の認証の基盤もあって、そのバグフィックスとか機能要望がいろいろなところから飛んでくるような状態から始まったんで、まずは整理しようと。そのなかで目的だったりを整理して認識を合わせたり、マイルストーンを設定してどう進めていくかを決めたりなど、プロジェクトマネジメントっぽい動きをしつつ、3か月間くらい体制の整理をしていって。そこで「テックリードみたいなロールがつくほうがいろいろ情報も入ってきやすいし、進めやすいな」と思ったので、自分から「テックリードのロールを付けちゃってください」ってお願いしたんです。
ボトムアップが得意なid:shiba_yu36さんのスタイルにすごく合っている感じがします。はてな時代も、状態を上手に整理して、みんなの意識を統一してまとめるみたいなことで活躍していた印象です。
そうですね。「カクヨム」の開発や「魔法のiらんど」のリニューアルプロジェクトなどで経験した目的整理スキルが完全に活かされてる感じはします。以前に「プロジェクト初期にやっておきたいこと」みたいなブログを書いたんですけど、その通りに淡々とやる感じでした(笑)。
まさにプロジェクトの整理と並行してやっていた感じです。ツール導入とかも入社して最初のほうに提案しましたね。リモートで使えるホワイトボードツールがJambordしかなかったので、ブレストや議論の整理がしやすいようにMiroの導入を提案したり。ほかにも、エンゲージメントサーベイのWevoxの導入だったり、CIの速度改善活動とかもしていました。
そういう積極的な提案を、新しく入ってくれた方がしてくれるのはいいですよね。
さっきのプロジェクトの整理の話でも思ったんですが、id:shiba_yu36さんは仕事をやっていくうえで得た知見や、「こういう型を作るといいよ」というナレッジをその都度ブログや社内向けのドキュメントに書き残していますけど、それらがちゃんと実践で使えるのがすごいですよね。型を作るスキルが高い。
そういう型づくりみたいなものは、大学時代からいろいろ経験してきたので。
アンドパッドさんのポッドキャストでもその話に触れてましたよね。
ANDPAD TECH TALK 第10回 - 開発チームの生産性向上に取り組むスペシャリスト対談!前編 開発チームの生産性の可視化に興味を持った理由 - ANDPAD Tech Blog
ぜひもう少し教えてもらってもいいですか。
仕事の型を作る考え方は学生時代から
大学時代に入っていた寮は、自分たちで管理する自治寮スタイルだったんです。自分たちの生活は自分たちで回さないといけない。最初はその中で、こういうことをやってみたい、ああいうことをやってみたい、というアイディアを提案して、自分が動いて達成するやり方をしていたんです。
でも、いろいろやっていたら、誰もついてこなくなっていた。寮というのは、何もしなくても住めますからね。そういうモチベーションが一切ない状態でも回る仕組みを考えないとうまくいかないことに気がついたんです。
意見を出しやすくするには、まず暗黙的にあるルールについて明確にする必要がありました。そこで、寮の仕組みに対しての提案ができるルールを作ったり、提案をまとめていく業務をやってみたり。
新しく情報部的な部会を作ったときも、情報コンテンツを整理していくチーム、ホームページ公開の基盤を作るなどソフトウェア面を担当するチーム、ハードウェア管理的なネットワークをちゃんと整えるチームというように、3つくらいのセクションに分けて、それぞれに自分以外のリーダーを決めていった。そうしたら、ちゃんと進むようになったんですよね。そのときの経験が、社会人になってからも活かせていると思います。
やっぱり構造を作っていくのが上手いし、こだわりを持ってちゃんとやり切れるのがすごい。はてなにアルバイトで入ったときも、そういう業務をやりたいって言っていたんじゃなかったでしたっけ?
そうですね。はてなのエンジニアの皆さんは優秀で面白いけど、今後もっと人が増えてきたときに組織をまとめていくのが好きそうな人がいなさそうだなと思ったんです(笑)。しばらくしたら、自分の出番が来るんじゃないかと思っていました。
そこまで考えていたのがすごい。長期的に先のことまで考えていろいろやっているようだけど、アンドパッドさんでアカウント基盤チームのテックリードになってからは、マイルストーンを決めるために情報収集したり、自分で学んだりすることも多かったですよね。どういうふうにやっていったんですか。
入社後2週間の配属なしだった期間にやらせてもらった、戦略のインプットや深堀りがすごく効きましたね。アンドパッドの戦略を見ていると、今後いろいろなサービスを立ち上げていこうとしているのがわかってくる。
例えば、新しいサービスを立ち上げるときに、ログインシステムが古いままでは、エンジニアは認証のところばかり作らなければいけなくなる。本来はその新しいサービスで提供したい価値に集中したいはずなのに、それができなくなりそうだというふうに考えるんですね。
マイルストーン設定は「開発しやすい順」ではなく、会社や事業の方向性に合わせて「なぜやりたいか順」で決めることが大事。例えばデータ移行はユーザーが新しい基盤を使い始めてからやるとすごく大変になるのでエンジニア的には置き換えと同時にやりたい。一方でそのようにすると新しい基盤のメリットを他チームが受け取るのが遅くなり過ぎてしまう。そのため、まず認証のインターフェースを先に作ることを優先した方が会社的にはいいんじゃないかといった感じで、流れをイメージしながら進めていました。
アンドパッドの開発組織について
アンドパッドさんは開発組織の規模も、はてなとはかなり違うと思うんですが、その辺りはどうですか。
一番の違いは、ひとつの「ANDPAD」というサービスを大人数で開発しているところですね。複数のチームが開発するサブシステムを組み合わせて、「ANDPAD」という巨大なプロダクトを作り上げている。
はてなで担当したことのあるMackerelだと、当時開発・運営しているのは10~20人ぐらいの人数規模でしたよね。小規模での開発しか経験していなかったので、同じプロダクトを複数チームで開発するのはまだ慣れていないし、わからないことも多いです。
僕もそれは経験したことがないんですよね。アンドパッドさんの採用情報を見ると、かなり細かく職種が分かれていますね。はてなは2種類か3種類くらいだから、その点も全然違うかな。id:shiba_yu36さんはどういう職種で入ったんですか?
当時は定義されてなかったんですが、今の職種で言うところのシニアソフトウェアエンジニアですかね。
チームも細かく分かれているイメージだけど、職種間の繋がり、エンジニア同士のコミュニケーションはどんな感じでやってますか?
はてなでは、技術グループでの技術勉強会とかでエンジニア同士の知見交換や交流機会はたくさんありましたけど、別のサービスを開発するチームと一緒に仕事をする機会ってあんまりないですよね。
でもアンドパッドでは、他のチームとコミュニケーションしないと、自分たちがやろうとしていることが実現できない。どういう経緯で作られたのかなどもわからなかったりするので、ヒアリングからはじめたりする。そこで他のエンジニアたちとコミュニケーションすることは多いですね。同じ目的のために仕事してる感覚はすごくあります。
それはいいですね。採用も活発で、人数が増えるスピードもはてなより速いんだと思っています。受け入れ体制はどうでしたか?
オンボーディングが想像以上にきっちりしていました。入社後は、エンジニアに限らず全職種のメンバーが建築・建設業界やSaaSのビジネスについて学びます。アンドパッドの製品をひたすら触りまくってどんな機能があるかを確認したり、セールスの方とチームを作って、仮想のお客様に「ANDPAD」を提案するプレゼンをしたりする、みたいなこともオンボーディング中にやりました。
僕が入社したのが、エンジニアとしてある程度の人数が入ったタイミングだったので、みんなで作り上げていこうという雰囲気がありましたね。落ち着いて一歩一歩整えていけた。バタバタせずにチームビルディングを進められました。
人が増える速度と流入量に合わせたボーディングがしっかりしているんですね。
あとは会議の調整や稟議の申請といった事務的な作業は、秘書の方に頼むことができるので分散できています。執行役員やマネージャーだけでなく、僕たちも事務作業をひたすらやらなくてすむのは大きいかもしれません。
全体像が把握できるという強み
はてな時代の経験で、これやっておいてよかった、と思うことってどんなことがありますか?
はてなでいろいろなチームを経験しましたが、使っている技術もどんどん変わっていきましたよね。全社ではPerlを使うところから始まり、Mackerelチームに入ってからはScalaやGoなど。魔法のiらんどではフロント寄りのNext.jsだったり、AWS Step Functionsやデータ移行をやったり。
おかげでフロントからインフラ、バックエンドまで、なんとなく全体像が把握できるようになりました。バックエンドだけやっていると、バックエンドだけで頑張って解決しようとするけど、全体が見えてくると、「フロントのコードをちょっと変えるだけでバックエンドは複雑にしなくてもいいよね」みたいな話ができたりする。そういうことを考えられるようになったと思いますね。
アンドパッドさんはRuby on Railsを使っていますよね。キャッチアップはどのようにやっていきましたか?
Railsのレポジトリを触っていますが、いわゆるRails的な開発は全くしていないですね。認証リアーキテクチャは特殊すぎて、Active Recordも全然わからないまま突き進んでいたかんじです。それよりは認証のライブラリの中身を追いかけることが多かったです。
最近のRubyは、debug.gemがすごく便利なので、デバッガの内部コードに入り込んで、動いていそうなコードを探したり。あとはインターフェースを変えずに認証を置き換えられるようにメタプログラミングで メソッドを差し込んだりみたいなことをしていました。そのために、Rubyをキャッチアップした形ですね。
テックリードというロールなので、技術よりのマネジメントみたいなこともされることもあるんですよね?
そうですね。チーム内のリーダーシップをとったりもしているので、これまでのリーダーシップの経験だったり、メンタリングの経験だったりという面は、確実に活きてます。
今、チームメンバーと毎月1on1しているのですが、振り返りの会では出てなかったけど、実は困ったことがないか聞いたりしています。テックリードはタスクの割り振りなども考えるので、そのために、最近やりたいことは何かを聞いたりもします。
それはシニアエンジニア、チーフエンジニアでやってきたメンタリングの経験をそのまま使っている感じです。マネジメントだけに主体を置いているわけではないのですが、マネジメント経験が活かされる場面は多いですね。
今は社内的にテックリードの定義が少し変わったこともあり、シニアソフトウェアエンジニアというロールになったんですけど、役割としてはテックリードのときと似ています。
いまのはてなはどう見える?
id:shiba_yu36さんは僕と同じく新卒ではてなに入社だったわけですが、離れて初めて見えた、はてなの特徴とかいいところ・改善すべきこととかについて教えてほしいです。
いいところで言うと、はてなから離れてみて気づくことは、 やっぱりエンジニアが優秀だと思います。それはよく言われてることだとも思うんですが、実際はエンジニア以外のデザイナーやディレクター、企画、営業の人もみんな優秀で高い専門性を持っていますよね。現場がいろいろなスキルや情報を駆使していいものを作っていく感じは、はてなならではだったのかなと感じます。 特に新卒入社でそういう専門性の高い人たちに囲まれ、このままではいけないという焦りから技術の勉強をしまくるきっかけになったのも良かったなと思います。
あと、はてなでは、テキストにいろんなことを書き残すという文化が定着してるじゃないですか。さっきの「現場力が高い」という特徴に繋がるんですけど、現場でエンジニアとかデザイナーが、そもそも何をしたいのか、という情報にアクセスできないと、何のために技術選択をするのか良い精査ができない。はてなはテキストで残っている情報が多いから、何かわからないことがあれば、人に聞かなくても、調べたら出てくる。それでも出てこなかったら誰かに聞けばいいという感じだったのがすごく楽だったし、良い文化でしたね。
テキスト文化はしっかり根付いてますよね。いいことを言っていただいて嬉しいですが、逆にこうした方がいいとか、こういうところはよくなかったな、みたいなのもぜひ伺いたいです。言いづらいかもしれませんが(笑)。
期待感みたいなところで言うと、「もっとアウトプットすればいいのに」って思います。アウトプットを頑張っているとは思うんですが、もっと小さなこともどんどん発信してほしいなって。社内の平均レベルが高いからか、みんなハードルを高く設定しすぎていて、このくらいのことは当たり前だからアウトプットしなくてもいいか、という変な思い込みがあるような気がするんですよ。
今のはてなではどのような考えで技術選定をやっているのか知りたいし、今でも社内Scrapboxとかすごく読みたい(笑)。筋の良い意思決定や技術選定の事例がたくさんあるので、もっと発信やアピールをしてもらえると嬉しいなって思います。
ありがとうございます。参考になる... もっとがんばります!結局いいことばかり言ってもらってしまった感じがするんですが、ほかにもないですか?(笑)
はてなの悪いところというか、アンドパッドのいいところは、大胆な意思決定ができるところだなと思ってるんです。それはアンドパッドに入ってからずっと感じているところです。はてなは現場力が高いですが、大きな方針の決定や思い切った変更みたいなことを現場からボトムアップでやっていくには時間がかかっていた印象です。そういうところが変われば、ますますはてなは良くなっていくんじゃないかなと思っています。
いやー、ほんとそうですね。リアルな意見を聞けて嬉しいです。ありがとうございます。やっていきます!
はてなを卒業して以降も特に(はてな開発のマンガビューワ「GigaViewer」が搭載された)マンガ系サービスなどユーザーとしてお世話になってます。はてなのクリエイターを応援するようなサービスが大好きなので、今後も応援しています!
id:shiba_yu36こと柴崎さん、ご協力ありがとうございました!次回の「はてな卒業生訪問企画」は2023年4月更新予定、担当はid:onkです。
id:motemen
大坪 弘尚(おおつぼ・ひろなお)
CTO(最高技術責任者)兼 サービスプラットフォーム部 部長
2008年、東京大学大学院情報理工学系研究科を中退後、アプリケーションエンジニアとして新卒入社。うごメモはてな、Mackerelなどのサービス開発に携わり、2012年より技術グループ チーフエンジニア、2016年に最高技術責任者に就任。
Twitter: @motemen
GitHub: motemen
blog: 詩と創作・思索のひろば