$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

AIによる開発高速化で作り出した時間は新機能開発でなくユーザー理解に使おう

最近Cursor、Cline、Claude Codeなどの発展でAIコーディングが進歩し、非常に高速にプログラミングができるようになり、より短時間で機能開発ができるようになってきている。この高速化によって作り出した時間は何に使うべきだろうか?

僕はこの時間を更なる新機能開発に使うべきではなく、サービスのユーザー理解・既存機能のバグ修正や手触りの改善・エンジニア以外も含めた社内改善に使うべきだと考えている。そのような話を先日Xにポストした。

今回はこの話について詳しく自分の考えをまとめたい。

なぜ新機能開発に使うべきではないと考えるか

次の2点から、新機能開発に使うべきではないと考えている。

  • 大量に機能追加してもユーザーが付いていけない
  • プロダクトマネジメントへの圧力がかかり、本当に必要な機能か吟味されていないまま、不要な機能を作り出してしまう

ユーザーが付いていけない

機能は「ユーザーがうまく利用」できて初めて効果が出るものだ。そして、新しい機能が出たときに慣れてうまく活用できるまでには時間がかかる。

しかし高速化で作り出した時間を新機能開発に充てると、ユーザーがまだ新しい機能に慣れてない状態なのに、さらに大量の新機能が出てくる状況になってしまう。するとユーザーが付いていけず、結局機能が使われない状況になるだろう。

AIによって開発が高速化したとしても、作られた新機能を使うのはあくまでヒトであり、慣れるのに時間がかかることを意識しておく必要がある。エンジニアはキャッチアップが得意な職種なので忘れがちだが、この点は気をつけておきたい。

プロダクトマネジメントへの圧力

別の観点として、新機能開発をし続けようとしてしまうと、プロダクトマネジメントへの圧力がかかり、本当に必要な機能か吟味されていないものを開発しようとしてしまうという問題が起こるだろう。

自分が少しだけPM(プロダクトマネジャー)をやっていた経験からすると、エンジニアのリソースが空いていると「何かタスクを渡さなきゃ」という気持ちになってしまう。すると、まだ本当に必要な機能か検証しきれてないのに、タスクを作り出してしまうことがある。

結果としてユーザーにとって不要な機能が作られてしまうことに繋がるだろう。いわゆるビルドトラップにハマりやすくなってしまう。

どのようなことに時間を使うべきか

これまで述べたように、作り出した時間を新機能開発に充ててしまうと、ユーザーが慣れる前に大量の不要な機能を作り出してしまう危険がある。

そのため作り出した時間は、これまで本当はやるべきとされていたが新機能開発の忙しさからできていなかったことに充てるべきだと思う。具体的にはサービスのユーザー理解・既存機能のバグ修正や手触りの改善・エンジニア以外も含めた社内改善などだ。

サービスのユーザー理解

エンジニアもユーザーを理解すればエンジニア視点からユーザーが本当に欲しい機能を提案できる、ということはずっと言われている。しかし新機能開発で忙しくて出来てなかったことが多い。今は時間を作り出せるようになったので、よりここに時間を使っていきたい。

具体的には以下のようなことをできると良さそう。

  • ユーザー行動のデータを抽出・分析し、PMと一緒に議論する
  • ユーザー要望を読む時間を作る。何人かで議論する
  • PMと一緒にユーザーヒアリングへ参加し、ニュアンス含めて実際の要望を理解する
  • 営業活動の録画を見たり実際に営業についていったりして、お客さんに刺さっている内容やニーズを理解する

既存の機能のバグ修正や手触りの改善

新機能開発より、既存ユーザーがより使いやすくなるように既存機能のバグ修正やちょっとした手触りの改善をしていきたい。1つ1つは地味な改善ではあるが、積み重なるとユーザーに対して大きな体験の差になる。

バグ修正の場合は、どうなるべきかの「期待値」が明確であることが多い。エンジニア側から修正方針を提案し、PMとサッと合意をしてあとはエンジニアだけで対応してしまえばいいだろう。

ちょっとした手触りの改善の場合はバグ修正と比較すると期待値が曖昧だ。これまでだと文字や図だけでPMと相談することが多く、その場合自信を持って提案しづらかった。しかし今のAIコーディング時代だとプロトタイプは非常に高速に行えるため、動くものを作れば自信を持って提案しやすくなるだろう。もちろんPMもその方が判断しやすくなると思う。

エンジニア以外も含めた社内改善

エンジニアは課題解決が得意で、課題を見つけたら仕組みによって効率的な環境やミスが発生しない環境を作り出せる職種だと思う。一方、これまではエンジニア内の改善に閉じてしまっていることが多かった。

そこで作り出した時間を、よりエンジニア以外も含めた社内改善に使いたい。たとえば

  • PMがデータを見て判断しやすい環境を作る
  • 営業メンバーが事務作業で忙殺されている所を効率化し、より提案づくりに集中できるようにする
  • 経理メンバーがミスがないように細心の注意を払っている部分を見つけ、そもそもそのミスが仕組みとして起こらないようにする

まとめ

今回はAIコーディングによる開発高速化によって作り出した時間の使い方について自分の考えをまとめた。AIコーディングによる開発高速化の使い所を間違えると、不要なものを高速かつ大量に作り出してしまい、サービスにとってこれまでより悪い結果に繋がる可能性がある。

そうならないように、どこに時間を使うべきか強く意識しておきたい。他にもそのような時間の使い方になるように、エンジニアの時間の5割しか新機能開発に使ってはならないなどと、仕組み化しておいても良いだろう。