Re-Inventing
Starting from scratch on a particular application is great for generating quality software, but only when you know you can create something better. And really, the only way to know you can do a better job is to have experience with alternatives and a keen understanding of where they succeed and/or fail.
Also, if you’re going to take the time to re-invent a piece of software, do it well, especially if you’re planning on Open Sourcing it. You can hack it together in the beginning but refinement is king. Write the code for an audience. Write it to be usable and easily understood. Making software intuitive is an art, but attempt it anyway. Also, take a visibly different approach than the competition or you’ll end up looking just like them.

