
こんにちは、ユニファで開発している安田です。今回は世間的に開発工程を取り巻く環境が変わってきている中で最近考えていたことを書きます。
コードレビューについて
AIを使い始めて初期はAIが書いたコードであるかどうかによってコードレビューをする際の見方を個人的に変えていましたが、現在は、変えていません。というのもどの部分をAIが書いたか人間が書いたかを自分自身も1コミット単位で分けられない状態になっているので、何が出力したかわからないけど、大事なところを見る、という意識に変わりました。今までよりボリュームが多いPRのレビュー依頼を相互に受けることになるため、コードレビューの段階でしか入らない指摘どころはどこかという目線と、ここは後続のQA工程で拾える内容だから注力しすぎない、といった振り分けが時間をかけすぎないためには大事になってきています。 お互いに「理解していない」コードが本番に入る可能性が以前より高まっているので、そこを声をかけ合って曖昧のままで放置されないことをチームで意識しています。
開発サイクルについて
全体のアウトプットが生成AIの力も借りて増える一方で、開発工程自体も何かしら更新していかない限り本番に出ていくスループットを高めることには必ずしもなりません。 ここは所属するチーム内で課題認識は持てているので何かしら改善を今後続けていこうと思います。
コード品質について
今の開発環境になってもコード品質という意味では大きく変わっていないと思います(生成AIのトークン消費効率の観点での品質の話はここでは触れていません) 制作物としてのコード品質をあげるために以下のような部分を意識してみています。
AIにとって理解しやすいコードというのは、コード上に全ての仕様が記載されている状態だと思います。 この状態のコードはAIだけではなく、人間にとっても理解しやすく、読み手によっての解釈差異がでにくい状態です。 例えばapiサーバーと、手前のフロントアプリケーションを保守している場合にそれぞれでどの仕様をコード上に残すべきかは、設計やチームの思想によると思います。 意図がわかりやすいコードはコードレビュー時の読み手の負担を削減することにもつながるのでメリットしかないと思います。
AIに頼もうとしたことが既存コードの暗黙的な箇所が多くできない部分があり適応しやすい形へ修正するようにも進めています。
まとめ
AIにも人にも優しいコード解釈に差が出ないコードを書くことでサクサク開発してユーザにいいプロダクトを届けましょう!
ユニファでは新しい仲間を募集しています! 🕺