2003年、私はDCSL Softwareを設立し、後にOne Beyondとなりました。2023年に退社する頃には、会社を国際展開し、300人以上の規模に成長させていました。その後、ロボティクスのスタートアップを立ち上げ、400万ポンド以上のシード資金を調達しました。
本番環境のソフトウェアを再び書くことになるとは思ってもみませんでした。2014年に日常的なコーディングをやめましたが、それはできなくなったからではなく、会社が拡大するとそうなるものだからです。自分より実行力のある人材を雇い、リーダーシップに注力し、徐々にキーボードから遠ざかっていく。約10年間、それはごく自然なことに感じられました。
予想外だったのは、10年近く経ってから、再び開発者の席に戻ることになったことです。懐かしさからではなく、実践的な理由で。趣味でいじるのではなく、真に複雑なロボティクスプラットフォームを構築するために。そして、見過ごしてきたすべてのフレームワークや言語を学び直すのではなく、根本的に異なる方法で作業することによって。
この個人的な変化は、ソフトウェア開発において構造的な変化が起きたことを示す最も明確なシグナルです。
私が始めた頃、私たちはウォーターフォール時代のど真ん中にいました。それはイデオロギーではなく、経済的理由でした。ソフトウェアの構築は遅く高価だったため、唯一の合理的なアプローチは事前に非常に深く考えることでした。
詳細な仕様書を書く必要がありました。契約はそれに依存し、納品もそれに依存していました。優れた仕様を書くことは専門的なスキルであり、私はたまたまそれが得意でした。完成品が存在する前にそれがどのように見えるかを視覚化し、複雑な領域を予見し、チームがそれに基づいて構築できるほど十分な精度で動作を説明することができました。
その能力は稀であり、教えるのも困難でした。多くの人がそれに苦労しました。なぜなら、まだ存在しない複雑なシステムを想像することは本当に難しいからです。しかし、それは重要でした。プロセスの後半で間違えることは苦痛で高くつくものだったからです。
時間が経つにつれ、業界はアジャイルへと移行しました。公には、これは変化に対応するより良い方法として位置づけられました。内密には、大規模で長期にわたるシステムにおいては、どんな仕様も無傷では生き残らないという認識でもありました。ビジネスは変化し、ユーザーは変化し、技術は変化します。そうでないふりをすることは、しばしば害をもたらしました。
アジャイルは実用的でしたが、代償も伴いました。私たちは深い事前設計を大部分放棄し、段階的な発見に置き換えました。それはうまくいきましたが、先のことを考えすぎることは不必要、あるいはリスクさえあると見なされる考え方を正常化しました。
私が実践的な開発に戻ることができた理由は、突然10年分のツールを学び直す時間や意欲が見つかったからではありません。AIが実験のコストを根本的に変えたからです。
これはしばしば誤解される部分です。真の変化は、コードを書くのが速くなったことではありません。試すことが今では安価で、高速で、そしてほぼ可逆的になったということです。
かつては開発者週単位で時間がかかったことが、今では数分で試すことができます。アプローチを探求し、その感触を確かめ、完全に破棄し、ほとんどペナルティなしで別の方向を試すことができます。それは以前は単純に不可能でした。
かつては、コードに対する強い感情的・財務的な執着がありました。2人の開発者が3週間かけて何かを構築した場合、それを捨てることに抵抗があるのは当然でした。決定は早期に固まりましたが、必ずしも正しかったからではなく、それを覆すコストが高すぎたからです。
その制約はなくなり、これが私を引き戻したものです。私は今、自分が最も強いレベルで活動できます。問題を理解し、システムを形作り、複雑さが忍び込んでいるのを見つけること。一方、AIはメカニズムを処理します。私は20代の頃のようにコードを書いているわけではありません。それを指示し、洗練させ、修正し、時には完全に間違った方向に進むのを止めています。実際には、これはコードを書くよりもチームをリードすることに非常に近い感覚です。あなたは事実上ボスです。方向を設定し、アウトプットをレビューし、安易な近道を見つけ、何かが正しく感じられない時には押し返します。
この新しい自由が設計をより重要でないものにすると考えるのは簡単です。実際には、それはより重要にします。
構築しようとしているものについて明確で詳細なアイデアを持つことは、依然として非常に価値があります。実際、それはAIのアウトプットを積極的に改善します。意図が明確であればあるほど、結果は良くなります。曖昧な思考は、単により速く曖昧なシステムを生み出すだけです。理解すべき重要なことは、AIは人間と非常によく似た振る舞いをするということです。それは役に立ちたいのです。答えを提供したいのです。曖昧であれば、AIはギャップを埋めます。不注意であれば、AIは仮定をします。挑戦しなければ、AIは自信を持って間違った道を進み続けます。
違いは、設計がもはや何年も変わらず生き残らなければならない脆い一回限りの成果物ではないということです。それは制約ではなく、実験のガイドになりました。どこに向かっているかという強いビジョンを保持しながら、そこに到達する道を試し、破棄し、進化させる意欲を持つことができます。
新しいスキルは、探求がいつ生産的であり、いつ単なるノイズであるかを知ることです。AIは、簡素化されるべき後も、喜んで構造を生成し続けます。ファイルが大きくなりすぎた時、抽象化が漏れている時、または今日「動作」するものが後で痛みを引き起こす時をAIは知りません。それらの直感は依然として経験から来ます。
実験が安価になると、長く保持されてきた多くの仮定が成り立たなくなります。計画は、すべてを事前にロックダウンすることではなくなります。それは意図、制約、境界を設定することです。
見積もりは、労力を予測することよりも、探求している空間を理解することになります。
そして、コードとの関係は完全に変わります。特定の実装への執着ははるかに少なく、動作、構造、結果へのフォーカスがはるかに多くなります。
これが、ソフトウェア開発業界が落ち着かない理由です。多くの人々が古い思考モデルを新しいツールに適用しようとしています。それはしばらくの間はうまくいきますが、要点を見逃しています。
この変化が永続的であると確信している理由は単純です。そうでなければ、私は再び構築していないでしょう。
10年ぶりに実践的な開発に戻ることができる唯一の理由は、最初に私を押し出した制約がもはや適用されないからです。ソフトウェアは今、以前は単純に不可能だった方法で、ガイド付き実験を通じて進化できます。
これは経験が重要でなくなることを意味しません。それは異なる形で重要になることを意味します。価値は、もはや構文やフレームワークを覚えることにはありません。それは判断力、構造、そしていつ止めるべきかを知ることにあります。
これはソフトウェア開発の終わりではありません。しかし、古いモデルの終わりです。そして、一度この方法で作業すれば、後戻りはありません。

