この記事は、Goodpatch Advent Calendar 2025 20日目の記事になります。
また、この記事の「エンジニア」は「ソフトウェアエンジニア」という前提で書いています。
こんにちは、グッドパッチのクライアントワークチームでリードエンジニアをしているうっちゃんです。
グッドパッチには2025年1月に入社しそろそろ1年が経とうとしています。
私はこれまでWeb系のフルスタックエンジニアとして10年以上のキャリアを積んでいますが、エンジニアと言いながら2年ほどコードを書いていません。
技術が嫌いになったわけでも、エンジニアをやめたわけでもありません。生成AIにコーディングを任せるようになり、結果的に自分でコードをタイプする必要がなくなって、気づけば2年が経っていました。
このことについて社外でもよく掘り下げて聞かれるので、触りの話をこの記事でしようと思います。
生成AIにコーディングを任せて、実際どうなったのか。この2年間で何が変わったのか、どうやっているのか、どう考えているのかなど、正直に書いてみます。
2年間でどう変わった?
多くの人が気になるであろう結論から言うと、アウトプットは爆発的に増えました。
以前は2〜3日かかっていた実装が、1日もかからなくなりました。
1日集中して書き上げていたドキュメントが、会議と会議の合間のようなスキマ時間で書き上げられるようになりました。
プロジェクトに途中から参加した際のキャッチアップも、3日かかっていたようなものが数時間で終わるようになりました。
同じ時間で比較すれば、生成AIに任せたほうが品質は高くなりました(何を品質とするかは様々ですが)。
ただ、これらの効率的な違いは私にとってあまり重要なものではなく、常にチームを持っている感覚になったということのほうがインパクトが大きいです。
これまでの一人の力を超えられるようになってきたこと、これが私にとって大きな違いです。
一人で作業していても、隣に頼れるパートナーがいる。生み出す価値に集中できる時間が、圧倒的に増えました。
今のワークフローは?
今はこんな流れで仕事をしています。
まず、これから何を目指して、どんな作業を行うのかというコンテキストをAIに話しかけて文書化してもらいます。
その文書をもとにAIに作業を行ってもらい、最後に文書をもとにAI自身にレビューさせます。
出来上がったものを見て、伝えきれていないコンテキストがあれば追加で伝え、文書を更新してもらいます。
その文書をもとに再度レビューし、修正が必要な箇所をAI自身に直してもらいます。
この繰り返しです。
ゴールのためにどう進めるかという戦略の部分を私が担い、作業はAIに任せるといった構図で、いわゆるコンテキストエンジニアリングです。
正直なところ、完全に自動化できるわけではなく、AIツールが連携できないツールとの橋渡し作業(コピペして貼り付けるなど)はまだたくさん残っており、地味な作業を自分でやる必要があります。
AIに任せないことはある?
あります。なんでもAIに任せればいいわけではありません。
たとえば技術選定。動くものを作るための技術選定は任せられますが、技術選定というのは技術戦略に対する戦術です。前提となる戦略を伝えないと、AIは最適な判断ができません(確率的にできたりできなかったり)。
技術戦略を伝えずに、技術選定だけ任せてしまうと長期的なリスクにつながりやすいです。これは非エンジニアがプロンプトだけでアプリケーションを作ったときによく見られる問題の一つでもあります。多くのエンジニアが「エンジニアはまだ必要」と言っているのは、この部分が大きいのかなと思っています。ただ、そこを気にするフェーズなのかや、目的に対して許容できるものなのかの前提で話は変わると思います。
あとはレイヤーが低い実装。Web系の実装はかなり任せやすいですが、組み込み系などはまだ頼りにならない場面が目立ちます。
実は同じ実装作業だとしても使う言語や実行環境によって結果がだいぶ異なります。
この議論をする際は相手がどんな前提で会話しているのかを確認しないとお互いにピンとこない状態になるのでこれについてエンジニアは知っておく必要があるかと思います。
その他よく聞かれること
「品質は大丈夫?」
同じ時間で比較すれば、AIに任せたほうが基本的に品質は上がると思います。
最終仕上げでどうしても自分の手で修正しないといけないといった場合であっても、より良い状態に持っていくために使える時間が増えるからです。
「スキルは衰えない?」
何もしなければ衰えると思います。でもそれはAIに任せなくても同じで、年齢とともにスキルは衰えるものでもあります。
嫌なら筋トレのように、自分のスキルを維持する時間を別途作ればいいだけと思います。
「自分のスキルを維持するためにAIに任せない」というのは、本質がズレているようにも感じます。
生み出せる価値が維持、もしくは向上していれば、衰えたスキルは不要になったスキルということではないでしょうか。
「人に任せるとスキルが衰える」と言っているようなもので、AIはあまり関係ない話かなと思っています。
ここに至るまでの経緯
最初からここまでできたわけではありません。少し過去の話をさせてください。
「コードを書くのが好き」で超えられない壁
20代の頃、エンジニアになってRailsに初めて触れたとき、自分の意思でサービスを作れることが何より嬉しかったです。まるで魔法を手に入れた気分でした。
それがエンジニアとして仕事を続けたい/続けられると思った瞬間でもありました。
そしてスタートアップのCTOをやっていた時期があり、当時の私はエンジニアリングに精通していて現場でも戦えるCTOでありたいと思っていました。
でも1年も経たないうちに壁にぶつかりました。開発スピードが事業の成長に追いつかない。経営判断、採用、資金調達、組織づくり。やるべきことは山積みなのに、自分はコードを書いている。
そこで気づいたのは、 自分がコードを書くことに固執しているのは、ユーザーや事業のためではなく、自分のためだった ということです。
乱暴な言い方をすると、経歴書が一番かっこよくなることを優先している状態です。エゴですね。
「ユーザーに価値を届けることと、自分がコードを書くことは別の話。エンジニアに求められるのはエンジニアリングであり、コーディングではない。同じ品質のコードが書けるなら、誰がタイピングしたかはユーザーにとって重要ではない。」
そんなことに気づくことができ、この経験があったからこそ、生成AIが登場したときに「自分で書くこと」への執着を簡単に手放せたのだと思います。
ChatGPTとの出会いと挫折
ChatGPTが一般公開された頃、自分の業務をどこまで任せられるかを実験的に試していました。私は業務以外で個人でサービスを作っていたりするので、業務を想定した模擬的な実験もしやすかったです。
GPT-3.5の頃は苦手な能力がハッキリしていたため「この部分なら任せられるかな」という領域を見つける作業に近かったです。
一番最初に業務上の成果をあげたのは、Rubyで書かれたバッチをGoにトランスパイルして高速化したときでした。8時間かかっていたバッチ処理が、数分で終わるようになりました。これが3年ちょっと前の話です。
こうすると過去の経験もあり、すんなり生成AIを受け入れたように聞こえるかもしれません。でも実は、業務に持ち込む前は1週間ほど落ち込んでいました。
それまで私はWeb系のフルスタックエンジニアとして実働できることにアイデンティティを感じていました。しかし自分より早くコードを書きあげる目の前の存在に、アイデンティティを奪われたような強い挫折感に襲われたのです。
それは自分より優秀なエンジニアを前にすることとは意味が全く異なりました。
ChatGPTはエンジニアでなくても誰でも触れるツールです。これが大きな要因なのです。
当時はまだ実行すると失敗するようなコードがほとんどで、自分で手直しをしないといけなかったのですが、それでも相当なショックでした。
ただ、1週間ほど落ち込んでからは「この先AIとどう共存するか」「自分ではなくこのAIをどうやって活かしていくか」を考えるように自然と切り替わりました。本質的ではないアイデンティティへの執着から目を覚まさせてくれたような感覚もあります。
ここにCTO時代の過去の挫折の経験が活きたように思います。
自分でコードを書くことをやめる時
その後、生成AIは進化を続けました。自分が設計さえしていればコーディングはある程度任せられそうな未来が見え始めます。
そして約2年前にCursorがリリースされたタイミングで、自分の作業がエディタ1つで完結するようになり、これをきっかけに、自分でコードを触ることを意識的にやめました。
取り組みが早すぎたことや、自分が適応できるまでに時間がかかった部分があり、効率が下がった時期がありましたが、それでも3ヶ月くらいで生産性は反転し始めた記憶があります。その後はモデルやCursorの進化とともにスムーズに効率が上がり続けてその度に喜んでいます。
Cursorを初めて触ったときは、Ruby on Railsに出会ったときと同じ感覚がありました。自分の限界を超えられる魔法を手に入れた、という感覚です。
今でも設計に関しては自分でしっかり見ないといけない部分があります。特に、一般的なやり方が取れない制約がある場面では注意が必要です。コーディングはしなくなったものの、生成AIだけですべての業務が完結する状態にはまだなっていません。
とはいえ、基本的には人に依頼するより早く、良い成果が出るようになってきています。コミュニケーション的にもAIのほうが楽という側面もあったりします。
問い続けたいこと
さて、いったいこの話のどういう部分にどれだけ需要があるのかわからず、つらつらとかけることを書いてみましたが、
最後に私がみなさんに投げかけたい問いが1つあります。
「誰に、どんな価値を届けたいのか」
昨今、生成AIをつかうべきかどうか、議論が活発ですよね。私自身もとても迷うことが多いです。
どんなやり方であっても、この問いに対する答えをみなさんが実現できることを全力で応援しています!
グッドパッチでは、生成AIを活用しながらあなたらしく価値創出に集中できる仲間を募集しています。