💡Listoru(リストル)は、Web上の情報から企業の営業リストを自動で収集・作成するツールです。
この「企業DB開発日誌」では、数ある機能の裏側に隠された、私たちの試行錯誤を綴っていきます。
エラー画面には出ない問題や、データとの静かな対話から見えてきたもの。
正解のない開発現場のリアルな空気を、少しだけおすそ分けさせてください。
今日もリストルの裏側で起きた、ひとつの物語をお届けします。

100社で1時間半かかる作業を機械化する

リストルには、企業のホームページから連絡先を拾ってくる機能があります。
企業データには、空欄がつきものです。
電話番号は入っているが、メールアドレスがない。
住所はあるが、問い合わせページの場所が分からない。
その会社のホームページには、たいてい書いてあります。
会社概要のページ、フッター、お問い合わせのページ。
人がやれば、1社1分で埋まります。
1社なら。
100社になると、1時間半以上かかります。
だから、機械にやらせています。
サーバーへの負担を考慮した「2秒の礼儀」
埋まっていない欄があると、その会社には連絡できません。
空欄の数だけ、会えない会社があります。
この機能を作ったとき、私たちは1つ決めごとを置きました。
1社処理したら、2秒待つ。
理由は単純です。
相手先のサーバーに負担をかけたくなかった。
短い間隔で何度も読みにいくのは、
相手にとって迷惑になり得ます。
場合によっては、攻撃と見分けがつきません。
だから、間隔を空ける。
これは、ネットワークを使う道具としては、当たり前の作法です。
私たちはそれを「礼儀」と呼んで、2秒を入れました。

内訳を見て気づいた「待ち時間」の割合
決めたときは、いい判断をしたつもりでいました。
実際、半分は正しかったのです。
残りの半分に気づくのは、ずっとあとになります。
2秒という数字にも、根拠らしきものはありました。
短い間隔で繰り返しアクセスすると、
相手の仕組みから、機械だと判断されることがあります。
そうなると、読めなくなる。
だから、人が操作するくらいの間隔を空けておく。
2秒という数字は、そのあたりから来ています。
正しい考え方です。
ある日、この機能の所要時間を測りました。
疑いがあったわけではありません。
速いことを確かめて、安心するつもりの計測でした。
100社分で、約8分。
遅くはない、と思っていました。
人が同じことをすれば、比べものにならない時間がかかります。
1社1分なら、100社で1時間半。
それが約8分で終わるのだから、十分に速い。
比べる相手を人にしているあいだは、そう見えます。
ただ、内訳を見て、手が止まりました。
処理そのものにかかっている時間より、待っている時間のほうが長かったのです。
礼儀のほうが、仕事より重い。
内訳は、こういう形でした。
1社を読みにいって、返事が返ってくるまでの時間。
返ってきたページから、必要な情報を取り出す時間。
そして、次へ行く前に立ち止まる時間。
3つ目だけが、こちらで決めた数字です。
他の2つは、相手の都合とこちらの処理能力で決まります。
早くしようと思っても、限度があります。
3つ目には、限度がありません。
こちらが決めた数字が、そのまま時間になります。
そして、その数字を決めた理由を、私たちはもう一度、確認していませんでした。
誰もいない相手に向けた「配慮」
ここで、はじめて考え直しました。
なぜ間隔を空けるのか。
答えは「相手先に負担をかけないため」です。
では、その相手先とは、誰のことか。
この処理は、1社につき、その会社のホームページを1回読みます。
必要なページが数ページあれば、数回。それだけです。
次の会社は、まったく別の会社です。
サーバーも違う。運営者も違う。
共通しているのは、こちらがアクセスしているという一点だけ。
つまり、A社を読んだあとにB社を読んでも、A社には何の負担もかかっていません。
短い間隔で同じ相手を叩き続けるのが問題なのであって、別々の相手に1回ずつ訪ねるのは、問題ではない。
A社のサーバーは、こちらが立ち去ったことを知りません。
B社のサーバーは、こちらが来ることをまだ知りません。
その2社のあいだで、こちらだけが立ち止まっていました。
私たちが2秒待っていた相手は、
どこにもいませんでした。

待つ理由を正しい単位で置き直す
直し方は、待つのをやめることではありませんでした。
待つ理由を、正しい場所に置き直すことでした。
同じ相手に続けてアクセスする場合は、いまも間隔を空けています。
そこは、礼儀が本当に必要な場所です。
違う相手なら、待つ必要がない。
それどころか、同時に読みにいって構いません。
そこで、複数の会社を同時に読み込む形に変えました。
1社を読み終わるのを待ってから次へ行くのではなく、何社かを並べて、返ってきたものから順に処理していく。
同時に走らせる本数には上限を置きました。
無制限にすると、今度はこちらの回線と、こちらのパソコンに負担がかかります。
そしてもう1つ、条件を足しました。
同じ相手のページを続けて読む場合は、間隔を空ける。
1社の中で、会社概要とお問い合わせのページを続けて読むことがあります。
そこは、同じ相手です。
つまり、間隔を空ける単位を、「処理した社数」から「同じ相手かどうか」に変えました。
同じ数字を、正しい単位で使い直した。
それだけの変更です。
結果は、こうなりました。
100社で約8分だったものが――約1〜2分。
「反論しづらい言葉」が思考を停止させる
直したあと、相手先への影響も確認しました。
同時に読みにいく、と言っても、同じ相手に対する回数は増えていません。
1社につき、必要なページを読む。それだけです。
増えたのは、こちらが同時に扱う相手の数だけ。
相手から見れば、以前と同じ1回の訪問が、少し早い時刻に来ただけです。
そこを確認してから、切り替えました。
この件で反省したのは、速さのことではありません。
「相手に配慮している」という言葉が、中身を確認せずに通ってしまったことです。
配慮という言葉は強い。
反論しづらい。
それらしく聞こえる。
だから、誰も「その配慮は誰に届いていますか」と聞きませんでした。
あとで「検算」できるコメントを残す
問いの形にさえすれば、答えは一瞬で出るものでした。
「届いていません。」
誰も問いの形にしなかったので、答えだけが、いつまでも出ませんでした。
似た話が、他にもありました。
安全のために置いた上限。
念のために入れた確認。
とりあえず控えておいた記録。
どれも、置いたときには理由がありました。
問題は、その理由が今も生きているかを、誰も見直さないことです。
置いた本人でさえ、しばらく経つと「昔からそうなっている」の側に回ります。
いまは、こういう決めごとを置いています。
待つ処理を書くときは、そのすぐそばに、待つ理由を書く。

「相手に負担をかけないため」では足りません。
どの相手に、何回続けてアクセスする場合の話なのかまで書きます。
そこまで書けないなら、その待ち時間は要らない。
書けるなら、あとで読んだ人が検算できます。
コメントを書く目的は、説明ではなく、検算できるようにすることでした。
いま、この機能は1〜2分で終わります。
そのあいだ、相手先のサーバーは、以前とまったく同じだけの回数しか読まれていません。
減ったのは、こちらが立ち止まっていた時間だけです。
礼儀のつもりだったものが、ただの待ち時間でした。
誰にも届いていない礼儀を、私たちは8分ぶん、律儀に守っていました。
8分と1分の差は「あとでやる」と「いまやる」の差
速くなって、変わったことがあります。
以前は、100社分を流すのに8分かかるので、
まとめて夜に走らせていました。
朝、結果を見る。
いまは、その場で終わります。
気になったリストを、思いついたときに流せる。
結果を見て、条件を変えて、もう一度流せる。
8分は、待てない長さではありません。
ただ、待つあいだに、人は別の作業を始めます。
始めた作業から戻ってくるのは、たいてい翌日です。
待ち時間が消えると、使い方まで変わりました。
8分と1分の差は、7分ではありません。
「あとでやる」と「いまやる」の差でした。
━━━━━━━━━━━━━━━━━━━━━━━━
次回予告
第5話「161キロバイト」
同じ会社かどうかを判定した記録を、念のため、丸ごと残していました。
1件あたり、161キロバイト。
結論は、数十文字で足りていました。
━━━━━━━━━━━━━━━━━━━━━━━━
リストルは、今日もどこかを直しています。
→ 成果を出す営業リスト3000件が無料で試せる👇
📝営業リスト収集ツール「リストル」

営業リスト収集ツール「Listoru(リストル)」| 最短3分で3,000件取得営業リストで新規開拓を仕組み化!Listoruは270以上のWebサイトから企業リストを自動収集。今すぐ無料で体験!www.listoru.com


