AI時代に即した開発フロー、或いはKANBAN運用を見直す。
公開日
開発生産性
こんにちは、vonxai合同会社の夏目です。
みなさんAIしてますか?してますよね。もうコードなんて書いてないですか?レビューもClaudeやCodex任せですか。そうですか。 ではエンジニアの皆さんは空き時間にYouTube視聴以外で何をしてるんでしょうか。
AIが実装する時代に、エンジニアは何をすべきか?
冗談はさておき、AIが実装を担当してくれる現代において、エンジニアは何をするべきかという話です。もちろん開発速度が上がったんだからAIを並列に動かしてPull Request(PR)を量産するというのも1つの解でしょう。
ではその先に何があるのか?PRを量産して終わり?レビューして終わり?その機能ちゃんとユーザーの課題を解決してるの?使われてるの?サービス改善につながってる?顧客の課題を解決してる?
「実装」から「判断」へのシフト
我々エンジニアは課題を解決するためにコーディングというアプローチを取ってきました。今までコーディングには多大な労力が掛かってきたため、それ以外の大部分をエンジニア以外が担ってきました。ではコーディングのコストが極小化した今、我々は何をすべきでしょうか? どういう機能が必要なのか、その機能を開発するためにどういうアプローチが最適か、どういう設計・スキーマが良いかは人の手による判断が必要なポイントです。
上記のようなエンジニアとしてフォーカスすべき内容は現状の開発フローに取り込めているか、適切な運用ができる体制になっているかと考えた際に、ふと現状のKANBANを見直すべきと思うに至りました。
従来型KANBANの限界と課題
現在のKANBANはコーディングを含むデリバリー中心のフローになっています。 デザイン(UI/UX/システム)→開発→レビュー→リリース といった流れで、メンバーが作成したPRをレビューし、問題なければマネージャーがマージしてテスト環境で動作確認してからリリースするという流れになっていました(弊社では)。
しかしこれだとエンジニアはPRを作成するまでが一つの業務単位という認識になってしまいます。今まではそれでも良かったんですが、レビューやリリース作業がボトルネックになってしまい、かつAI時代にはPR作成の価値はかなり下がってきています。 そこで、その手前に業務内容をシフトしていく必要があるため、このフローを見直すことにしました。開発フローのシフトレフトとでも言えそうですね。
AI時代の新しい開発フロー
これがAI時代の新しい開発フローです。
- デザイン → 設計
- 開発中 → 具体化
と表現を変えました。デザインはそのままでも良かったのですが、UI/UXデザインを含むとどうしてもボトルネックになり業務の流れが止まってしまうため、設計のみのステータスに変更しました。デザインに関する問題は別記事として取り上げるとして、ここでは一旦割愛します。
また開発も「具体化」という表現に変え、コーディングしてPRを作成するのがエンジニアのメインの業務ではないという意思表示になっています。このフローではフィーチャーに関する議論、設計をメインにし、設計以降のデリバリーはエンジニア業務のあくまでも一つに過ぎないというポジションにしています。
ここで重要なのはKANBANの表現を変えたということではなく、エンジニアリングのシフトレフト化です。今までは実装、デバッグ、レビューなど含めて満遍なく業務を行ってきましたが、今後は設計やそのさらに手前の顧客理解、サービス設計などに時間を割く必要があります。
そのためこのフローでも今後設計をもっとブレイクダウンして複数ステータスに分割する可能性がありますが、現状ではそこまで実行していません。
1人ひとりが設計からリリースまで責任を持つ
今までリリースマネージャーによるリリース管理を行っていましたが、これも1人1人がフィーチャの設計からリリースまでを責任持って実施する形に変更を予定しています。
新フローを支えるための運用改善
もちろん単純にフローを変えるだけだとリリースで事故が起きやすい問題が発生するので、
- gitのブランチ戦略の変更
- PR単位でのプレビュー環境の用意
- リリース・ロールバックフローの見直し
など、見直すべき運用は幾つかありますが、これらを行うことで、個々のエンジニアがAI時代に即した業務に集中出来ると考えています。
おわりに
現状開発フローの整備中というステータスで、実施結果というのはまだありませんが、今後運用してみての変化や感想は別途記事にして報告できればと思います。
皆さんのAI時代に即した開発運用の知見などあれば、是非Xの @vonxai_inc に教えていただけると嬉しいです。