One of the most valuable things I have learned during my experiences in open source software is that it pays to learn from the mistakes of others so that you don't make those mistakes yourself. Today my brother recommended an online book called The Architecture of Open Source Applications. Give it a look and use it wisely.