Do’s and don’ts for open source software development

From Jono DiCarlo’s “Ten Ways to Make More Humane Open Source Software” (5 October 2007):

Do

  1. Get a Benevolent Dictator
    Someone who has a vision for the UI. Someone who can and will say “no” to features that don’t fit the vision.
  2. Make the Program Usable In Its Default State
    Don’t rely on configurable behavior. It adds complexity, solves little, and most users will never touch it anyway. Usable default behavior is required.
  3. Design Around Tasks
    Figure out the tasks that people want to do with your software. Make those tasks as easy as possible. Kill any feature that gets in the way.
  4. Write a Plug-In Architecture
    It’s the only good solution I’ve seen to the dilemma of providing a complete feature set without bloating the application.
  5. User Testing, User Testing, User Testing!!
    Without user testing, you are designing by guesswork and superstition.

Do Not

  1. Develop Without A Vision
    “When someone suggests another feature, we’ll find a place to cram it in!”
  2. Join the Clone Wars
    “Closed-source program X is popular. Let’s just duplicate its interface!”
  3. Leave the UI Design Up To The End User
    “I’m not sure how that should work. I’ll make it a check box on the preferences screen.”
  4. Make the Interface a Thin Veneer over the Underlying Implementation
    “But it’s got a GUI now! That makes it user-friendly, right?”
  5. Treat UI Design as Babysitting Idiots
    “They should all quit whining and read the manual already.”