「チーム開発」の現在地と見えてきたその先〜CTOが振り返る2022年上期〜
any株式会社の取締役CTOの波多野(@hatamasa1988)です。
any株式会社はQastというナレッジ経営クラウドを開発・運用している会社です。
前回のnoteを書いたのは年始だったのでだいぶ時間が空いてしまいましたが開発組織の現状は?何をしてきたのか?解決したものは?してないものは?などを半期振り返りとともにつらつらと。
長文になりそうですがお付き合いくださいませ。
シリーズAの資金調達を実施
米の金融引き締めがあり、市況が難関な中に粘り強く動いた代表、今回のラウンドから共に進むことを選んでくださった投資家の皆さん。
そしてもちろんなくてはならない成長を生み出してくれたanyチームのみんなで勝ち取ったシリーズAです。
時同じくして採用ページもオープンしました!
興味ある方はどうぞ!
二度目のオフィス移転!!
資金調達を機に手狭になったオフィスをWeWork KANDA SQUAREに移しました!
「会話が生まれるオフィス」をコンセプトにしてTeamship Designチームがゼロから考えてくれました!
綺麗なオフィスだと仕事が捗る。共有ラウンジは平日16-20時でヒューガルデンとプレモルが飲み放題。社員の交流も自然に生まれるオフィスとなっており非常に満足度が高いです!
このオフィスを一年後にはいっぱいにできるように事業成長させます!
入社して2年半経ちました
これは私事なのですが、2020年4月に入社して早いこと2年半経過しようとしています。
気づけば新卒の会社の次に長く勤めている会社にできているのは非常に喜ばしいです。
1月の方針変更「チーム開発」の現状
年始のnoteで書いたようにany開発チームでは戦略を変更し「チーム開発」と打ち出しました。
元々メンバーからも上がっていた課題を打ち取る形でトップダウンで強く打ち出した戦略でもあり、かなり浸透してきていると感じています。
いろいろ施策を行っており、良い案はどんどん取り入れたいと思っています!
下記で行っている施策を紹介します。
slackこましり質問チャンネル
設計をチームで叩いて強くする施策として機能していて、アーキテクチャや大々的な設計が必要な場合はここでの壁打ち(レビュー)を必須にしています。
チャンネル名は「こましり質問チャンネル」!
その名の通り、困ったこと、知りたいことや質問をするチャンネルです。
初めは壁打ちチャンネルとして命名していたのですが質問のハードルの高さを感じるメンバーもいたため命名を見直しました。
質問のハードルをよりライトにすることによって知見の共有が当たり前かのように進む部分がコツかと感じます。
業務委託も含めた相互レビュー
今まで自然とプロパーのみで行っていたPRレビューを、業務委託を含むコアメンバー全員で回すことにしました。
anyの特徴であるyes and…のコミュニケーションでレビュー内でも盛んにディスカッションが行われ、社内外の知見を活用してチーム全体がレベルアップしたのを感じました。
業務委託含めて一つのチームを構築できたことは大きな進歩であったと感じています。
相互レビュー会
新規開発が相次いだことで俗人的なレビューがますます出てきました。
マンツーでレビューを行うことでレビュー観点や設計技術などを共有するのが目的。
現在火、金の出社日で行っています。
メンバーの間でかなり好評でレビューの視点や設計への理解が深まったとの声が上がっています。
メンバー主体で生まれた会です!
メンバーがチームをよくするための目線で考えてくれていることも増え非常に喜ばしいです!
自由開発day
隔週1日をまるまる使ってissue消化であったり、自己啓発になるタスクであったりを自由に開発していい日を設けました。
当事者意識を持って技術負債と向き合う文化の構築を目的として、プロパー全員が関わることにしています。
隔週で設定した日にイベントが入ることが多かったり、期限がシビアなタスクが相次いでいたことで運用まちまちでしたが、運用担当者を変更して再度チャレンジ中です。
LT会
こちらもメンバー主体で発足したイベントです!
隔週でメンバー持ち回りで技術共有を行うべくして企画されました。
初回はKaribashの「TypeScriptでOOP FizzBuzz」(zennに公開してくれているものを引用)
どこかで他の内容についても公開できたら面白いかと勝手に思っています。
1on3
元々は開発進捗定例であったものを人数が増えたことで意味のあるものにしたく変更してトライしました。
テーマと、業務委託を含めた全メンバーから3人をCTOが選出して、テーマについて個人の考えを発表し相互に意見を言い合う会になってます。
相互理解をベースとした、質の高いコミュニケーションとチームワークを創出することを目的とし、結論を出すのではなくディスカッションに重きを置いています。
そのため、人数もCTO(司会)を入れた4人とし心理的安全を最大化しています。
テーマは「開発チームの一番の課題とは?」のように抽象度が高く答えがないものとすることでお互いの意見交換を促進させています。
現在は社を挙げた一大PJがあるため劣後させていますが、数回実施したところ「思いをカジュアルに伝えられる機会が少ないから有意義」「リアルな議題に対して議論する場で非常に有意義」などポジティブな意見が多く、早速色々な気づきがあったので10月からまた再開しようと思っています。
4月のチーム拡大
3月には副業で手伝っていたエンジニアが正式join
4月にはインターンから手伝ってくれていたエンジニアが正式joinと立て続けにメンバーが増え、チームは一気に5人に増えました。(業務委託含めて9人)
1年以上振りの新規プロパーということで社内は活気付きました。
特にジュニアなメンバーが入社したことで既存メンバーの助け合いの精神が強まったこと、複数人で開発する楽しさなどがプラスに働き、一気にチームっぽくなったなーと感じたのがこのフェーズです。
人数が増えたことにより、上記のチーム開発を促進する施策もより意味を増し、目に見えて活性化していきました。
来季の目標
一大開発PJ
一気にチームらしくなったany開発組織ですが、現在そのメンバー主体で大きな開発PJを仕込んでいます。
開発工数は7人月以上、期間にすると4ヶ月を超えます。
現状は全社のtop issueに掲げているのでここに全力投球しています。
この開発は決断に勇気が必要でしたが今のanyのビジネス上やらざるを得ない開発でした。
今までの集大成のごとくチームメンバー一丸となってここまで進んできてようやく終わりが見えてきた頃です。
リリース後もうしばらくはステルスでいく想定ですが、そう遠くないうちに発信できると思うので楽しみにしていてください。
自立成長型の組織
また、CTOが目指すチームの次のフェーズとしては「自立成長型の組織」です。
「自立型の組織」としては現在も機能していてある程度の自分が不在でも進んでいく状態になってきているかなと思います。
そこに成長を組み入れて勝手に成長していく組織が次の目標です。
具体的に必要な要素は次に書く「技術の言語化」「採用」「教育」かと感じています。
技術の言語化
弊社システムには未だに0→1開発での負債が多くあります。
現在、開発を止めることなく新レポジトリへのリプレイスを進める手法をとっています。
新レポジトリではTypeScriptを初めとし、Next.jsやGraphQL, NestJSなどの技術を新しく導入しています。
それと同時にアプリケーションアーキテクチャや設計概念も新たなものを続々と採用しているため、そこへのメンバーのキャッチアップや理解度のばらつきが大きくなってしまっています。
これから各自の技術力に依存せずに開発できるようにガイドラインを整備したり、社内での勉強会をより強化し、個人の技術力に依存しない仕組みが必要になっている頃だと考えています。
「採用」と「教育」
「教育」は今のチーム開発をより強度を上げて回せばある程度担保できると感じますが、技術力が高いメンバーをアッパーとしてしまう可能性が高いです。
外部からの知見であったり、よりシニアなエンジニアを採用することで引き上げられるとベストと感じています。
そのためにも「採用」が必要になってきます。
CTO一人で行っているスカウト業務を採用にwillやモチベがあるメンバーを巻き込んで進められる仕組みを構築しました。
うまく回すまでが難しいと感じているので根気強く進めていきます・・・
また、外部への発信するコンテンツも不足しているのでコンテンツ作りを行う必要があるのですが、まずはエンジニア採用のコンセプト設計から始める計画をしています。
また、anyの採用はMVVにマッチする人材をしっかりと見極める厳選採用です。
メンバーもマネージャーももちろんanyの思想を十分に理解しチームに良い影響を与えられる人である必要があります。
採用の難易度はかなり高いですが、上記の教育をより高次元なものにするため、また下記の課題を解決してany開発組織を一歩前に進ませるためには欠かせないので、来季力を入れていきます!
フロントエンド開発環境の整備
フロントエンドのコンポーネントはfigmaで業務委託のデザイナーが設計してくれているものの、運用しきれていない部分があり、デザイナーと開発との連携でコストが掛かってしまっています。
また、大量に追加されるコンポーネントに対してstorybookのメンテナンスが溜まっていったり、ライブラリのメンテナンスや技術のキャッチアップなどを専任で担当するエンジニアがいなく手を焼いている部分です。
今後さらにフロントエンドにコンポーネントが追加されていくことや、組織拡大において真っ先に解決したい部分です。
DX/DevOps/SRE
アプリケーションアーキテクチャやインフラアーキテクチャに手が入るにつれて、ローカル環境が拡大し、他のメンバーが行った改修の取り込みがスムーズにいかないことも出てきています。
また、2年以上前に即興で自分が構築したCI/CDに乗らないモジュールが出てきたりしています。マイグレーションも日に日に時間がかかるようになりモジュールリリースとの整合性を取るのに一苦労になってきています。
テストも開発者主体の手動テストになっているので来季から少しづづ自動化してリリースにおける信頼性を上げるとともに、リリースにコストがかからない仕組みを構築していきたいと考えています。
まとめると怒る人がいるかもしれませんが一旦ひとまとめ。
マネジメント/ディレクションボトルネック
多数の開発PJを同時に走らせていることもあり、ディレクションはボトルネックになりやすい状態になってます。
代表が開発前の意思決定、自分が開発後の意思決定としてディレクションを行っているのですが、開発メンバーが増えれば当然できる開発の量も増えるので稼働が増します。
9人のメンバーから増えるとディレクションのボトルネックが拡大することは明らかなので、早期に権限移譲が必要になっています。
UIや仕様の意思決定など小さい意思決定は今でもメンバーに任せているのですがそれでも上がってくる課題は多いので、メンバーを増やすと同時にディレクションの手も必要になってくることは明らかです。
さいごに
シリーズAを超えたからといってまだまだ課題は尽きませんが、少しづつチームができてくる感じが味わえる面白いフェーズかと思います。
any開発チームは一緒に働くメンバーをまだまだ探しています。
自分でチームを作りたい方、このフェーズを一緒に味わいたい方、またいろいろな課題を解決したい我こそはという方!
少しでも気になればDMでも何でもいただければと思います!
採用ページもオープンしております!
それではまた!