PRを出せなかったので、入社して直接修正した話
(skeptrune.com)- Mintlifyの検索 race condition 問題を1年以上抱え続け、改善できずに不便を感じていた
- Mintlifyの検索エンジンサプライヤーである Trieve の創業者であるにもかかわらず、ベンダーとしては直接コードにアクセスできず、問題を修正できなかった
- 結局Mintlifyに合流した後、AbortController を用いて検索クエリの中断と結果同期の問題を解決した
- オープンソースなら PR で即時修正できたはずという点から、オープンソースの実質的な利点を強調している
- 小さな不便でも直接修正する過程で得られる満足感と製品改善の重要性を改めて実感した
PRを出せなかったので、入社して直接修正した話
1年以上悩まされていた Mintlify の検索バグ
- Mintlifyの検索機能では race condition によりクエリが重複して処理され、利用者が入力中に意図しない検索結果が表示される現象が続いていた
- Trieve という検索エンジンを Mintlify に提供するベンダー(外部事業者)の創業者だったが、コードベースへのアクセス権がなく直接修正できなかった
- この問題は何度も 共有 Slack チャネルで提起したが、優先度が低く長く放置された
- Trieve の検索体験が Mintlify 上で良くない印象を与えるたび、創業者として個人的なプライドとブランドイメージへの重圧を感じた
チームに加わって直接解決
- Mintlify に加わることで、コードベースに直接アクセスできるようになった
- 検索関数内に AbortController を実装し、以前の検索クエリを即座に中断するよう改善した
- これで利用者が入力するたびに、最新の検索結果だけが反映されるため、常に最新かつ正確な結果を確認できるようになった
- 長く不便だった問題を直接修正できたという満足感は非常に大きい
- 一時的に Twitter に入社してログインポップアップを修正した George Hotz のように、問題を見つけたら自分で解決するハッカー的/起業家的姿勢に意味を見出す
- このような直接的で実践的な問題解決の経験が、キャリアをより良い方向へ導く
オープンソースの実質的な価値
- 個人的にオープンソースソフトウェアの開発と活用を好む
- オープンソースであれば、外部開発者が**バグ修正や機能改善の Pull Request(PR)**を直接提出できる構造だった
- もし Mintlify の検索機能がオープンソースだったなら、1年間続いた問題を即時に PR で解決できたはずだ
- クローズドソースモデルの場合、コードへのアクセス権がある場合にしか改善できないという限界がある
- オープンソース環境の**「即時の権限付与」**の価値を認める一方、各社のビジネスモデルの違いも理解している
直接改善の価値
- Mintlify の検索機能がよりスムーズで反応性の高いものになったのは、この改善の成果だ
- 長期間気にかかっていた小さなバグを直接修正することで、製品の進化に貢献できたという満足感を得た
- 今回の経験を通じて、小さく些細な問題でも繰り返し修正する過程が製品をさらに優れたものにすると思った
- 直接修正した小さな変化が積み重なり、ユーザー体験が飛躍的に改善された
- 今後もこのような小さな改善の積み重ねで、より良い製品を作りたい
3件のコメント
www 尊敬します
サン開発者
Hacker Newsのコメント
以前、Amazonのアカウントが詐欺の疑いで停止されたことがある。かなり昔に作ったアカウントだったが、メールアドレスと電話番号は複数のDB流出を受けて削除していた。採用後、社内からAmazonの不正対策チームの担当者に連絡し、アカウントの復旧をすぐに解決できた。カスタマーサポートに問い合わせたときはまったく役に立たなかった
Amazonでいちばん腹立たしい点だ。Redditや他のレビューで商品を探すと、たいてい amazon.com のリンクに飛ぶ。このとき米ドルのアカウントに切り替えろと言われ、注文するにはまたドイツ/ユーロのアカウントに戻さなければならない。この手順が面倒すぎる。地域ごとに単に自由に見られるようにしてくれればいいのにと思う。注文しようとするときだけプロフィールを切り替えさせればいいのではないか。さらに、その地域の販売者から購入する選択肢もあってほしい
興味深い。Google入社時のオンボーディングでもらった壊れたスマホをまだ持っている。社内では誰も気にしていない。自分で直せるツールはあったが、許可なく使うと解雇されるというメッセージも貼られていた
Facebookのアカウントも9か月間解除できなかったが、たまたま社内の仕事をすることになって、すぐに解除された経験がある
人生でもこういうエピックな瞬間を体験してみたい
私にもこんな幸運があればよかった。Amazonアカウントを失った理由は、国際電話番号の先頭の数字が1つ間違って登録されていたからだ。そのせいでSMS認証が使えず、OTPアプリを入れていたスマホもその直前に壊れてしまった
Google Mapsが私を雇って、距離の単位を km だけ表示するようにしてくれるなら、連絡先は私のHNプロフィールにある。20年間で500回はマイルから km に切り替えた気がする。ユーザー分析をする会社がこんな基本をできていないのは信じがたい
500回もやったというのが本当にありえない。ユーザー参加率が低くてA/Bテストで失敗する流れを想像してしまう。7回面接を受けて1件のPRを出したらこうなった、みたいな感じだ
地図全体を「実寸 1cm=1cm モード」にズームして旅行全体に適用するようにした担当者を見つけて一発殴りたい。たぶん、手動ズーム時に車が画面外へ出るのを放置し、「再センタリング」を押すと元に戻して強制的にズームし直すところまで作ったのも同じ人物だろう。2005年のカーナビですらこういうことは全部解決していた
メキシコ旅行中にログインしていたのに、Google Flightsがタブを新しく開くたびにドルからペソへ切り替えてしまった。本当に気にしていないようだ
10年前にGoogleで働いていたとき、社内フィードバックフォームでこの問題を報告したが何の返答もなかった。その後も毎年Google Mapsのフィードバックでこのバグを報告してきた。年によっては2回送った。今では本当に恥ずかしいバグになっている
gmaps関連の仕事にも興味がある。1時間以上かかる経路なら、事前に帰り道もキャッシュしておいてほしい。電波が届かないときに道を覚えなければならず、困ることが多い
昔からのジョークが実際に現実になるのを見るのは面白い。(また)左マージンを追加してほしい。画面の端でテキストを読むのが少し落ち着かない
記事中のリンクをたどっていたら、Appleで期限切れのパスを自動削除する機能を導入して、その直後に退職した事例を見つけた。これからその機能を使うたびに心の中で感謝しようと思う。本当にイライラする問題だった
いっそOPに直接雇われて直すほうがいいのでは、という冗談
私は画面スペースを無駄にするサイトがあまり好きではない
私は左寄せが好きだ。そこが本来テキストのあるべき位置だと思う
debounced search function に AbortController を追加して、ユーザーが新しい入力をするたびに前のクエリを中断するようにしたと説明している。ユーザーがまだ入力し終えていないのに、フィルタや検索が先に適用されてしまうのがいちばん腹立たしい。完全に入力し終わるまで待ってほしい
Grafanaのログ検索では、現在適用中のログフィルタを変更すると、文字を1つ変えるたびにクエリ件数で課金される。このせいで自分のUX上の使い方を変えざるを得なかった。探している文字列全体ではなく、文字数ぶんだけコストが発生するからだ
自分のブログに検索のライブ更新機能を実装したときは、以前の検索候補をすべて完了させてから新しいリクエストを送るようにした。サーバー負荷を防ぎつつ応答性も維持できる、合理的な方法だと思う
特に予約サイトでこれが嫌いだ。フィルタが左サイドバーに出るのだが、画面に全部収まっていないと、操作するたびに毎回上へスクロールされ、読み込みが入り、フィルタが読み取り専用になって、全部終わるまで待ってやっと次を追加できる
良い折衷案は、ユーザーが入力をやめてから数百ミリ秒待ってクエリを送る方式だと思う。あるいはクエリ自体は送るが、入力が止まるまでは結果を表示しない方法も検討に値する
こういう挙動は本当に嫌いだ。凝ったコードエディタで文字を打つたびに警告音が鳴るのと同じだ。
iとfを打った瞬間に「if-then文が閉じられていません!」と出たら、まだ入力中だと分かっているのに過敏すぎる。書き終わってから通知が出るほうがましで、たいていの言語やツールではこうしたリアルタイム通知はオフにして、ビルド/実行時だけエラーを見るようにしている。LSP(Language Server Protocol)は少し落ち着いてほしい今はバグが気になるなら、採用されて自分で直すほうが簡単なくらいソフトウェアの品質が低い。GTA 5のロード問題を解決したプログラマの話を思い出す。あれほど金のあるGTA 5ですら品質改善は簡単ではなかった
これは品質の問題ではなく優先順位の問題だと思う。会社はユーザーが望むことより、チームがやりたいことを先に選ぶ。実ユーザーテストやデータ実験が足りない。この事例は実際、問題の解決策というより現実の問題の一断面だろう。もっと有用なイシューがたくさんあるはずなのに、1人が自分の望んだ機能だけを追加した状況だからだ
GTA:Oでカードに大金を使う人たちはロード時間など気にしていなかった。私は腹が立って時間を測ってみたら、実際のミッションよりロード画面を見ている時間のほうが長いと分かり、そのままゲームをやめた
もしかしてインターネットミームに出てくるあの人は君なのか、という冗談
記事では採用の部分がまったく触れられていないので気になる。「何かが自分を悩ませていて、会社に入ったおかげで直せた」程度にしか見えず、話の核心が抜けている感じだ
逆に、私は以前、IP弁護士たちのせいでオープンソースコードにPRを出すのが不可能な職場で働いたことがある。それでも、正確な入力値とバグの行番号を詳しく説明すれば、誰かに直接修正してもらえるよう説得できた。コードの代わりにQA(品質保証)レポートを無償提供していたようなものだ
George Hotzが2022年にTwitterへ短期間参加して、ログインポップアップ削除の問題を解決したという伝説的な出来事を思い出す、という意見。ただし私の記憶では違う。George Hotzは「検索を直せる」と主張して、ほとんどすぐに去り、最後に慰め程度にポップアップだけ消した
今回、George Hotzとパテントトロール、それから comma.ai についてまた調べるのに少しハマってしまった。George Hotzの Comma.AI は、999ドルの「comma 3x」スマートフォンと OBD-II コネクタ、99ドルの配線ハーネスで、ここ10年以内に製造された大半の自動車(Teslaさえ含む)にAutopilot級の機能を追加できる。総額は 1098ドル。オープンソースとして GitHub に公開されており、車両への ssh 接続までサポートしている。任意のクラウドサブスクは月10ドル(自前SIM)または月24ドル(販売者データ込み)。ただし Tesla Sentry Mode に相当する機能はまだなく、issue #29912 として残っている。元祖Teslaの Sentry Mode は 250W を使う。80kWh のバッテリーなら7日で80%から30%まで落ちる。openpilot が 5W 未満で済むなら、はるかに効率的だろうと思う
George HotzはTwitterに入社したと吹聴しておきながら何もせず静かに去ったと記憶している。気まずく、本人が自分で招いたことだと思う
記事をより正確に修正したうえで、同時に Github Pages のバグでブログ自体は下ろしたと語っている
最後にはTwitter全体を作り直そうとElonに提案していたと記憶している
個人的には、巨大絵文字をトグル設定に変えるPRを出したくてDiscordに応募するところまで考えた。私だけでなくサーバー全体が切実に望んでいる
効果があるかは分からないが、自分では絵文字の後ろにピリオドを付けて一時的に回避している。新規ユーザーには意味がないが、自分用の応急処置にはなる
DiscordはElectronアプリなので、理論上はクライアント側のモッドで変えられそうだ。ただしアカウント停止のリスクは分からない
どういう意味か尋ねるコメントもある。たとえば
:)のような顔文字の自動変換をオフにするオプションはある、と説明している