私は、GUI (グラフィカル) と API (スクリプト) インターフェースの両方を持つアプリケーションに取り組んでいます。当社の製品には非常に大きなインストール ベースがあります。多くのお客様が、当社の製品を使用するスクリプトの作成に多くの時間と労力を費やしてきました。
すべての設計と実装において、(当然のことながら) 100% の後方互換性を維持するという非常に厳しい要件があります。以前に実行されたスクリプトは、新しいソフトウェア バージョンが導入されたときに、変更を加えずにまったく同じ方法で実行し続ける必要があります。
残念なことに、この要件は私たちの手を後ろに縛り付けることがあります。なぜなら、私たちのイノベーション能力や物事を行う新しいより良い方法を考え出す能力が実際に制限されるからです。
たとえば、すでに可能になっているタスクを達成するためのより良い (そしてより使いやすい) 方法を思い付くかもしれません。このより良い方法をデフォルトの方法にすることが望ましいですが、下位互換性に影響する可能性があるため、これを行うことはできません。そのため、ユーザーが利用可能になる前にユーザーが「オン」にする必要があるという新しい (より良い) 方法をモードとして残すことに固執しています。ドキュメンテーションやオンライン ヘルプを読まない限り (多くの顧客は読まない)、この新しい機能は永久に隠されたままである。
Windows Vista が最初に登場したとき、多くの人が Windows Vista で動作しなかったすべてのソフトウェアと周辺機器に悩まされたことを私は知っています。そのせいでかなり評判が悪かったです。しかし、Microsoft は、多くのユーザーの下位互換性を犠牲にして、Vista でいくつかの大きな革新を行うことに成功したこともわかります。彼らは危険を冒しました。それは報われましたか?彼らは正しい決断をしましたか?時間が経てば分かると思います。
イノベーションと下位互換性という相反するニーズのバランスをとっていますか? ジャグリング行為をどのように処理しますか?