Progateのプロダクトと、「いろんなアイデアを、爆速で形に、しつづける」開発組織
こんにちは! 株式会社 Progate の CTO をしている島津です。
この度、僕がCTOとして働き始めて少し経ち、新たに入ってきた方たちも多くいる中で、複数のチームメイトから「テックブログやりたいですね!」という声が上がってきたこともあり、装いを新たに、Zenn で新たにテックブログを開始することにしました。
最初の記事として、本記事では Progate の提供するサービスの紹介をしつつ、僕が今 CTO として掲げている、「いろんなアイデアを、爆速で形に、しつづける」というスローガンについて少し紹介しようと思います。
Progate について知らない方にはもちろん、すでに知っている方にも「今はこんなことをやっているのか!」という気づきになればいいな、なんて思っています。
「いろんなアイデアを、爆速で形に、しつづける」というスローガン
僕は2021年4月に入社し、2年ほど経った2023年4月から約1年半ほど、 CTO という役割で仕事をしています。
CTO に就任するとなったときに「自分がこの組織に CTO というポジションで就くことで、どういう変化をもたらしたいか?」というのを考えようと思って作ったのが、タイトルにある「いろんなアイデアを、爆速で形に、しつづける」というスローガンです。
この記事では、サービスの紹介をしつつ、せっかく最初のテックブログなので、組織の観点で「いろんなアイデアを、爆速で形に、しつづける」をどう実現しようとしているのかを少し紹介してみようと思います。
実は Progate は複数プロダクトを開発しています
まず、この1年半での一番のポイントは、提供するサービスがかなり幅広くなったことかな、と思います。
現在弊社が提供している学習サービスやプランには、実は以下のようなものがあります。
ローンチしてから日が経つものも、最近少しずつメンテナンスができる体制が整ってきたように感じています。
- Progate : 初心者でも挫折しない学習サービス
- Progate Professional : 実務に直結する学び
- Progate モバイルアプリ : スキマ時間でも学習を進められる学習体験
- Progate Path : ローカルで実践的な開発体験
- mosya や mosya React、mosya TC : 模写をしながらブラウザで学ぶ、実践的・網羅的な学習
「Progate?昔触ったことあるよ!」という方も、ぜひ触ってみて変化を感じてもらえると嬉しいなと思っています!
また、新たに2024年から、人材プラットフォーム領域にも踏み出しました。
この領域は力を入れ始めてまだ間もないですが、大変ありがたいことに「自分で進んで学習する方と繋がれる」という点で多くの方に興味を持っていただいており、手応えを感じています。
技術的な観点での特徴
Progateは、ユーザーさんがブラウザ上でコードを書き、その場で実行結果を得る学習体験を長年提供してきました。
従来より Docker を活用した実行環境を提供していましたが、近年はさらに一歩踏み込み、WebAssembly(WASM)の活用によるフロントエンドでのコード実行環境にも挑戦しています。WASMを用いることで、ユーザーさんの端末上で高速かつ安全にコードを実行でき、かつインフラ構築なく新しい演習を提供できたりすることから、これまで以上にスムーズな学習体験を低コストでスピード感をもって提供できるようになります。現在は Node.js なども WASM ベースの環境で動作するように開発を進めています。
また、前述のとおり Progate では複数のサービスが展開されていますが、これは DB が完全に分かれており、演習データの形式も異なる状況です。一方でユーザーさんの体験を考えると、やはり複数のサービスにまたがっているよりは、ひとつの学習サービスとして展開されているほうがよいだろうと考えています。できるだけ早くユーザーさんに必要な学びを自由に選択し、かつシームレスに仕事につなげていけるような体験を届けられるよう、ロードマップを計画しています。
さらに、中長期的な視点では、LLM などの生成系AIの活用が大きなトレンドとなっています。直近でリリースされた O1 Pro Mode のような技術をキャッチアップしながら、ただ社内だけでの知識共有や開発プロセスの効率化だけでなく、教材やユーザー体験そのものへのLLM統合を検討し始めています。
まず第一弾として、 Progate Path のフィードバックを返す機能を合宿で開発し、爆速リリースすることができました!
これらをはじめ、様々な方面で面白いプロジェクトが進み始めています。
創業から10年を超え、過去の経緯を辿らなければいけないケースも多々ありますが、それを楽しみながら解消していけるチームメイトと一緒に課題を一つずつ解消していけるのはありがたいな、と感じています。
OKR による目標設計と、アイデアだけで終わらせない仕組み
多くの場合、「こういうことがやれたらいいな〜」を形にするのには何段階かのハードルがあるかなと思います。たとえば、「ここはこっちを優先してやろう」という判断を各自が自由に行える環境を整えないと、「◯◯さんに承認をもらおう」「みんながOKしてくれるまでまとうか」みたいな状況になって、ユーザーさんへの価値提供が遅くなってしまいます。
こういった状況に陥らず、メンバー一人ひとりがアイディアをたくさん出し、それをプロダクトとして爆速でリリースしていくためには、会社・組織としては何を進めていきたいのか?というところを一人一人が自分の言葉で説明できるくらいに理解し、それを踏まえて各自が意思決定をして実装を進められる環境を作る必要があると考えています。
これを実現するために、Progate では、OKR というツールを使いながら、今向いている方向性を定量的に示せそうと試みています。
Objective で達成したいビジョンを明文化し、 KR が達成できたら Objective が達成できたと言えるような KR を模索することで、日々の振り返りの中で「OKRが良くなるかな?」と考えるだけで全体として進みたい方向とのズレを認識することができるようになります。
また、もちろん OKR を達成することでビジョンを満たすことも大事ですが、それだけではなく事業としても前に進むことができるような目標を立てることで、より強く「組織として何を進めたいのか?」を表現できると考えています。そんなことを踏まえながら Objective や Key Result を設定することは大変難しく、かつ重要な課題として捉え、しっかりと時間をかけています。
目標を立てるのは大変難しいですが、一度良い目標を立てることができればそれに向かって各チームがしっかりと目標に集中して前に進めることができるようになる、というメリットもしっかり実感しています。例えば、CSSをスキマ時間にサクッと学べるモバイルアプリのゲームは、「より気軽に頻度高く学習してもらいたい!」という目標を追っている中で、チームで自由に企画から実装まで自走して進められました。このような事例からも、実際に意思決定がうまく移譲できているなと感じました。
僕たちはまだまだ人数が少ない組織ですが、早くから「いろんなアイデアを、爆速で形に、しつづける」ための仕組みを作り、楽しく開発ができる環境を整えていくことは、今後規模が大きくなっていくのに備え、とても大事なことだと考えています。今後も、目標設計の仕組みの整備や習熟などを含め、様々な観点で継続して改善していくつもりです。
さいごに
これからもProgateは、ユーザーさんの体験を大事にしながら、プロダクトを進化させ続けていこうと思っています。このテックブログでも、技術の観点から、「いろんなアイデアを、爆速で形に、しつづける」雰囲気を感じ取ってもらえたらなと思っています!
Discussion