0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI協働時代のエンジニアに必要な4つのスキル

0
Posted at

はじめに

筆者は「ドメイン駆動設計」「アトミックデザイン」「クリーンアーキテクチャ」など
構造や設計に関する話題が好きで、すんごいワクワクします。

という前提を踏まえて、このAI協働時代に必要なあらゆるものへの向き合い方は
「AIにソースコードを書かせて、人間はそれを見ない」
という決断ではないかと考えています。

その結果、人間は、①仕様となるテストケースと、②その実行結果(All Green) を見て、
「システムが求める形で動いている」と判断していくべきだと考えています。(少し勇気がいる話ですが…)

どういうこと?

ポイント①これから人間に求められるスキル

  1. 正しい仕様を理解し、把握するスキル
  2. 良いテスト設計ができるスキル
  3. 良いテストコードをレビューできるスキル

ここでの役割分担としては、「1.」は人間が定義してAIに伝え、「2.」「3.」はその内容をもとにAIが生成し、人間がレビューする、という形を想定しています。

ポイント②「3. 良いテストコード...」とは

  • AIに良いテストコードを書かせるためにはテスト対象のソースコードが、テストの書きやすい(テスト容易性の高い)構造になっていなければならない。
  • 例えば、1つの関数の中に複数の処理や依存関係があると、モック化して信用度の低いテストコードが出来上がってしまう可能性があります。

つまり、これから求められるスキルに、
「良いソースコードとは何か、すなわち保守性の高いソースコードをAIに書かせるスキル」 がここで追加されます。

(前提をここで回収...笑)

結論

  1. 正しい仕様を理解し、把握するスキル
  2. 良いテスト設計ができるスキル
  3. 良いテストコードをレビューできるスキル
  4. 保守性の高いソースコードをAIに生成させるスキル

エンジニアに求められるスキルは、この4つが重要になると考えています。

またこれらを前提として、
「AIに実装を委ね、人間はテストとその結果で判断する」開発スタイルに移行することで、

  • 実装にかかる時間は大幅に短縮される
  • テスト設計を起点にしたシフトレフトがより機能する

結果として、品質とスピードを両立した開発が可能になるのではないでしょうか。

さいごに

まだ理想論の側面もありますが、
自分自身もこの方向に進めるよう、学び続けていきたいです。

精進します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?