世界を動かす技術を、日本語で。

良いソフトウェアは、いつ停止すべきかを知っている

概要

  • Linux のアップグレード後に lsコマンド がAI化するという架空のシナリオ
  • ソフトウェアは本来の目的を理解し、 過剰な機能追加 を避けるべきという主張
  • 37Signals の書籍から学ぶプロダクト設計の原則
  • シンプルさや 本質的な価値 を重視する姿勢の重要性
  • トレンドに流されず、 役割を守ること の価値

ソフトウェアの進化と本質的な価値

  • ある朝、 Linuxディストリビューション とパッケージを最新バージョンにアップグレード
  • 再起動後、いつものように lsコマンド でディレクトリ内容を表示しようとする
  • しかし、lsが突然「AI-Powered Directory Intelligence™」として進化し、 Adaptive Listing System(als) への移行を促す通知が表示される架空の出来事
  • lsの従来の役割が AI予測やランキング機能 に置き換えられ、30日後には従来版が非推奨となる警告
  • 幸いにもこれは現実ではなく、 良いソフトウェア は自らの目的を理解し、過剰な進化をしないという教訓

37Signalsの教えとプロダクト設計の原則

  • 37Signals(Basecamp創業者) による書籍「Rework」「Getting Real」から学ぶプロダクト設計の知恵
    • 制約こそが 意思決定を洗練 させる
    • ユーザーの要望を そのまま実装せず、根本的な課題を見極める
    • 早くリリースし、頻繁に改善 することで現実的な価値提供
    • UI設計は周辺部分ではなく 本質から着手
    • 機能追加は デフォルトで「NO」、複雑さや保守コストを意識
    • 自分自身の課題 を解決するものを作ることで良い判断ができる

流行や過剰な変化への警鐘

  • Minio がAIStor、 Oracle Database がOracle AI Databaseへと変貌する現代
  • すべてを「AI化」する風潮に対し、 本質的な役割を守ること の重要性を再認識
  • 既存の標準的なツールやソフトウェアが 安易にトレンドに流されず、本来の価値を保つことの意義
  • 変化や進化 が常に必要とは限らないというメッセージ

Hackerたちの意見

スポティファイの音楽抽出ツール「ハーモニ」を作ったんだけど、これで完成かな。プレイリストをダウンロードするのに役立つし、技術に詳しくない人でも使えるようになってる。

でも、Spotifyは動き続けるターゲットだよね。APIが変わったり、完全に削除されたりするかもしれない。第三者に依存しない限り、本当に終わったと言えるのはそれだけだと思う。

機能リクエストは無視しろ — ユーザーが求めるものを作るな; その代わりに根本的な問題を理解しろ。ちょっと違う話だけど、このアドバイスはブリザードとワールド・オブ・ウォークラフトを思い出させる。何年も何年も、人々は「クラシック」WoWを求めていた(プレイヤーじゃない人のために説明すると、クラシック版は2004-2005年のオリジナル版のほぼバグそのままのコピー)。何年も、ブリザードの返事は「それが欲しいと思ってるかもしれないけど、実際はそうじゃない。信じて、欲しくないから。」だった。結局、彼らは折れてクラシックWoWをリリースし、大成功を収めた。その後、インタビューで、アイオン・ハジコスタス(ゲームディレクター)とホリー・ロングデール(副社長&エグゼクティブプロデューサー)は、彼らがWoWクラシックを大きく間違えたことを認め、「人々は本当に自分が何を求めているかを知っていた」と言った。要するに、時には機能リクエストを出す人が自分が何を求めているかを正確に知っていることがある。デフォルトのモードが(そしておそらくそうあるべき)機能リクエストを無視することかもしれないけど、それを無視することで自分が損をしている可能性があることを認識する価値がある。結局、あなたは製品のすべてのユーザーの根本的な問題を完全には理解できないかもしれないけど、彼らが求めている機能をコーディングする方法は理解できるかもしれない。

これはいい指摘だね。ただ「根本的な問題を理解する」にはある程度の人間性が必要かもしれない。ブリザードはある時点で企業化して「本筋を見失った」と言えると思う。彼らは人々が何を求めているかを知っていると思い込んでいたけど、実際にはそうじゃなかった(「みんなスマホ持ってるでしょ?」って感じ)。

私はWoWプレイヤーじゃないから、もしかしたら余計なことを言ってるかもだけど — その例は、ユーザーが求めていない余計な機能を知っているだけで、求めている余計な機能を知らないってことを示してるんじゃない?

ブリザードの例について公平に言うと、ブリザードはプレイヤーベースを幸せにするために、あなたの引用が言っているように、根本的な問題を理解することもできたと思う。「バグそのままのWoWクラシックが欲しい」だけじゃなくて、「現代のゲームがあまりにも認識できないものになってしまって、基本的にWoW 2.0になってしまった。現代のシステムでそれを台無しにした」ってことだった。ブリザードはLFR/LFGを戻したり、クラスの均一化をやめたり、複雑でユニークなタレントツリーを復活させたり、遺物を取り除いたり、グループゲストやワールドミニボスを再追加したり、飛行を取り除いたりすれば、プレイヤーはきっと喜んだと思う。クラシックは新しいコンテンツを作らない限り、長くは持たないけど、クラシックのシステムを使うことで。だから、ある意味で、やっぱり根本的な問題を理解する必要があるってことだと思う。ユーザーは一般的に自分が何を求めているかを知っているけど、どうやってそれを求めるかは必ずしも知っているわけじゃない。

それが著者のポイントを強調してるね:クラシックゲームはすでに存在していて、ユーザーはただメンテナンスアップデートが施された同じゲームを求めていただけで、新しい機能のある新しいゲームを求めていたわけじゃない。この場合、間違っていたのはユーザーではなく、何かうまくいっていたものを捨てようとしたプロデューサーたちだったと思う。彼のポイントは、ユーザーが自分が何を求めているかを知らないということではなく、進化的デザインと「機能を積み重ねる」こととの間の緊張関係についてだと思う。

ユーザーは自分が本当に何を求めているか分からないことが多い。でも、開発者やプロダクトマネージャーも同じだよね。「根本的な問題を理解する」って部分が難しいし、自分を誤解させやすい。浅い欲求と深い欲求もあるし、私にはその経験がないけど、クラシックなWoWは浅い欲求だったんじゃないかな。人々はそれを手に入れてすごく喜んでたけど、深い欲求はゲームプレイのスタイルや感覚に関するものだったと思う。プレイヤーはクラシックゲームの魔法を保った新しいものがあればもっと幸せだっただろうけど、Blizzardが何かを追加して台無しにすることを信頼できないってことも分かってた。だから、欲求を満たすための実践的な方法は、クラシックバージョンに戻ることだけだった。完璧な世界では、デザイナーが新しいバージョンの中から慎重に選んだ部分を取り入れて、クラシックと新しいWoWの両方を超えるものを作り出すはずなんだけど、それは本当に難しいし、疑い深いプレイヤーたちが反発するだろう(その疑念には十分な理由があるし)。結局、何を残して何を捨てるかで意見が分かれる大混乱になりそう。

ユーザーが機能リクエストをしてきて、それが理にかなってないと思ったことがあるけど、相手が礼儀正しく理解を示してくれたら、なぜそれがうまくいかないかを説明する時間を取ることにしてる。その過程で、基本的にラバーダックしながら問題の解決策を考え出すこともあるんだよね(ユーザーはまだ気づいてない問題)。時には、その結果、機能を実装しない理由がさらに強くなることもあるし、逆に全ての返信を削除してその問題に取り組むことになることもある。そうすることで、フルの返信を書くよりも時間がかからないこともあるし、最終的に機能が元々のリクエストよりも良くなることも多い。逆に、ユーザーが失礼で、わがままで、手がかかる場合は、最初から返信しようとも思わないことが多い。なぜなら、彼らがずっと対立的で、求めるものを与えたらさらに要求が増えるのが分かってるから。こういうユーザーは、特定の方法で何かを求めていて、その要求が他の人のためにインタラクションを台無しにすることを理解しようとしないことが多いから、私はそういうことはしない。この話は、最初に考えていたよりも大きな脱線になっちゃったけど、結局のところ、何かを頼む相手に対して失礼にならないようにしようってことだね。

逆の例として、クラシックMMOの観点から言うと、Ultima Onlineがプレイヤーのフィードバックに応じて非PVPゲームインスタンスを追加したことがある。PVPの対立の脅威がないと、UOは感情的にあまり引き込まれなかった。非PVPプレイヤーは、アドホックなPVPの感情的な興奮(ストレスや危険など)がないと退屈してしまった。PVP重視のプレイヤーも、PKerだけがいる世界では評判のメカニクスがほとんど意味を持たなくなって退屈していた。Arc Raidersのリリースは、元々のUOの社会的ダイナミクスを完璧に捉えていた。プレイヤーたちは、PVPをオプションにしてほしいとフォーラムにリクエストを殺到させた。その場合、開発者たちは聞かない方がいいと分かっていたんだ。

これに関連して、リテールのWoWアドオンにこのパターンが見られるようになってきた。新しいアドオンの多くは、ArcUIのように、最後の最後でWoW APIが変更されたために、重いバイブコードになっている。アドオンは表示をカスタマイズする方法がめちゃくちゃ多くて、その設定メニューは、無限のフィールド、スライダー、ドロップダウンのリストが並んでいるラブクラフト的なB2B製品みたいに見える。私のギルドのレイダーたちから、ちゃんと機能するUIを作るのがどれだけ大変かという不満をよく聞く。これらのツールが、開発者たちにソフトウェアの機能を簡単に増やすことを許可しているのか、またはそうさせているのか、ちょっと気になる。

でも、彼らは実際にWoWクラシックを作ったわけじゃない。ゲームの別バージョンを作っただけだ。ゲームプレイ的には全然違うし、経済やビジネス的にはシンプルだけど、人気があるのはマネタイズのせいだね。

Hacker Newsで議論の続きを見る