11月から参画している案件で生成AIを使用した開発を取り入れている。
CursorというIDEを用いて、対話形式でソースコードやリファクタリング案を出力してもらっている。
しかしながら、生成AIに限らずAIというのは以下のような前提がある。
・事前に学習した内容から「要求されているものを満たすのは、こういう答えであろう」というものを推測して出力している
つまりは必ずしもこちらが求めていることを100%満たしているとも限らないし、そもそも答えが正しいとも限らないのである。
(固有名詞の説明など答えが一意に決まっているものは除く)
XなどのSNSを見ていると、AIがこう言っていたからお前は間違っている、AIにやらせれば速い、といったものをよく見る。
確かに部分的にはそうなのかもしれないが、上記の前提に立ってみればAIの回答がこうだからとは断言できないのである。
開発においてもそれは同じで、必ずエンジニアが出力したコードや提案されたリファクタリング案を精査し、取捨選択する必要がある。
開発スピードは確かに速くなったかもしれない、特にテストコードという面倒なタスクが大分削減された。
しかしながら、それぞれの処理の正しさを確認するという手間が新しくできたという側面もある。
間違ってたらもう一回要求を見直して、再度出力してもらって、、、などということも出てくる。
部分的に出力してもらって確認しながら、面倒なときは手で直しながらというほうがまだ速いのかもしれない