あなたのプログラムは執事です

この投稿では、プログラマーが学ぶのに役立つソフトウェアに関する興味深い観点について説明します。 重要なのは、あなたが執事として開発しているプログラムを認識することです。



私が「執事」と言うとき、私は使用人、ウェイター、またはその他の付き添い人を意味します。 つまり 仕事はあなたを助け、サービスし、あなたのために汚い仕事をすることであり、あなたが望む少し前に見えなくなってしまう能力です。



執事の仕事は主人に仕えることです。 ホストがのどが渇いている場合、バトラーはすでに近くにいて、選択できるいくつかの飲み物の入ったトレイを持っていなければなりません。 バトラーはよく見える必要があります。 彼がスーツを着ていれば大丈夫ですが、執事は、彼が同様のスーツを着たビジネスマンや政治家にいるように感じるべきではありません。 執事は自分の「自我」に対する権利を持っていません。彼は仕事をして空中に姿を消しました。



これは、ソフトウェア製品(またはデバイス)がユーザーと対話する方法です。



このアイデアをより詳細に説明するために、執事の振る舞いを持つプログラムの例を挙げます。 そのような例は、Google Chromeです。 タブを操作するときのChromeの動作、つまり、ボタンの配置によってタブが閉じられ、タブの幅がどのように変化するかを見てみましょう。 Basil Safwatは、この動作をよく説明しています。



「... Chromeは残りのスペースを埋めるようにタブのサイズを変更しますが、マウスカーソルがウィンドウの上部の機能領域を離れた後のみです。つまり、これはユーザーがタブとの対話を終了し、フォーカスをどこかに... ...」







Chromeの動作をより詳細に理解したい場合は、インストールして自分で試してください。 しかし、要するに、Chromeはタブを閉じた後、他のすべてのタブの幅を変更せずに維持し、ユーザーはマウスカーソルを動かさずに次のタブを閉じ続けることができます。 ユーザーがマウスを動かすと、Chromeはタブがもう閉じられないことを理解し、タブの幅を広げて名前を読みやすくします。



これは、プログラムが良い執事のように振る舞うことの良い例です-所有者の振る舞いを予測し、彼の人生を便利で快適にします。



そして今、悪い執事の例:すべてのソフトウェアの99%





悲しいことですが、現在のソフトウェアの世界では、本来の振る舞いをしないプログラムの例に目を向ける必要はありません。 オペレーティングシステムからエアコンのテキストエディターやリモートコントロールまで、毎日使用するほとんどすべてのプログラムは、まるで悪のように、私が僕であり、彼らが私の主人であることを知らせてくれます。

もちろん、世界は白黒ではなく、プログラムにはプラスとマイナスの両方の機能がありますが、一般的な状況はそれだけです-プログラムはユーザーを気にしません。



無視する例:



私の精神的な強さは、人々に対するいじめプログラムとデバイスのリストを続けるのに十分ではありません-私たちはそれぞれこのリストに何かを追加できると思います。 代わりに、これが起こる理由について話しましょう。 これが私の理論です。



ソフトウェア開発者は、給料が高く、一流の、インテリジェントな仕事です。 その結果、ほとんどのソフトウェア開発者は非常に強い自我を持っています。 そして、これは原則として悪いことではありません。エゴは、新しい高みを征服し、素晴らしいものを作り、傑出した仕事をするための大きな動機です。 しかし、ここにあります-良いバトラーになりたい人は、「エゴ」を持てません! 彼らの二次的な役割の有用性、謙虚さと意識は、誇りと両立しません。



あなたには矛盾があります。プログラマにはプライドがありますが、執事にはプライドがありません。



ソフトウェア開発者がプロ​​グラムを作成するとき、彼はプログラマとしての天才にもかかわらず、美しいデザイン、効果的なプログラミング言語、スーパーアーキテクチャ、その他の重要なことにもかかわらず、彼の仕事はただの執事の仕事であり、それを負っているということを常に覚えておくべきです所有者を満足させ、邪魔にならないようにします。



この「自我」の問題を理解すれば、問題が発生したときにプロジェクトでそれを認識し、ユーザーの悪いマスターではなく、ユーザーの良い従順なサーバントとなるソフトウェアを作成できると思います。



ご注意 翻訳者 :筆者は暗黙のうちに「プログラムバトラー」という類推から「プログラマバトラー」という類推に移行します(読者とプログラマーを怒らせたくないようです)が、重要なのは記事のこの考えです。 プログラマーはサービスワーカーであり、この考えが不快になる理由はわかりません。 私はプログラマーであり、私の仕事は情報処理の分野で他の人々のニーズに応えることであることをよく知っています。 これは美しく、創造的で、責任があり、重要ですが、それでも二次的なタスクです。 そして、私のソフトウェアの助けを借りた主なタスクは、ユーザーによって解決されます。 それは彼らの節約された時間と神経、つまり私のソフトウェアに対する彼らの仕事の結果であり、私を誇りに思っています。 そして、それらの背後には、インターフェースの選択、機能の要件などの最後の言葉があります。 誰が支払う-彼は音楽を注文します。 この記事は、皆さんが自分よりも賢く考える必要はないという意味で、 前回の記事を補足するものです。



All Articles