9月3日、Shift Magazineが「How AI Helped Me Survive the Shift from Backend and DB Architecture to Native iOS」と題した記事を公開した。バックエンド・DB設計5年のキャリアからある日突然ネイティブiOS開発へ転換を迫られた開発者が、AIをどう使い倒して実務の壁を乗り越えたか——その実体験は、キャリアの岐路に立つエンジニアに刺さる内容だ。
バックエンド5年の自信が、iOS初日に消えた
「フル装備の騎士にラ・マンシュ海峡を泳いで渡れと言われたようなもの」——記事の筆者はそう表現する。
社内向けWebアプリのバックエンドとDB設計を5年間担当し、コードのバグも仕様も頭に入っていた。ところがプロジェクトが別の国に移管されることになり、残留できるメンバーから外れた筆者に提示された選択肢が、顧客向けネイティブiOS開発への異動だった。
問題は技術の違いだけではなかった。iOSのXcode(Appleが提供する統合開発環境)を触った途端に直面した操作性のギャップ、複数チームが関わる大規模SDK群、顧客向けゆえにミスが許されない品質基準——「スコープが途方もなく大きかった」と筆者は振り返る。しかも、Udemy(オンライン学習プラットフォーム)で数日間勉強できただけで、すぐに実務の課題に取り組まなければならない状況だった。上位の先輩と時間を取って話す機会もほとんどなく、コンテキストのないまま会議だけが続いた。
Claude Codeが「主戦力」になるまで
最初、筆者はAIに懐疑的だった。ハルシネーション(AIが事実と異なる情報を自信を持って出力する現象)が多く、バグだらけのコードを生成することも多かったからだ。だが、「1年半かけて地道に学ぶ時間はない」という現実が、その姿勢を変えた。
筆者が採用したのは**Claude Codeとエージェント型コーディングアプローチ**の組み合わせだ。エージェント型アプローチとは、AIに単発の質問をするのではなく、複数のAIエージェントが連携・並列動作しながらタスク全体を自律的に進める仕組みを指す。Claude Codeはその仕組みを標準でサポートしており、筆者はこれを以下のような形で活用した。
- サブエージェントの活用:単一のAIに大きなタスクを丸投げするのではなく、複数のサブエージェントが並列してそれぞれのサブタスクを担当する形で処理を進める。これにより一度に扱う複雑さを下げ、各エージェントの出力品質を保ちやすくする
- プロンプティングスキルの向上:意図を正確に伝える指示の書き方を磨く
- 分割統治法(Divide and Conquer):大きなタスクを小さな反復処理に分けることで、AIが生成したコードが壊れないよう管理する
.mdファイルへのレビューと詳細なコード説明の蓄積:文脈をAIと共有し続けるための仕組み化
この結果、ボイラープレートコード(定型的で付加価値の低いコード)をスキップし、本質的な問題解決に集中できるようになった。新しいプログラミング言語は「ただの形式」になったと筆者は述べており、チームへの影響力も着実に増しているという。
「エンジニアリングの本質に戻れた」という気づき
記事で印象的なのは、技術的な乗り越え方の話だけではない。筆者は大学時代に最も熱中していたのが「問題解決」そのものだったと振り返り、企業の現場ではそれが延々とチケット処理や特定領域の保守作業に置き換えられてきたと指摘する。
AIエージェントが介在することで、その制約が取り払われた——というのが筆者の見立てだ。新しい言語の文法を一から覚える必要も、大量のチケットを手動で処理する必要も、テストをゼロから書く必要もなくなった。「ソフトウェアエンジニアとして今自分に求められているのは、細かい雑務に邪魔されずに問題を解くことだけだ」と結論づけている。
キャリアの岐路でAIを使い倒す、という選択
この体験談が示すのは、AI活用が「生産性の向上」にとどまらない、という点だ。未知の技術スタックへのキャリア転換を、実務しながら短期間でこなす手段としてAIが機能した実例である。
もちろん、筆者自身も「まだ学ぶべきことは多い」と認めており、AIが万能でないことは前提として踏まえている。だが、懐疑的だった立場から「使い倒す」方向に踏み切ったことで、チームへの存在感を取り戻しつつある——という率直な経緯は、同じような局面にいるエンジニアにとって参考になるだろう。
詳細はHow AI Helped Me Survive the Shift from Backend and DB Architecture to Native iOSを参照していただきたい。