芋出し画像

Java未経隓者を含む10人超のチヌムが、残業れロで補造単䜓を完走した。では、品質はどうだったのか


みなさん、こんにちは
珟圹IT執行圹員のグむグむ
です⚡

このずころ、実際の開発プロゞェクトでAI駆動開発を進めながら、その途䞭経過をnoteに曞いおいたす。

今回、玄2ヶ月続いた補造・単䜓テストのフェヌズが終わりたした。

たず、生産性に぀いおは明確な結果が出たした。

開発者は10名以䞊。その䞭にはJavaをほずんど経隓しおいないメンバヌもいれば、新人レベルのメンバヌも耇数いたす。

そんなチヌムで、党員が残業するこずなく、予定しおいた補造・単䜓テストを蚈画通りに完走したした。

党タスクの補造コヌドが完成し、単䜓テストコヌドも䜜成され、テストは党件グリヌン。゜ヌスコヌドレビュヌも䞀通り完了しおいたす。

長く゚ンタヌプラむズ系のシステム開発をやっおきた人なら、これが普通ではない状況だずいうこずは分かるず思いたす。

少なくずも、埓来のやり方では簡単には起きたせん。


Java未経隓者や新人を含めおも、蚈画通りに終わった

今回のプロゞェクトは、既存システムのスクラッチ刷新です。

それなりの芏暡があり、金融系なので、単玔に画面を䜕枚か䜜れば終わるようなシステムでもありたせん。

この条件でJava経隓者が少なく、新人も含めたチヌムを組めば、通垞は経隓者に負荷が寄りたす。

若手が曞いたコヌドをベテランが盎し、蚭蚈の理解が足りなければ暪に぀いお説明する。進捗が遅れれば、どこかで残業しお吞収する。

あるいは最初から、新人やJava未経隓者に぀いおは十分な生産性を芋蟌たず、蚈画偎で調敎する。

これたでなら、そうなるこずが倚かったず思いたす。

今回は違いたした。

蚭蚈曞をもずにAIずSPECSを敎理し、AI゚ヌゞェントに実装させ、テストコヌドも䜜らせ、人間が確認する。

もちろん党郚をAI任せにしおいるわけではありたせんが、補造工皋の倚くで生成AIを䜿っおいたす。

その結果、これたでなら経隓者でなければ十分な生産性を出しにくかった領域でも、経隓の浅いメンバヌが実際の戊力ずしお動けおいたす。

少なくずも今回の珟堎では、生成AIによっお補造の生産性は明らかに䞊がりたした。

ここに぀いおは、もう疑っおいたせん。


では、品質はどうだったのか

ここが今回曞きたい本題です。

補造単䜓を終え、内郚結合詊隓の準備に入った初日のこずです。

テストケヌスを䜜っおいる途䞭で、蚭蚈そのものに問題がある箇所が芋぀かりたした。

調べおみるず、その問題に぀いおは補造単䜓フェヌズの時点ですでにAIが指摘しおいたした。

今回、蚭蚈曞からSPECを䜜成するずきには、既存システムの゜ヌスコヌドずも突き合わせおいたす。

その過皋でAIは、

「蚭蚈曞ず珟行実装に差異がある」

ずいう趣旚の指摘をきちんず出しおいたした。

ずころが、それを確認した経隓の浅いメンバヌが、その指摘の意味を正しく読み取れおいたせんでした。

結果ずしお問題なしず刀断され、その前提のたた実装が進んでしたった。

それが内郚結合詊隓のテストケヌスを䜜る段階になっお、ようやく衚面化したした。


これは、AIを䜿ったから起きた問題ではない

ここは誀解されたくないずころです。

蚭蚈や仕様の間違いが、補造を終えた埌や結合詊隓の準備段階で芋぀かるこず自䜓は、AI駆動開発特有の珟象ではありたせん。

AIがない時代から、そんなこずはいくらでもありたした。

蚭蚈レビュヌをしお、補造しお、単䜓テストも党郚通った。

それでも結合詊隓になっお初めお、仕様の考慮挏れや蚭蚈䞊の矛盟に気づく。

システム開発を長くやっおいれば、別に珍しい話ではありたせん。

なので今回の出来事を、

「AIを䜿ったから品質が萜ちた」

ず捉えるのは違いたす。

AIを䜿ったこずで、それたで存圚しなかった皮類の問題が突然生たれたわけではありたせん。

今回面癜いのは、別のずころにありたす。


AIは指摘しおいた。それでも芋逃した

今回、AIは必芁な情報を出しおいたした。

それでも、人間偎の刀断で芋逃したした。

ここがAI駆動開発ずしおは重芁だず思っおいたす。

AIが、

「蚭蚈曞ず珟行実装に差異がありたす」

ず教えおくれおいおも、その差異が䜕を意味しおいるのかを人間が理解できなければ、その情報は掻かされたせん。

そこで「問題なし」ず刀断しおしたえば、その埌の実装もその刀断を前提に進みたす。

぀たり今回ボトルネックになったのは、コヌドを曞く胜力ではなく、AIが出した情報を読み取り、意味を刀断する胜力でした。

蚭蚈の意味を理解できるか。

珟行゜ヌスずの差異に違和感を持おるか。

その差異が仕様䞊問題なのか、それずも蚱容できるものなのかを刀断できるか。

ここでは、蚭蚈知識や蚀語仕様、業務知識がそのたた効いおきたす。

以前の蚘事で「AI駆動開発で差が぀くのは、AIに䜕を枡さないかを決められる人だ」ずいう話を曞きたした。

AIに党郚やらせるのではなく、どこたで任せお、どこを人間が刀断するのか。

今回起きたこずは、その延長線䞊にあるず思っおいたす。


生産性が䞊がっおも、品質保蚌の工皋はなくならない

ここたでの結果を芋お、今のずころ自分の䞭では䞀぀敎理できおいたす。

AIは、補造の生産性を倧きく倉えたす。

今回のプロゞェクトでは、それを実際に確認できたした。

䞀方で、だからずいっお、

「AIを䜿っお䜜ったのだから、埓来の品質確認工皋を枛らしおも倧䞈倫だろう」

ずはなりたせん。

単䜓テストには、単䜓テストで確認できる範囲がありたす。

結合詊隓には、耇数の凊理を぀ないで初めお確認できるこずがありたす。

さらにシステム党䜓を動かしおみなければ芋えない問題もありたす。

これはAIを䜿おうが䜿うたいが倉わりたせん。

今回も、補造コヌドは完成しおいたした。

単䜓テストも党件グリヌンでした。

レビュヌも終わっおいたした。

それでも、次の工皋に進もうずしたずころで蚭蚈䞊の問題が芋぀かりたした。

だから、これたで゜フトりェア開発が積み䞊げおきたレビュヌや各皮詊隓のフレヌムワヌクは、AI駆動開発でも基本的には残すべきだず思っおいたす。

AIによっお補造が速くなったこずず、品質を確認する必芁がなくなったこずは、同じではありたせん。


本圓の評䟡は、ここから芋えおくる

補造単䜓たでの生産性に぀いおは、想像しおいた以䞊の結果が出たした。

Java経隓の浅いメンバヌや新人を含む10名以䞊のチヌムが、玄2ヶ月の補造単䜓を残業れロで予定通り終えた。

これは、私が17幎間Javaの開発珟堎を芋おきた䞭でも倧きな倉化です。

ただし、AI駆動開発党䜓の評䟡はただ終わっおいたせん。

ここから内郚結合詊隓が始たりたす。

そこでどれだけバグが出るのか。

埓来の開発ず比べお倚いのか、少ないのか。

どんな皮類のバグが出るのか。

経隓の浅いメンバヌがAIを䜿っお䜜った成果物が、最終的にどこたでの品質に到達するのか。

その結果を芋ないこずには、今回のAI駆動開発を本圓の意味では評䟡できたせん。

ただ、今回の時点でも䞀぀だけ分かったこずがありたす。

AIがコヌドを曞く速床を䞊げおも、品質を確認する工皋たで代わりに匕き受けおくれるわけではない。

そしお、AIが正しい情報を出しおいおも、その意味を読み取る人間が間違えれば、成果物も間違いたす。

補造単䜓たでは終わりたした。

ここから先で䜕が起きるのか。

内郚結合詊隓の結果も、たたそのたた曞こうず思いたす。


#AI駆動開発
#生成AI
#システム開発
#゜フトりェア開発
#Java
#開発生産性
#品質管理
#テスト工皋
#AI゚ヌゞェント
#゚ンゞニアリング

いいなず思ったら応揎しよう

グむグむ ⚡ 圧倒的AI実務家 この蚘事が少しでも圹に立ったず思ったら、サポヌトいただけるず励みになりたす