こんにちは、Mukaigaです。 最近ではAIエージェントによる開発がとてもトレンドですよね。
かくいう私も、claude codeを使って開発を進めています。
しかしながら、何も考えずに全てをAIによって書かせていては、アプリケーションの品質やスケーラビリティなどが損なわれる可能性があります。
勿論、個人開発やモックなどで品質よりアプトプットのスピードを重視されるようなケースでは、何も考えずAIに任せるのも良いでしょう。というか任せましょう。
ただ、チーム開発やプロダクションレベルのアプリケーション開発においては、AIに全てを任せるのは危険です。
そこで、その様な場合にAIを最大限に活用しつつ、品質を担保するにはどうすればよいかを考えてみます。
AIエージェントを使うことで、実装力は増えていきます。
しかし、この急な実装力の増加にプロジェクトが耐えられていない場合、それはスケールアップの準備ができていないです。
準備ができていないのはアプリケーションの開発上だけに留まりません。 これはチームとして、人員を増やすスケール化の準備ができていないのです。
というのも、開発リソースを増やすことも、AIを導入することも、チームのスケールアップに他ならないからです。
今までプロジェクトがどれだけリソースのスケールアップを受け入れる準備ができていたか。これがそのままAIによる開発効率の有効性に直結すると思います。
チームの開発体制の話はおいて、アプリケーションの話に戻りましょう。
「設計が良ければ、実装力は新卒程度で良い」
この言葉はこちらの記事から引用させていただきました。
Claude Code時代のソフトウェアエンジニア生存戦略
この言葉は、割と新卒エンジニアである自分にとって、意外と刺さりました。
確かに、「実装力」と言う言葉をとあるタスクがあって、そのタスクにおける計画・仕様があって、ただそれを実装するような意味で捉えた時に、実装力が新卒で良いと言うのは正しいと思います。
なぜなら上記の流れで、新卒の自分がスムーズに開発を行えているからです。
そして、自分かAIエージェントを有効に使えてしまっているからです。
悲観的に捉えるならば、AIでもできることを僕は仕事としてやっている時があると言うことです。
楽観的に捉えるならば、今のプロジェクトにおける設計が優れているおかげで、他のコードに倣うだけでスムーズに実装ができているということです。 (他のコードに倣える = 良い設計であるわけではないが。)
すみません、つまり何が言いたいかというと、AIエージェントをうまく使うには、良い設計が必要だということです。
自分が思う、AIと上手く開発する方法は、TDDによる開発手法です。
TDDは調べたら色々出てきますが、 しっかりこちらの本を読むと良いでしょう。
簡単にいうと、TDDはテストを書いてから実装を書くことです。
勿論TDD単品で、AIを使わずとも有効な開発手法です。
ただなぜAIと親和性が高いかというと、良いテストケースを書きやすくするために、
我々は、「凝集度が高く、結合度が低いたくさんの部品で構成された設計を行うようになる」からです。
これはAIに開発を指示する上で、曖昧な指示をポンと投げるのではなく、なるべく一つずつタスクを分割して丁寧に指示をした方が解決しやすいことと親和性が高いです。
設計の話でTDDの話を出したのは、先ほどの「結合度が低い部品で構成された設計をするようになる」に繋がるからでした。
そもそも良い設計の定義は何でしょうか。
これは明確にはプロジェクトの要件や仕様などによって適切なものがあるので、一概には言えません。
ただ確実に言えることは、特に若手のエンジニアなどは、AIにより細かな実装は自分たちが行う作業量は減っていき、全体の設計やアーキテクチャを考える時間や機会が増えていくことです。
そのため、直ぐにでも設計・アーキテクチャを学ぶことで、AIをより効率的に扱う設計ができるようになるでしょう。
また細かな実装に関しても、日頃から勉強し、AIの判断が正しいかどうかを素早く見極めることも開発効率を上げるために重要です。
まとめ:いっぱい勉強しよう!!
可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More