1
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だけで開発サイクルを回している話

1
Posted at

最近、チームメンバーへの依頼がほぼゼロになった。仕事が減ったわけじゃない。むしろ逆で、なかなか興味深い状況になっている。


私の今の開発フロー

正直に言うと、今の私の開発における人との協働は、ほぼない。

代わりに、こんなサイクルで物事が動いている。

設計依頼 → 設計レビュー → 実装依頼 → PRレビュー → 動作確認 → マージ

全部AIが相手になっている。

設計はAIに叩き台を出してもらう。それをレビューして方向性を確認し、実装はそのまま依頼する。上がってきたPRを見てマージ判断して、動作確認をして、問題なければマージ。

以前なら「◯◯さん、この設計どう思う?」「実装お願いできる?」とチームに投げていたことが、全部このサイクルに収まるようになった。


何が変わったのか

QCDという言葉がある。Quality(品質)・Cost(コスト)・Delivery(納期)。システム開発における永遠のトレードオフとして語られてきた概念。

速くしたければ品質を犠牲に。品質を上げようとすればコストがかかる。安くすれば納期が延びる——それが「常識」だった。

この常識が、今の私の現場では成立しなくなっている。

AIを使ってからというもの、品質は落ちていない。むしろ設計の一貫性は上がった。コストは明らかに下がった。納期も早くなった。QCDが全部、同じ方向に動いている感覚がある。

最初は自分でも信じられなかったけれど、今は実感として腹に落ちてきている。


「任せる」ではなく「チェックし続ける」

ただし、AIに「いい感じにやっておいて」は通じない。

これが人間との最大の違いだと感じている。優秀なメンバーなら、多少ふわっとした依頼でも文脈を読んで補完してくれる。AIはそれが苦手で、補完はしてくれるのだが、その補完が正しいとは限らない。放置すると、気づかないうちに想定外の方向に走り出してしまう。

だから私がやっているのは、一言で言えば道筋を示してチェックし続けることになる。

PRレビューで見ているのは、具体的にはこの4点。

  1. アーキテクチャのルールに準拠しているか
  2. やるべき内容が、適切なレイヤーで、適切な単位で設計・実装されているか
  3. 単一責務の原則に準拠しているか
  4. 過剰な変更を加えていないか

コードの1行1行を追うというより、構造として正しいかを見ている感じ。枠組みとして逸脱していなければ、細部はAIを信頼する。枠組みがズレていたら、そこで止める。

従来の「コードレビュー」とはやや違う感覚で、人間メンバーのPRをレビューするときに近いが、速度が桁違いに速いので、判断の連打になっている。


これって、マイクロマネジメントかもしれない

振り返ると、私がやっていることはマイクロマネジメントに近い気がしている。

マイクロマネジメントは、人間相手には悪手とされてきた。細かく口を出すことでメンバーの自律性を損ない、モチベーションを下げる。だから「任せる」「権限を委譲する」が美徳とされてきた。

でも、AIにはこの話が当てはまらない。

AIはモチベーションを持たないし、細かく指示されても傷つかない。むしろ、細かく指示されるほど、アウトプットの質が上がる。設計の意図を明確に伝えるほど実装が意図に近づき、レビューで軌道修正するほど次の出力がよくなっていく。

人間のチームで「悪手」とされてきたマネジメントスタイルが、AIチームでは「正解」に変わる。この逆転が、なかなか面白いと感じている。


ただし、前提がある

このやり方が機能するには、一つ条件がある。

自分が、タスクの詳細を理解していること。

設計依頼をかけるとき、私はすでにある程度の答えを持っている。「こういう構造にすべきでは」という仮説がある。AIの設計案はその仮説を検証するものとして受け取り、ズレていれば修正を指示する。

PRレビューで「アーキテクチャのルールに準拠しているか」を見るためには、そのルールを自分が理解していないといけない。「単一責務の原則」に照らすためには、その概念を自分の言葉で説明できる必要がある。

つまり、AIをうまく使えるかどうかは、自分の技術的な理解の深さに、ほぼ比例する

「AIがあれば実力は関係ない」という話を聞くことがあるけれど、実際は逆で、AIを使いこなすほど、自分の理解の解像度がアウトプットに直結してくる。わかっていない領域は、指示できないし、レビューもできない。


ではどうするのか

少し具体的な話をすると。

まず、「なぜ」を問い続ける習慣。 設計の選択肢を前にしたとき、「なぜこの構造なのか」「なぜこのレイヤーなのか」を自分に問う。AIに投げる前に、自分の中に仮説を持っておく。これがないと、AIの出力を評価しにくくなる。

次に、AIとの差分を意識する。 AIが出した設計や実装を「そのまま正解」にしない。「自分ならどうするか」を常に比較してみる。差分があるとき、どちらが正しいかを考える。この往復が、スキルを磨くことにつながっている気がしている。

そして、言語化する習慣を持つ。 AIへの指示は、設計書であり仕様書でもある。うまく指示できないということは、自分が理解できていないサインでもある。「ちゃんと伝えられるか」を、自分の理解度のバロメーターとして使えると便利。


業務委託のエンジニアへの影響

少しシビアな話もしておきたい。

今の私のワークフローには、人間への依頼がほぼない。以前なら業務委託のエンジニアに頼んでいた実装タスクが、今はAIに流れている。

正社員はすぐには切れない。組織のルールがある。でも業務委託の場合、契約更新のタイミングで、静かに依頼が来なくなることがある。ドラマチックな「クビ」ではなく、フェードアウトという形で。

これは私が実際に見ている変化で、決して他人事じゃないと感じている。

ただ、これはエンジニアの終わりじゃないとも思っている。「何でも実装できる人」の需要が下がり、「何を作るか判断できる人」の需要が上がっている、という変化として捉えると少し見え方が変わってくる。

AIが書いたコードを適切に評価できる人。設計の意図を言語化できる人。アーキテクチャのルールを持ち、それへの準拠を判断できる人。

そういうエンジニアは、AIと競合するのではなく、AIを動かす側に回れる。


結局、地力がものをいう

私のワークフローは、一見するとラクに見えるかもしれない。AIに指示して、チェックするだけ、という感じに。

でも実態は、判断の連打になっている。設計の方向性は正しいか。実装は設計通りか。変更範囲は適切か。動作は意図通りか。

この判断を高速・高精度で下すためには、技術的な地力が要る。アーキテクチャへの理解、設計原則の体得、ドメインへの精通。これらは、AIが代わりに持ってくれるものではない。

AI時代に求められるエンジニアの条件は、案外シンプルかもしれない。

ちゃんと理解していること。それを言語化できること。

近道はないけれど、やることは変わらない。


AIが当たり前になった今、「技術を知っている」ことの価値は下がっていない。むしろ、それを持っている人が「使う側」に回れる——そういう時代になってきた、と感じている。

1
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
1
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?