3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PoC と本番の線引きは、たいてい誰も引きません。

動くものができると、それを誰かに見せます。良い反応が返る。もう少し人を増やして使ってもらう。気づくと、何人かが日常的に使っている。でも、それが「本番」になった瞬間は、どこにもありません。

リリース判定をした覚えもないし、運用に乗せた覚えもない。PoC のつもりのものを、いつのまにか人が頼りにしている。

それでしばらく回ります。回ってしまうから、線を引く動機もない。

うお、これ本番じゃん、と気づくのは、たいてい何かが変わるときです。

線がないと、消えるときも静か

本番なら、止めるときに手続きがあります。誰に影響するか確認して、代替を用意して、告知して、止める。

でも、本番だと誰も思っていないものには、その手続きが発動しません。

作った人が異動する。チームの体制が変わる。部署ごと解散する。そのとき、誰も「あのツール、止めて大丈夫ですか」と聞かない。本番じゃないから。PoC の延長だと、全員が思っているから。

そして、静かに消えます。

困るのは、黙って使っていた人

ここが、自分が一番引っかかったところでした。

消えたとき、作った人は困りません。もう別のことをやっている。止めた組織も困りません。そんなものがあったことすら、把握していないこともある。

困るのは、それを日々の作業にこっそり組み込んでいた人です。

毎朝それで確認していた。資料を探すのに使っていた。下書きを作らせていた。声の大きい使い方ではない。誰にも申告していない。ただ、自分の手元が、それで少し軽くなっていた。

ある日、それが動かなくなる。問い合わせ先もない。代替もアナウンスされない。

え? と思う。でも、誰に言えばいいのかも分からない。本番のツールではなかったから、困っていることを表明する窓口すらない。

地味に、でも確実に、その人の作業は元に戻ります。軽くなっていたぶんだけ、重くなる。

そして、もう一人困る人がいます。データを出した人です。

この手のものは、たいてい誰かの協力で立ち上がっています。BKM を言語化してくれたベテラン。ラベル付けに付き合ってくれた人。「業務改善になるなら」と、暗黙知を資料に起こしてくれた人。その協力には、これは本番で役に立つはず、という前提が乗っていました。

入り方は、たいてい軽いんです。「こんなのできたんですけど、ちょっとデータ見せてもらえませんか」。断る理由もない、小さなお願いから始まります。そこから、ラベルを付けてほしい、この判断の基準を言葉にしてほしい、と少しずつ広がる。気づくと、一番手を動かしているのは、最初に軽く頼まれたドメイン側の人です。フットインザドアで入って、結局いちばん働いたのが提供者だった、という形になります。

それが、線を引かれないまま静かに消える。残るのは、あれは何だったんだ、という感覚です。散々協力したのに、何に使われ、なぜ消えたのかも知らされない。

これは、使っていた人が困るのとは質が違います。使っていた人は、これから手が重くなる。データを出した人は、過去の自分の協力が、後から宙に浮く。

協力には、信用が乗っています。これは本番にする、と作り手が口で言わなくても、提供する側はそう受け取って手を動かす。線を引かないまま消すというのは、その前借りした信用を、黙って踏み倒すことに近い。

これは、設計の失敗ではない

面白いのは、これは技術的な失敗ではないことです。

コードは動いていた。精度も足りていた。使われてもいた。直せなくて死んだわけでも、使い所が分からず消えたわけでもない。

死んだ理由は、PoC と本番の境界を、誰も引かなかったこと。それだけです。

境界がないものは、本番として扱われない。本番として扱われないものは、止めるときも本番の手続きを踏まない。だから、依存していた人と、協力した人だけが、予告なく取り残される。

決めていなかった場所だけが、後から問題になる。これは、その一番静かな形です。

では、どこで線を引くか

難しいのは、「いつから本番か」を作った人が宣言しても、あまり意味がないことです。本番かどうかを決めるのは、作り手の宣言ではなく、誰かがそれに依存し始めた事実の方だからです。

だとすると、引くべき線はこうなります。

このシステムに、申告していないかたちで依存している人がいるか。いるなら、それはもう本番です。止めるときには、その人に届く手続きが要る。

誰のための agent / RAG なのか。それが決まっていれば、止めるときに誰へ届ければいいかも決まる。決まっていなければ、止まったことに誰も気づかないまま、依存していた人と、データを出した人だけが困る。

そして、線を引くというのは、使う前の約束でもあります。誰かにデータを出してもらう時点で、これを本番にする責任を、こちらは前借りしている。引くべき線は、止めるときだけでなく、協力してもらうその瞬間にもある。

結局これも、責務の話に戻ります。動くかどうかでも、設計が正しいかどうかでもなく、誰がそれに依存し、誰がそれに協力したか。そして止まったとき、誰がその人たちに責任を持つのか。その一点を、PoC のうちに決めておくか、本番になってから事故で気づくか。

その差だけです。

これは、一回では終わらない

もう一つ、これを個人の話で終わらせられない理由があります。このパターンは、一回ごとに信用を削っていくからです。

そもそも、ドメイン側の協力を十分に得られず、壁を越えられないまま静かにフェードアウトした PoC も、同じ跡を残します。壁の手前までは、それでも誰かに一度は「データを見せて」と頼んでいる。そして、その多くも、本番にならずに消えていく。

これが、機械学習や深層学習が流行った頃から、各社で何度も繰り返されてきました。データを少し出してくれ、ラベル付けを手伝ってくれ、ナレッジを言語化してくれ。その多くが、線を引かれないまま PoC で終わった。提供した人は、そのたびに「あれは何だったんだ」を一つずつ積みます。

一回ごとは、ただの地味な失望です。でも、回数を重ねると「またか」になり、最後は「どうせ消えるんでしょ」になる。ドメインの壁は、技術だけで高いのではなく、こうやって年々高くなっています。

残酷なのは、この枯渇が次のプロジェクトに課税されることです。今、真面目に「本番にするつもりでデータをください」と頼んでも、相手はもう、何度も同じお願いが PoC で消えるのを見てきている。作り手個人の誠実さとは関係なく、業界が前借りした信用を踏み倒し続けたツケを、後発の真面目な人が払う。

LLM や RAG のブームで、また同じ「データください」が大量に発生しています。線を引かないまま進むと、そのうちの多くがまた静かに消えて、次に「データを見せてくれ」と言う人のハードルを、もう一段高くします。

線を引くというのは、だから自分のプロジェクトを守る話だけではない。次にデータを頼む誰かのために、信用をこれ以上削らない話でもあります。

では、PoC で終わらせないために

ここまでの話は、結局すべて「PoC のうちに、誰のどんな責務を引き受けるのかを決めておく」一点に戻ってきます。誰が依存し、誰が協力し、止まったとき誰が責任を持つのか。それは、本番で事故ってから考えることではなく、動くものができた時点で言葉にしておけることです。

この話で出てきた「誰のためか」「誰が止まったことに気づくか」「誰が責任を持つか」を、自分の設計に当てて一問ずつ確認できる形にしたものがあります。

点数も合否も出しません。一行で答えられるかだけを見ます。答えに詰まった問いが、そのシステムが本番化で死ぬ場所です。

→ 運用の現場から見た、本番で動かないRAG / AI Agentの設計チェックリスト

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?