tuneの日記

アジャイル開発、組織変革、マネージメント、ファシリテーションについて学んだことの記録

AIコーディング時代のチーム開発について考えていること

「実装コストが高い」が崩れた後のアジャイル開発

最近、AIコーディングエージェントを前提とした開発プロセスや組織の形について、ぼんやり考えています。

CursorやClaudeCodeを使っていると、「実装する」こと自体のコストが目に見えて下がります。もちろんまだ万能ではなく、最終的には人間がレビューする必要もあります。それでも、開発の重心は確実に動き始めているように感じます。

とはいえ、自分の現場で十分に試したわけではないので、ここから書く話はかなり机上の空論寄りです。

実装速度はもうボトルネックではないのでは?

従来のアジャイル開発は、「実装コストが高い」という前提のうえに組み上げられていたのではないかと思います。だからこそ、タスクを細かく分解し、見積もり、スプリントに積み、優先順位を慎重に決めることに意味がありました。

しかしAIコーディングツールを使うと、小さな改善や試作は驚くほど速く形になります。そうなると、ボトルネックは実装ではなく「どの課題を解くか」に移っていくはずです。バックログマネジメントよりインサイトマネジメント、という言い方が個人的にしっくり来ています。

課題を大量に積んで管理することよりも、

  • ユーザー理解
  • 仮説
  • 検証から得た学び
  • 現場からのフィードバック

をチームで共有することの方が、ずっと価値を持つのでしょう。

イテレーションも、もっと短くなるでしょう。感覚としては、2〜3日のサイクルあたりが自然に思えてきます。 ただし、短くなるのは実装期間であって、人間が考える時間まで短くなるわけではありません。むしろ、ユーザーを観察し、課題を理解し、仮説を立てる部分にこそ時間をかけるべきです。 チームで課題を定め、実装は半日で終わらせ、すぐ次のフィードバックを得る。そんなリズムに近づいていくのではないかと思います。

チームはもっと小さくなる

個人的には、AI時代には小さいチームの方が取り組みやすいと感じています。

極端に言えば、

  • エンジニア2名
  • デザイナー1名
  • 企画1名

ぐらいでも、多くのプロダクトは十分に回せるはずです。実装そのものがボトルネックになりにくいからです。 逆に人数が増えれば、認識合わせ・調整・レビュー・意思決定のコストが一気に膨らみます。 オフショアのあり方も変わるでしょう。これまでは「人を増やして実装する」ことに大きな意味がありました。ですがAIにコードを書かせる前提に立つと、単純な人海戦術の価値は急速に下がっていきます。少人数でコンテキストを共有しながら進めるチームの方が、結果的に速くなりそうです。

ただし、完全な1人開発に振り切るのは避けたいところです。 AIを使えば「それっぽいもの」は簡単に作れてしまいます。だからこそ、本当に妥当な設計になっているか、認識がズレていないかを相互に確認できる人数は必要だと思います。とくにジュニア育成を考えると、完全な個人商店モデルでは続かないのではないでしょうか。

「分担」より「同席」へ

これまではフロント担当・バックエンド担当・アプリ担当・インフラ担当のように役割を分け、並列に進めるのが普通でした。 しかしAIによって一人が扱える範囲が広がると、「手分けする」こと自体の価値が下がっていきます。

そこで重要になるのは、

  • 少人数
  • 同席
  • 高頻度のコミュニケーション

の方ではないかと思います。

一つの課題をその場で議論し、その場でAIに実装させ、その場で確認する。 モブプロに近いですが、人間がコードを書くわけではないので、また少し違う形になりそうです。

AIコーディングの話ではレビューの負荷が問題にされることが多いです。 PRの差分を細かくレビューというより、「変更全体をどう把握し続けるか」を同席の元で素早く行っていく形になるのではないかと。

開発生産性の改善はより重要になる

AIを使い倒すほど、開発基盤の質がそのまま生産性に効いてきます。

具体的には、

  • lint
  • 自動テスト
  • CI/CD
  • サンドボックス環境

といった土台です。

設計のひずみを直したり、ライブラリやフレームワークを更新したりする作業は、むしろAIが得意とする領域だと思います。夜間にずっと動かして直してもらうという運用も十分ありえるでしょう。

そうなると重要なのは、「内部実装がどうなっているか」よりも、「外から見た挙動が壊れていないか」です。E2Eテストやオブザーバビリティの重要性は、これから一段上がるのではないかと思います。

リポジトリは「コード置き場」ではなくなる

リポジトリは「チーム知識の集積場所」として下記を含めていくことになるでしょう。

  • DBスキーマ
  • ドメイン知識
  • ユーザー理解
  • デザインルール
  • 開発規約

特にDBコメントや業務ルールの記述は、これまで以上に重要になります。 AIはコードからある程度推測できるとはいえ、「なぜ存在するのか」「どういう背景なのか」まで書かれていれば、出力の質は段違いに上がります。

モノレポの価値も上がるでしょう。AIコーディングツールは複数リポジトリを横断して読めますが、それでもコンテキストが一箇所にまとまっている方が扱いやすいと感じます。人間向けというより、「AIが理解しやすい構造」を意識する、と言った方が近いのかもしれません。

デザインシステムも同じです。AIに自由にUIを作らせるより、

  • コンポーネント
  • デザイントークン
  • UIルール

を整備し、そこに従わせる方が結果的に安定するはずです。これは人間向けというより、AI向けのガードレールに近いと思います。

チーム目標の切り方も変わる

開発速度が上がるほど、逆にチーム間の調整がボトルネックになっていきます。 ですので、他チームと干渉しすぎず、自律的に意思決定できる単位でチームを切っていく方向に寄っていくのではないでしょうか。 実装能力そのものよりも、「何を達成したいチームなのか」の方が重要になっていきます。

まだみんなが試行錯誤している段階です。数年後には全然違う形になっているかもしれませんが、自分でも実際に試しながら、考えを更新していきたいです。

参考) 似たような課題を扱った記事

アジャイルプラクティスガイドブックの台湾版が出版されます

2023年7月20日に出版した アジャイルプラクティスガイドブック チームで成果を出すための開発技術の実践知 の台湾版が出版されることになり、見本誌をいただきました。

堅めの印象を与える韓国語版と異なり、日本の書籍と同じデザインです。韓国語版・台湾版のオファーは日本語版の出版後、割とすぐにオファーをいただいていました。これで出版にまつわるイベントはひと段落となりそうです。

今でも不定期にXで感想を探していますが、参考になると言っていただけることも多く、書籍を書いてよかったなと都度感じております。執筆した当時は古びない内容を扱って書いたつもりでしたが、AIの浸透をはじめとするソフトウェア開発の変化はここ最近大きく、知見をまとめて残すタイミングとしては本当に良かったです。

初めてチームに参加して開発に取り組む人に、アジャイルなソフトウェア開発の取り組み方のヒントを探している人にとって、1冊で様々な内容を網羅した書籍となっています。ぜひこれからも多くのソフトウェアエンジニアの助けになることを願っています。


アジャイルプラクティスガイドブックの韓国語版が出版されます

2023年7月20日に出版した アジャイルプラクティスガイドブック チームで成果を出すための開発技術の実践知 の韓国語版が出版されることになり、見本誌をいただきました。

固めでしっかりとした紙質 & 堅めな印象を受けるかっこいい表紙に驚きましたが、マンガを交えて開発プロセスを紹介する中身は原著のままです。韓国の方にも広く読まれて、ソフトウェア開発の役に立って欲しいなと願っております。


プロダクトディスカバリーにかけるリソースは何に影響するのか

はじめに

「顧客やニーズを調査して何を作るかを考える」プロダクトディスカバリー作業はとても大事だと思うのですが、ここに時間や人手をかけるとどのような良い効果が期待できるのか、個人的にしっくりきていません。

1. プロダクトデリバリーで成功する確率が上がる 説

「時間をかけて調べたんだから、きっと成功するはずだ」というやつです。 でも時間をかけても100%成功する打ち手なんてわかるはずがないですし、冷静に考えればすぐに違うとわかるはずです。

時間をとって考えた方が成功確率がほんのわずかに上がることはあるのでしょうが、そこに時間をかけるよりも打ち手の数を増やした方が成功する確率は高められる気がします。

2. プロダクトデリバリーで得られる成果が大きくなる(数値がより伸びる) 説

成功率でないとすると「成功したときのリターンが大きくなるはず」と考えたいですが、これもしっくりきません。 そうあって欲しいと願うプロダクトマネージャーの祈りのように感じます。

思いつきでも大きな成果が出る打ち手はありますし、開発工数が大きくなれば成果もつれて大きくなるかというと必ずしもそうではないでしょう。私にはこうあって欲しいという願望以上の理屈が見出せません。

3. 1変更を加えた影響がプロダクトに長く関与する 説

成功率も成功したときのリターンも変わらないのであれば、「グロースハック」のような短期の打ち手をたくさん打てばよいとなりそうです。 しかし、これもプロダクトが場当たり対応ばかりになって中長期で伸びるイメージが湧きません。

中長期を睨み、大小様々な打ち手を組み合わせてプロダクトを改善し、成長する方向に導いていくのだとすると、ディスカバリーへの投資による効果は「打ち手の方向が揃うため、ある打ち手が他の打ち手やプロダクト全体に影響を及ぼしやすくなる」ではないかと考えています。グロースハックのような点の打ち手ではなく、複数の打ち手が相互に関係・影響しあい相乗的な効果が出しやすくなる。

ただし個別の打ち手の成功率や成功した時のリターンは工数とは対してリンクしないので、たくさんの打ち手を考えて筋が良さそうなものをどんどん実行していった方が良い・・・こうではないかと。

おわりに

プロダクトマネージャーの人はどう考えているのか気になります。ぜひ考えをお聞かせください。

リリース間隔が開いてようが、開発はアジャイルにやった方が良いのでは?

はじめに

Xで「toB SaaSはリリース期間を長く取る必要があるので、アジャイルでない開発プロセスでも良いのではないか? (意訳)」という内容の投稿を読み、自分の中では答えが出ている問いだったのでメモがわりの投稿です。

「リリース間隔は短ければ良い」とは限らないプロダクトは確かにある

プロダクトにもよるのでしょうが、「toB向けのプロダクトでは必ずしもリリース間隔が短いことが良いとは限らない」のは事実だと思います。

  • プロダクトの展開前に変更内容の周知や、サポート・セールスの教育・学習が必要
  • プロダクトの更新作業にコストがかかる。オンプレで運用されているとか
  • そもそもユーザーが頻繁なアップデートを望んでいない など

リリース日の決定を開発以外の部門に委ねるメリット

「開発の終了 = リリース」だとすると、リリース日に合わせて成果が最大化できるように開発スケジュールを組もうと考えますが、「開発の終了 != リリース」だとどうでしょう?

「この機能は開発が完了しました。いつリリースしてもらっても大丈夫です。セールス・マーケティング・サポートの都合に合わせて、一番良いリリース日を好きに選んでください」と言えると、いろんな選択肢が考えられます。マーケティングは大きなプロモーションを打とうとするでしょうし、サポートは問い合わせが多い事項の改善を早く出したいと考えるでしょう。リリースタイミングを短くできなくても、いつリリースするかがコントールできると、事業として取れる打ち手は広がります。

過去に聞いて良いと思ったtoBプロダクトのリリース管理のやり方

「オンプレ環境にインストールして利用するタイプのソフトウェア」でしたが、年に3回のリリースが予定されており、「いつリリースされるか」「リリースに何が含まれるか」は公開されていませんでした。問い合わせをするとおおまかなロードマップは共有してもらえ、「いつのリリースに含まれるかは確約できないが、開発チームはこの機能に取り組んでいる。これが搭載されればこんな課題が解決できる」という話は聞くことができました。確約ではないけどおおよその実現時期も知ることはできました。展示会に合わせた大きなプロモーションとともにリリースされることもあれば、しれっと新バージョンが出ているということもありました。内部では希望の期日に開発が間に合うことも間に合わないこともあったと思うのですが、リリース日を調整するなどして対応していたのではないかと思います。

まとめ

リリース間隔が開いていて短くすることが叶わなくても、開発はアジャイルに短いサイクルで確認しながら進めた方が良いし、開発の終了とリリースを同じにしなければならない理由はないはずです。リリースのコントロールステークホルダーに委ねることができると、事業上の選択肢を広く持つことができます。

FaST agileとは

はじめに

ログラスさんで取り組もうとしているFaST agileを下記の資料で知り、調べてみました。

FAST概要

"Fluid Scaling Technology (for Agile)"を標榜した、自己組織化を重視した軽量なフレームワークです。 日本語ガイドも公開されています。

FASTガイドより引用した概要図 (Per Beiningによる)

※ 以下「スクラムでいうXX」といった表現を避け、FASTガイドの文言をできるだけそのまま受け取ってみます

用語

コレクティブ

活動に必要な人全員を合わせてコレクティブにします。 コレクティブは自律的で、十分な権限を持ち、自己組織化していて、自己管理できる人達によるグループで、共通の目的のもとに集まり、プロダクトのディスカバリーとビジネスゴールの達成ができる能力を持ち合わせています。

ある目的のために集まった開発活動に必要な人全体を指して「コレクティブ」と呼びます。ある目的の粒度はフィーチャーやプロジェクトといった単位ではなく、プロダクトビジョンなど大きな粒度のような気がします。 コレクティブにはエンジニアだけでなくプロダクトマネージャーやデザイナーも含めるのでしょう。ステークホルダーも含めてコレクティブと呼ぶのかは分かりません。 コレクティブの参加者には「自己管理」が求められ、コレクティブは「自己組織化」してプロダクトのディスカバリーとビジネスゴールの達成のために「十分な権限」も持ちます。

ガイドには詳細の記載がありませんが、コレクティブに集まった面々は「セットアップ」と呼ばれる活動を行い、「目的・ミッション(ビッグピクチャー)」および「活動に対する理解と進捗」を可視化するワークショップを行うそうです。

バリューサイクル

以下の3ステップがバリューサイクルを構成します。3ステップを継続的に繰り返します。

1) 自己組織化する: ミーティングをファシリテートし、人々が自己組織化して活動を行うためのチームを形成できるようにします。

2) 活動する:各チームは、自身が集った活動アイテムのために計画し、協働します。

3) 同期する:短い周期でコレクティブはミーティングを開催し、学びを共有し進捗して、プロダクトの状態と現在の状況について共通の理解を得ます。

開発の区切りを「バリューサイクル」と呼びます。固定期間ではなく、ガイドでは「コレクティブが2日間のバリューサイクルを実施した後に3日間のバリューサイクルを実施することもあり得ます」と書かれています。 メンバーは自己組織化して何の活動をするか、どんな担当割(ガイドではチームと表記)で行うかを計画し、協働します。 バリューサイクルの終わりにはミーティング(FaSTミーティング)を開催し、活動の進捗や学びを共有し、プロダクトの状態・状況についての理解を揃えます。

ロール

メンバー:コレクティブに所属する全員がメンバーです。

プロダクトマネージャー:戦略、プロダクトディスカバリー、そして顧客とビジネスに価値を届けること、のそれぞれの仕組みがどうなっているかを理解しているメンバーです。

チームスチュワード:バリューサイクル内で、チームに奉仕すると有志で申し出たメンバーです。

フィーチャースチュワード(オプション):あるフィーチャーのコンセプトから完成に至るまでの全てを理解することを有志で申し出たメンバーです。フィーチャースチュワードは開発の進捗について議論をする能力を持ちます。

コレクティブには4つのロールがあります。1コレクティブ=1プロダクト という制限はなく、コレクティブには複数のプロダクトマネージャーが所属できます。 チームのお世話係となる「チームスチュワード」と機能開発のお目付け役となる「フィーチャースチュワード」は自己組織化により立候補したメンバーが持ち回りで担当します。

ツール

コレクティブアグリーメント:常に更新されるドキュメントで、コレクティブがどのように協調するかを記述したものです。少なくとも、どのように意思決定がなされ、どのように対立が解消されるかについて記述してあるべきです。

マーケットプレイスボード:現在のバリューサイクルでどの活動アイテムが選ばれ、そのアイテムのために集まったチームに誰がいるかを可視化するためのものです。

コレクティブ内の意思決定・コミュニケーション方針など行動指針を「コレクティブアグリーメント」としてまとめます。 またバリューサイクル内の活動計画・進捗状況は「マーケットプレイスボード」で可視化を行います。

バリューサイクル内の開発の流れ

タスクをメンバーに分配するのではなく、タスクの周りにメンバーが集まる仕組みをベースとしている。

1. プロダクトマネージャーの指針表明

プロダクトマネージャーが、みんなを鼓舞するメッセージと共にバリューサイクルを開始します。 そのメッセージは、理想的にはビッグピクチャーを改めて共有する形をとります。 場合によって、プロダクトマネージャーは前のFaSTミーティング以降にプロダクトにどのような変化があったか、例えば新たな観点の登場や緊急度の変化など、を強調することもあります。

プロダクトマネージャーの話から始まる。 ビッグピクチャー(=目的・ミッション)をその時点の情報に基づいて見直し、再重要だと考えている課題や解決したいことをコレクティブのメンバーに対して説明します。

2. 自己組織化し、活動の周りにチームを形成

オープンスペーステクノロジーにインスパイアされた進め方で、コレクティブは新たなバリューサイクルのために、活動のマーケットプレイスを作成します。 チームスチュワードは立候補して自ら立ち上がり、1人ずつ短い「ピッチ」を行い、活動に奉仕する意思表明をします。 そして、チームスチュワードがその活動に対応するプレースホルダマーケットプレイスボードに置きます。 すべてのチームスチュワードがピッチを終えると活動のマーケットプレイスができあがります。 メンバーはそれぞれ、どうすれば最大の貢献ができるかを考え、マーケットプレイスボードにある活動アイテムの隣に自分の名前を置きます。 こうして、各自の選択によってチームが構成されます。

プロダクトマネージャーの話を踏まえ、「こういう活動が必要ではないか」と考えたチームスチュワードが立候補し、どのような貢献をするか説明した上で、マーケットプレイスボードに活動を記載する。 その後メンバー各自がどう貢献するかを考え、マーケットプレイスボードの活動の側に自分の名前を記載する。 これにより誰が何の活動に貢献するのかが見えるかされ、バリューサイクル内の担当割(チーム)が形成される

このあとチームごとに活動をタスク分解し計画を行う。計画を詳細化することで複数チーム間の依存関係やリソースの過不足などが見つかるが、FaSTでは自己組織化によって解決する。チーム間で依存性をどう解消するかを話したり、メンバーはどの時点でもチームを移動して貢献することが推奨されている。

価値・原則・柱

ガイドからの抜粋です。 ざっと眺めてみるだけでもどんな考え方をベースにしているフレームワークなのか伝わるかと。

考えたこと

フレームワークの狙いは何か

読んでいてどうしてもスクラムやカンバンといった既存手法との差異が気になってきます。 自分はスクラムで起きるであろう下記の課題の解決を狙っているのかなと感じました。

  • 固定化された開発リズム→バリューサイクルの期間は変えても良い
  • 固定化されるスクラムマスター→チームスチュワードは立候補
  • スプリントが進んでも深まらないプロダクトへの理解→バリューサイクルの最初にプロダクトオーナーが最新状況を都度説明
  • 複数チームのスケーリング調整→チームスチュワードのピッチにメンバーが自発的に集まる仕組み
  • チームで成果を出すため、個人の強みや専門性を抑えてしまう→ピッチにメンバーが集まる仕組み & いつでも移動可というルール

とはいえ、良い取り組みはスクラムを使っていようが導入可能なものにも見えます。

できそう?

↑角谷さんのツイートが"まさにコレ!"でした。

「プロダクトのために集まるメンバー全員が高い自律性を持ち発揮し続けることを前提としたフレームワーク」なので、前提条件を成立させることがまず非現実的なのではと思いました。FaSTのやり方がまずいのか、自律ができてないのか、他に何か問題があるのか切り分けることにずっと苦労しそうです。

下記のどちらかに早晩収束しそう

  • 自己組織化を最大限に引き出せ、はちゃめちゃな所まで辿り着ける
  • そんなことは人類には早すぎるので、はちゃめちゃな状態に早晩なる

ログラスさんが取り組むようですが、「FaSTが良いと公言し実際に推進する人がいるなら、人間の光の部分を強く信じている人」なのではと思いました。 私はやっていいよと言われても色々悩んで実行に移せないと思います。

参考文献

「プロフェッショナルプロダクトオーナー」を読んで

翻訳者の皆様から献本いただきました。

こんな書籍です

アジャイルプロダクトマネジメント を実施していくための心技体(考え方・知識・打ち手)が網羅された本」です。タイトルから「スクラムのプロダクトオーナーを担当している人が、認定資格を取ってさらにスキルアップをしていくための書籍」かと思っていましたが、そんな誤解からこの書籍を読もうとしないのはもったいないと思います。タイトルを見ただけで判断するのではなく、スクラムだから自分には関係ないとか思わず、中堅以上を狙っていくプロダクトマネージャーに是非読んでほしいです。

世の中のプロダクト開発のスピードが上がってきていて、開発は「アジャイル」に取り組むことが普通になってきている中で、「プロダクトマネジメントアジャイルにやる」ってどういうことだか気になりませんか? 書籍で扱う内容に新しいものはなくとも、重要なものから順を追って、スクラムの考え方をベースとしながら、スクラムでない開発であっても役立つマネジメントの話が盛りだくさんです。

ここが好き

書籍は3部構成で「第1部 戦略」「第2部 スクラム」「第3部 戦術」と大きな柱があります。第1章が戦略からはじまるところが最高だと思っていて、わかっているようで今一つわかっていない「ビジョン(Vision)」「価値(Value)」「検証(Validation)」がたっぷりページを割かれて説明されています。

会社のビジョンや戦略はあり、ボトムアップスクラムやスプリント計画はあれど、その間に「プロダクトマネジメントのすきま」を感じたことはありませんか?

  • 良いプロダクトビジョンはどんなものか、そしてそれはビジネス戦略とはどう違うのか
  • 価値は何で測られるのか (書籍では"お金(収益と費用)"とはっきり言ってくれる)
  • 検証とはいってもMVPの作り方ってパターン(プロモーションになるもの、概念実証をしたいもの、将来性をみせたいもの、完成したかのように顧客に見せて反応を見るものなど)があるよねという話

こんな話が100ページもあります。

第2部はプロダクトマネジメントの観点から、スクラムの知識を体系づけて説明してくれます。第3部はアジャイルコーチが教えてくれるようなスクラムを実践する現場でよく直面するであろう悩みや困りごとに対する答えをズバッと提示してくれています。

こんな方におすすめ

ボトムアップスクラムを始め、アジャイルな開発はうまくできるようになった。だけどプロダクトの大きな方向性や会社の戦略とうまく合わず、経営層やプロダクトの責任者とのすきまをどう埋めていくべきなのか途方にくれている・・・ そんなプロダクトマネージャーやプロダクトオーナー、そして社内でアジャイルに詳しいコーチ役として活躍している人にぴったりだと思います。