The Elements of Friendly Software Design by Paul Heckel

Sybex has kindly granted us permission to display this extract from the Elements of Friendly Software Design by Paul Heckel on this website. This permission does not include the right to print this material. (ISBN 0-7821-1548-1 Price $17.99 Copyright 1991, Sybex Inc. All rights reserved.) SYBEX 800-227-2346 email:


Front Quotes, Copyright and Dedication


Introduction to the Second Edition

1. An Historical Perspective

2. Our Counterproductive Instincts

We think logically, not visually.
We base our designs on our knowledge rather than the user's.
Our programs evaluate our user's actions.
We make our programs take control.
We think in generalities, not specifics.
We structure for internal organization.
We strive for a program's internal simplicity.
Our knowledge constrains our vision.

3. 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 Thoughts.
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.

4. Designing for Innovation Acceptance

5.Seeing and Friendly Software Design

6. Prototype, Revise, and Rewrite

7. Advice to the Beginning Designer

8. The Craft of Friendly Software Design

9. The Moment of Truth

10.Works in Progress

11. Roses and Cabbages: Familiarizing and Transporting User Interface Metaphors

12. Animation, Imagination, and Friendly Software Design

13. Final Words


Epilogue: The Wright Brothers and Software Invention

1. Attack a Recognized Problem Whose Solution Would Be Useful.
2. Think about How to Think about the Problem.
3. Focus on an Unconventional,but Essential, Aspect of the Invention.
4. Avoid Nonessential Parts of the Invention.
5. Use Metaphors to Aid Your Thinking.
6. Invention Requires a Total Working System.
7. Inventions Are Not Developed in a Vacuum.
8. Passion Is a Motivating Force.
9. Much of the Development Is out of the Center of Action.
10. The Invention Takes Time to Be Recognized.
11. It Takes a Lot of Persistence to Get an Invention Accepted.
12. Competitors, Lacking the Same Vision, Will Likely Miss Essential Points.
13. Once Basic Ideas Are Proven, Competitors Will Use Them.
14. To Benefit Financially, Protect Your Rights.
15. Simple Changes Can Make a Fundamental Difference.
16. Inventors Have to Fight to Have Their Rights Respected.
17. Inventors Become an Object of Derision and Their Patents Are Attacked.
18. Many, Including Friends Are Unwilling to Acknowledge the Inventor's Rights.
19. Ultimately, One Must Sue Infringers.
20. One Must Deal with Lawyers.
21. The Secret in the End Is Often Simple.
On Reflection
A Case Study in Defending One's Rights: Negotiating with IBM
About the Future



Last updated on 05/15/01ss

IPC Home Page

Beginning of Elements of Friendly Software

IPClogoIntellectual Property Creators
101 First St., Suite 425
Los Altos, CA 94022
Voice: 415/948-8350
Paul Heckel 1995-7
(To see an alphabetic list of all the files On the IPC Website )