初めまして、株式会社DigeonでPMをしている伊藤誠也です。
来年、再来年と、急になにがどうなっているかすら想像がつかなくなったこの大AIコーディング時代に、一番おもしろいことを発見してしまったことをお伝えしたく、筆を取りました。
この時代だからこそあえて全て手書きで書く駄文でございますが、小目汚しお許しくださいませ。
作られ続けてきた負債
いきなりですが、この話だけは受託システム開発を語るに外せないので、この話題から始めていきます。
あなたは負債と聞いて何が思い浮かびますか?
カードローン、住宅ローンのような個人のもの、
国債のようなよくわからないでかいもの、
いろいろとありますけれども。
私はシステム屋としてまず思うことは、
「この世に作られてきたシステムが全て負債である」
ということです。
これは全面的にネガティブな批判ではなくて、よく言う技術的負債に加え、将来にわたるサーバー費用、保守や改修コスト、それにとどまらない負債的性質があるという指摘が一般にもされています。
まさしく負債というべき負債を嘆かなければならない
私はおそらく今まで、大小30ほどの様々なシステム開発プロジェクトに様々な形で関わってきました。
その中で感じたこととして、あまりに負債らしい、資産と呼ぶべき側面に目がいかないほどのシステムが多すぎる。
妄想なのか、経験なのかはさておきますが
- 万に達するマスタデータをフロントエンドに全てfetchしてから動きだすeラーニングシステム(まず自身が学びなさい)
- 数十万のユーザーレコード検索にindexのチューニングがなされていない会員管理システム("管理"とは???)
- 必ず消費税計算に誤差が出る基幹システム(ちゃんとしてくれ)
- ...
こんな出会いがあると、受託システム開発屋としてハイにならざるを得ません。キリッ
いただいた仕事に対して普通にシステムを作るだけでも、負債返済どころか、やたらと大きな付加価値を相対的に生んでしまう絵を描けるわけです。
これを一つ一つやり切ることほど気分が良いことはないです。
だが現実はむず過ぎた
2年やって気づいた。
普通のシステム開発、普通にバリむずい。(吐血)
会社が成長を目指して開発するシステムの規模、案件数が大きくなる中、
正社員採用のかたわら、足りないリソースを埋めるために外注エンジニアの調達をして高くつく支出をし、
顧客要望と開発工数、新参エンジニアの教育コストを全て加味して試行錯誤し...
そのように悪戦苦闘しても、どうしても会社として利益を出すことと品質や要求の達成の計算があいません。
やらなければならないことの現実、ただの金額的コスト、やらなければならないことを知らない人に伝えて実現させていく時間的精神的コスト、やりたいと言われたができないことを合理的に断るための筋書き作り...etc
自身が取れる選択肢を組み合わせたそれぞれの解と向き合った私は、とうとう、アニメ監督の道を志します。(ここからは幻と現実のはざまにいます)
- 第一話:削られるページネーション
- 第二話:忘れられた負荷テスト
- 第三話:「大丈夫、運用でカバーできるからさ」
第四話:夜空にきらめいた、それは、5.17コーデック彗星と名付けよう
ChatGPTにインフラの相談をポチポチとしていると、Pro版を契約していた私には、そう、あれはサイドバーだった、
"Codex (新規)"
のメニューが、やけに光って見えたんです。
おもむろに開き、おもむろにgithubを連携し、linearに登録されていたバグ修正タスクをコピーして貼り付けてみました。
誰かに振るのか、自分で終わらせてしまうのか、考えるのも手を動かすのも面倒だったタスクに、10分でケリがつきました。
言わずもがな、全てを変えたAIコーディングの時代の到来
Digeon社内でPMと呼ばれる職種は、結局のところまだまだ、「開発と納品を最後までやり遂げさせる人間」という位置づけです。
要件定義、デザイン、設計、タスク管理、開発、外注メンバー探し、テスト、顧客折衝、保守業務...システム開発において発生する業務は状況に応じてなんでもやることになります。
そこで必然的に起こった変化として、弊社のPMは"開発"の部分をCodexに大量にやらせるようになりました。
体感としては、PM兼開発者としてのタスク起票と開発完了までのリードタイムが、おそらく数時間~数日という規模から、多くが十数分~長くても1,2時間という短縮を達成できたように思います。
今までの経験の中で段違いに大きかった案件をちょうど受け持っていましたが、Codex開発ハイを数か月乗りこなし、かなりの部分をそれでなんとかしてしまえたほどでした。
開発における人的リソースのボトルネックがこれによって解消されることを体感できました。
しかし私が今回伝えたいのは、このことではないのです。
そこで問います。あなたはAIコーディングツールを、どのように捉えていますか?
AI CLIツールは、散らばってるテキストを体系的に触ってくれるツールってこと
PM兼開発者をしていると、PM側のタスクとして要件定義書を書いたり、タスクを書いたりと、文章を書くことも多いです。
そこで気づきました。
あれれぇ~~、RFPから要件定義書の草稿作れるんじゃない?
ミーティング議事録から適切に要件定義書の差分作れるんじゃない?
要件定義書から適切に設計書作れるんじゃない?
設計書が完全無欠に完成してたら全部そのままAIに作らせられるんじゃない?
完全無欠な設計書があればテストケースも完全にAIに設計させれるんじゃない?
設計書が完璧かどうかAIにレビューさせれるんじゃない?
全部テキストだからね!!!!!!!
X駆動開発
上記のノリの現れが、世にいうAI駆動だったり仕様駆動だったりするのでしょう。
そういった、誰かがまとめた体系に乗っかることも一つだと思います。
ただ、実際の受託案件で顧客折衝や開発をしている限りでは、なにかが噛み合わないような感覚がある。
考えていくと、それは、先端のAIと触れて革命を味わっているこの感覚と、そうではない一般の人たちとのギャップに起因していると感じるようになりました。
結局、今、物事の決定権を持っている方々と会話して合意形成を取り付けるのに必要な資料は、新たに生み出されてきている概念によって達成するには足りないものがある。
では、なにができるのか、どのようにすればよいのか。
私たちは、そういった人たちにとっての、AIの恩恵を届ける最初のインターフェースになることで、プロジェクトを成功に導けばよい、と思うようになりました。
PMはAIに仕事をさせるためのインターフェースである
技術力や開発力に特化した観点でのAIの発展はあまりにダイナミックで、何駆動なのか、といった考え方は個人的には些末な差だと見ています。
しかし、どこまで行っても、意思決定をし、なにをどんなふうに作り上げて完成に向かわせるか、のオーケストレーションはこれからも人が担うと思っています。
開発プロジェクトにおけるAI活用の方向性の導き方によって、一つ一つの細かな品質やプロジェクトの成否を大いに左右するのはやはり人であろうと思います。
プロジェクトを成功に導くための、
先ほど例に挙げたようなただ開発タスクをさばくだけではない、
最大限にAIを活かしきる体系そのものを設計して作り上げ、
それを顧客とともに営むこと。
それが今やらなければならないことであり、現実に達成できることだと考えています。
これっておもしろすぎるよな
こうして得た能力をもってして、私たちはなにができるか。
受注する全案件において、あらゆる側面で最高のシステムを作り上げることができます。
顧客とAIの間に最も良い形で立つことで、社会にたまった負債という負債を、人的リソースのボトルネックに囚われずに、美しいUI/UXと設計と最適なインフラまで突き詰めて納品し、圧倒的資産に生まれ変わらせることができます。
これは、私たちの考えたさいきょーのAIの働かせ方によって、ドデカ少量多品種生産可能な特注システム量産工場の工場長をやる、工場そのものを設計するということです。(急な前職味)
私が今考えているのはこんなことです。
こんなことができるって、おもしろすぎるって思いませんか?
この文章を読んで、社会を、地道ながらも、圧倒的に前に進める実感を得られる仕事を一緒にやりたくなったら、カジュアル面談でもお声がけくださいませ。
ありがとうございました。