まえがき
「生成AIで業務効率化」なんて、デスクワークなら多くの人が直面している課題だと思う。
このやたらフワッとした題目だが、本質的には「凄いソフトウェアが出てきたので使っていきましょう」というだけという話になるのでは?というのがここ最近の自分の思うところだ。
ところが、あまりに汎用的なものだから使いこなすのが難しい。生成AIモデル自体の性能は既に十分な域に達していて、生成AI自体の進化よりもそれを活用した新たなソフトウェアこそが求められているというのは多くの人に共感いただけるのではないだろうか?
これをAIエンジニアリングと呼んだりもするらしい。
要するに「生成AIを使いこなすにはソフトウェアを書けた方が良い」という話。ソフトウェアを書くのも生成AIにお願いすれば良いというのはあるが、作らせるにしても作りたいものの全容をイメージ出来ないと難しいだろう。
ソフトウェア設計の難しさ
さて、そうしてコードを書いて業務を自動化しようとした際に直面するのがソフトウェア開発の難しさだ。
直面する壁なんていくらでも考えられるが、一旦開発環境はあるものとしよう。開発者にも基本的なプログラミングの知識はあるものとする。そうしてスタート地点に立った時、ソフトウェア設計の難しさが見えてくる。
業務における良いプログラム
自分は、業務における良いプログラムというのは2種類あると考えている。
1つは「数日程度で開発される、使い捨てのプログラム」
もう1つが「それ以上のスパンでの開発を前提とした、機能拡充に強いプログラム」
野良アプリが負債たる所以
「使い捨てのプログラム」というのは所謂野良アプリと呼ばれるものを想定している。
野良アプリというとマイナスな印象を持たれがちだ。よく「負債」と表現されるのを見るが、言い得て妙だと思う。
借金というのは返済計画が確かならば利益をもたらす投資である。ごく短期間で成果を得るために、長期的に維持することを前提としないソフトウェアというのは業務において間違いなく価値のある代物だ。
ただ、繰り返しになるが将来的に負債を清算することは大前提である。
行き当たりばったりの修正や機能追加を繰り返せばたちまち手に負えない巨大スクリプトが出来上がる。
万が一にもそれなしに業務が回らない状況にでもなれば、自転車操業といって差し支えない。
ここまで野良アプリを育てるのにも以前は技術が必要だったと思うが、生成AIのある今なら世界中で秘伝のタレが量産されていそうなものである。
価値ある「使い捨てのプログラム」を書く方法は単純明快である。「単一の業務フロー」を生成AIに書いてもらう。別の業務フローを自動化したくなったら機能追加ではなく都度生成AIに書かせる事だ。速度こそが命である。
柔軟さこそがソフトウェアの長所
でも、そういった野良アプリの集合では物足りない場面が出てくる。これらが協調して全部自動でやってくれたら良いのにと。その時こそ「それ以上のスパンでの開発を前提とした、機能拡充に強いプログラム」の出番だ。
最近、ソフトウェアに関して非常に共感できる投稿を見かけた。
3はともかく、1・2はカルチャーギャップと期待のミスマッチであって普遍的な真実ではないと思う。事前に†すべての要求†のようなものを並べてモノを作ってみること自体はソフトウェアであろうがなんだろうが可能なのだけど、そのやり方は"ソフト"のメリットを放棄しているので大したものはできない。 https://t.co/GkPoduWku1
— sksat (@sksat_tty) November 17, 2025
変更の容易さがソフトウェアの強みであるという話で、とりあえず作ってみて改良し続けるというのはソフトウェア開発における基本姿勢だと自分も思う。であるならば、良いソフトウェアという物には作り始めた後に見えてくる要求を広く受け止められる、機能拡充のしやすさが求められるのだと考える。サステナブルな時代だしね。
まとめ
これらを踏まえ、クリスマスまでの4週間弱、Pythonで持続可能なソフトウェア開発をするために、如何に変更に強いソフトウェアを作り上げるのかという話を投稿していこうと思う。
Pythonでと銘打っているものの最初の2週間は汎用的なソフトウェア設計論を、後半からPythonのコードを踏まえた話を展開していく。
最後の方が埋まっていないが、書いていく中で触れたい事が変わっていくと思うので最終的には全て埋まるはず。
見ての通り全然書き上げられていないので完走の為にもリアクションを頂けるととても嬉しい。
雑談
最近ようやくダンジョン飯を観まして。原作は読んでいなくてアニメだけですが、灰になる男の元ネタここだったんか!ってなりました。2期を早く作って見せて欲しい。
