These last few weeks, I’ve been working away on a couple of projects that have REALLY made me appreciate just how important good architecture and planning really is, even with the smallest of projects.
Of the four projects I’m currently working on, only one of them has any semblence of architecture and/or planning involved. The other three appear to me to be a collection of hacks and fixes to either extend or patch pre-existing problems with the original design, that were introduced by previous developers.
I realise I may not be the best software designer and architect, but I understand and know enough to keep my work organised and relatively easy to follow and extend. I’m not afraid to throw away what I have to start again once I know I have a lemon in my hands either. I think one of the most important lessons for any programmer to learn before he/she can really start to become good at what they do, is to not get emotionally attached to their code. The sooner we can do that, the sooner we can truly take leaps in the right direction.