通常営業一発目――存在しない郵便番号を入れてみた。
さて、本日から通常営業です。
ハル・エンジニアリング株式会社の代表取締役会長として、先週は暢気に夏休みを取り、沖縄旅行で盛り上がっていた世界とは全く違う世界を、本日からまた爆走します。
ということで、通常営業一発目。
とある仕掛中の弊社オリジナルアプリでのお話。
まだ現在進行形のものなので詳細は控えますが、ある程度形になってきたところで、
「使ってみてください」
ということになりました。
さて、皆さんなら最初に何をするでしょう?
普通なら、このアプリ本来の機能を試してみるのでしょう。
ところが私は違います。
私が最初にやったこと。
存在しない郵便番号を入力してみた。(笑)
何をやっているんだ、この爺さん。
そう思われるでしょうが、もちろん理由があります。
人間は間違える
アプリは、人間が使うものです。
人間が使う以上、入力ミスは必ず起こります。
正しいものを正しく入力して、正しい結果が出る。
これは当然大切です。
でも私は、弊社のアプリを動作チェックするとしたら、その一丁目一番地として、あえて間違えてみる。
今回なら、存在しない郵便番号を入力してみる。
私の目論見が正しければ、悲しきかな、そこで先へ進めなくなるのではないか。
つまり、正常ルートは作られていても、異常ルートまで十分に考慮されていないのではないか。
そんな意地悪なことを考えたわけです。
しかしだ。
この爺さんが考える程度のことなど百も承知。
いやいや、それ以前に開発技術者として、設計段階でその程度のことは当然考慮して作られているに決まっているだろう!
そうなれば、それでいい。
むしろ私は、そうなっていてほしい。
私が存在しない郵便番号を入力しても、
「会長、その程度は想定済みです」
と軽くあしらわれる。
そうなれば、もう爺さんがそこへ立ち入る必要はありません。
私が見たいのは、その一個の修正ではない
では、もしそこでNGだったらどうするか。
もちろん直してもらいます。
でも、
「存在しない郵便番号が入力された場合の処理を追加しました」
それだけで終わってほしいわけではありません。
私が本当に期待しているのは、その先です。
存在しない郵便番号を入れられた。
だったら、
未入力だったら?
桁数が違ったら?
数字以外が入力されたら?
必要なデータが見つからなかったら?
通信できなかったら?
外部のサービスが止まっていたら?
途中で想定外の操作をされたら?
……と、自分たちで考え始めてほしい。
私が投げた「1」をきっかけに、開発技術者自身の気付きと行動が「10」にも「100」にも展開されていく。
そこまで行けばいい。
というより、そこまで行けば爺さんの役目は終わりです。
ところが、AIと壁打ちしていて別の疑問が湧いた
まあ、この話自体は現在進行形です。
そんなことをAIと壁打ちしていたら、今度は私自身に別の疑問が湧きました。
最近はAIさんがコードまで書いてくれます。
しかも、ちょっとしたプログラムなら作れますよ、なんてレベルではない。
かなりのレベルまでプログラミングそのものをAIに任せられる時代になってきています。
そこで、先ほどの「異常ルート」が頭に引っ掛かりました。
ちょっと待てよ。
AIさんよ。
あなた、正常に動くコードを作るだけじゃなくて、
異常ルートまで勝手に考えてコードを書いているの?
入力ミスも、通信障害も、データが存在しない場合も、想定外の操作も……。
そこまで先回りして考えて、異常が起きた場合の処理まで設計してコード化してくれるのだろうか。
もし何も言わなくても、そこまで全部やってくれるレベルになっているとしたら……。
おいおい、本当に人間の技術者の出る幕が激減するじゃないか。
ということで、AIさん本人に聞いてみました。
AIさん、そこまでやってるの?
返ってきた答えを簡単にまとめれば、
「そこまで勝手に全部網羅されると思わない方がいい」
というものでした。
もちろんAIは典型的な入力チェックや例外処理などを気を利かせて入れることがあります。
しかし、
「この仕様でコードを書いて」
と頼んだからといって、考えられる異常ルートをすべて洗い出し、完璧に実装してくれる保証はない。
なるほど。
ちょっと安心した。(笑)
いや、安心している場合ではありません。
さらに話を続けると、
「異常ルートも考えろと明確に指示すれば、AIはかなりのところまで洗い出すことができる」
という。
それなら、
「想定される異常ルートを洗い出して」
「人間が入力ミスをする前提で考えて」
「外部サービスが停止した場合も考えて」
「異常が起きたあと、正常ルートへ戻れるようにして」
「それを確認するテストケースも作って」
と指示すればいい。
なるほどね。
ここで、もう一つ分かりました。
AIに任せる。でも、AI任せにはしない。
AIがコードを書いてくれる。
だったら全部丸投げ。
……どうやら、そういう話ではありません。
AIに何を考えさせるのか。
どこまで考えさせるのか。
出てきたものを見て、次に何を問いかけるのか。
そこには、まだ人間の役割があります。
そして、ふと思いました。
これって、AIに対してだけの話じゃないよね?
人間にもAIにも、同じことを期待している
私が若い技術者に、
「存在しない郵便番号だったらどうなる?」
という一つの問いを投げる。
それに対して、
「分かりました。そこを直しました」
で終われば、
1 → 1。
でも、その一つをきっかけに、
「じゃあ、こんな場合は?」
「こっちは?」
「ここが止まったら?」
「この操作をされたら?」
と自分で問いを増やしていけば、
1 → 10 → 100。
AIだって同じです。
最初の問いを一つ投げて、返ってきた答えを受け取って終了するのか。
それとも、
「じゃあ、これは?」
「別の視点では?」
「もっと壊してみたら?」
「ほかに見落としているものは?」
と問いを重ねていくのか。
結局、人間に対してもAIに対しても共通して重要なのは、
一つの問いから、10、100の問いを生み出せるか。
ここなのだと思います。
AI時代になって、答えを得ることはどんどん簡単になっていくでしょう。
だからこそ、これから重要になるのは、
答えを持っていること以上に、次の問いを生み出せること。
なのかもしれません。
そして、若い技術者たちにも期待しています。
私が投げた「1」を、そのまま「1」で返す必要はありません。
AIも使えばいい。
調べてもいい。
試してもいい。
壊してもいい。
そして、
10にも100にもして、逆にこちらへ投げ返してくれればいい。
そのうち、
「会長、こんなのも考えてみたんですけど」
と、私が頼んでもいないものまで持ってくるようになったら最高です。
そうなったら私は、
「おお、面白いじゃねえか」
と言いながら、また余計な「1」を思いつくのでしょう。
そして今日もまたループが始まる。
考えてみれば、今回の話だってそうでした。
始まりは、たった一つ。
「存在しない郵便番号を入れたら、どうなるんだ?」
それだけだった。
ところがAIと壁打ちしているうちに、異常ルートの話になり、AIコーディングの話になり、人間の役割の話になり、若い技術者に期待することの話にまで広がってしまった。
まさしく、
1から10へ。
10から100へ。
ということで――。
AI時代も、この爺さん、まだまだ十分に遊べそうです。(笑)

