The Elements of Friendly Software Design

The Elements of Friendly Software Design

The Elements of Friendly Software Design


概要

ソフトウェアがユーザに対して「フレンドリーである」ことの本質を「コミュニケーション」に求めた上で、円滑なコミュニケーションを行なうための「メンタルモデルの構築」と「メタファーによる伝達」を主題とした方法論が展開されます。

In Short, the software designer must learn to think like a communicator and to practice an artistic craft as well as an engineering one.


要するに、ソフトウェアデザイナーが学ばなければならないのは、コミュニケーターとして考え、エンジニアリングの技術と同じように芸術家の業を実践することなのです。
Introduction (p.xx)

著者について

Paul Heckel, カード型情報管理ソフトであるZoomracksの開発者。このZoomracksは後にAppleからHyperCardの先駆として正式に認められたようです。Zoomrackの発表後にAppleHyperCardIBMのToolBockといった類似製品が販売されたことに反発し、Zoomracksの特許を主張して法的な交渉を行っています。その辺りの恨み節はこの本の第二版につけられた70頁におよぶエピローグで詳細に語られています。

To be a successful inventor, you have to be innocent like a baby so that you see things in a fresh way, but not so innocent that you let people take your candy.


発明家として成功するためには、赤子のように無垢でなければいけません。それは物事を新鮮な視点から見るためなのであります。でもだからって、キャンディーを奪われたら黙っていられないだろ!
Epilogue (p.294)

フレンドリーなソフトウェアデザインのエレメント

著者が挙げている30のエレメントを引用します。

The Elements of Friendly Software Design

  1. Know Your Subject.
  2. Know Your Audience.
  3. Maintain the User's Interest.
  4. Communicate Visually.
  5. Lever the User's Knowledge.
  6. Speak the User's Language.
  7. Communicate with Metaphors.
  8. Focus the User's Attention.
  9. Anticipate Problems in the User's Perception.
  10. If You Can't Communicate It, Don't Do It.
  11. Reduce the User's Defensiveness.
  12. Give the User Control.
  13. Support the Problem-Solving Process.
  14. Avoid Frustrating the User.
  15. Help the User Cope.
  16. Respond to the User's Actions.
  17. Don't Let the User Focus on Mechanics.
  18. Help the User to Crystallize His Thought.
  19. Involve the User.
  20. Communicate in Specifics, Not Generalities.
  21. Orient the User in the World.
  22. Structure the User's Interface.
  23. Make Your Product Reliable.
  24. Serve Both the Novice and the Experienced User.
  25. Develop and Maintain User Rapport.
  26. Consider the First Impression.
  27. Build a Model in the User's Mind.
  28. Make Your Design Simple...
  29. But Not Too Simple.
  30. You Need Vision

コメント

この本が優れているのは、単にユーザに「伝える」というだけでなく、徹底してユーザの立場に立って物を考えている点にあります。それは例えば18.の「ユーザが自分の考えを結晶化させる手助けをしなさい」といった部分に見ることができます。
一部を引用します。

Many of our users have a fuzzy idea of what they want to do or what the program can do. Our products should present themselves to users in a way that helps them recognize what they want, instead of requiring them to spend time formulating their problems or recalling the various commands.


ユーザの多くは、自分達が何をしたいのか、あるいはプログラムで何ができるのかということについてぼんやりとした考えしか持っていません。製品がユーザに提示される場合には、ユーザが何をしたいのか気付くための手助けをするような形でなければならず、ユーザが時間をかけて、課題を練り上げたり、様々なコマンドを思い出したりするようではいけないのです。
Chapter Three The Elements of Friendly Software Design (p.63)

話題はソフトウェアに留まらずに、広く映画や絵画、アニメーションに及ぶので、「表現すること」に携わる人であれば、どんな人であっても興味深く読むことができるのではないでしょうか。
既に絶版となっていますが、古本であれば簡単に手に入れることができます。


なお、この本はMSDNの記事でも絶賛されています:
Windows previous versions documentation | Microsoft Docs