By Himanshu Mishra

Translation: the original huziketang.com/blog/posts/… Lessons for Creating Good Open Source Software

Please indicate the source, keep the original link and author information

I once read a book called “The Cathedral and The Bazaar” by Eric S. Raymond that discussed various open source software development approaches. There are few references to the book on Wikipedia, but here are some of the most important points from the book, which you can use skillfully in your own open source software.

  1. Every good piece of software should begin by addressing the developer’s personal pain;
  2. Good programmers know how to write code; Great programmers know how to rewrite and reuse code;
  3. If you have a good attitude to study, you will find a lot of interesting questions;
  4. When you don’t want to manage a program, your last duty is to hand it over to a competent successor.
  5. Treating your users as development partners is the best way to speed up development and debug.
  6. Release early, release often, and follow users (meaning small iterations, users first);
  7. With agile development and adequate beta testing, almost any problem can be solved quickly;
  8. With good data structure and generic code, this combination pattern is better than the others.
  9. If you treat your playtesters as your most valuable resource, they will reward you by being your most valuable resource.
  10. Often innovative solutions come from realizing that your current perception of the problem is wrong;
  11. Perfection in design is not that you have nothing to add, but that you have nothing to subtract.
  12. Common tools are used the way you expect them to be, and great tools are used in ways you don’t expect them to be;
  13. No matter what type of gateway software you write, try not to affect the flow of data as much as possible and not to throw away any information unless its recipient tells you to do so.
  14. Before you can solve an interesting problem, first you need to find a problem that interests you.
  15. A good development coordinator needs to have good communication skills and know how to avoid overreaching, because it’s better to have multiple suggestions than one.

This advice may sound like “the right crap” to many, but it’s the “right crap” that keeps so much great open source software coming out. Maybe you don’t think about it so much when you’re developing, and maybe you realize it when you’re mining. As a latecomer in the field of development, we are always right to draw lessons from our predecessors and learn from their experience. The history is always surprisingly similar.

These 15 suggestions can be read frequently. It’s worth reviewing and sharing.