08 October 2003
This article about Software Fashion has pegged me completely for a Stupid Fashion Victim. I've taken hold of a number of extremely complex technologies (EJB, Servlet, Struts) and misapplied them to tiny projects, like a weblog (scalable to 10,000 users across 3 servers, though, I'll have you know!).
It's all an exercise for me. I'm studying these technologies, so I can apply them in the monsterous projects someday (like maybe an application to track almost every aspect of business for courts in every county across the state for example). The only places I have to experiment are within my own personal (small) applications.
The thought is to facilitate future growth painlessly by applying an extensible framework. Investing time upfront to ease transition later has been referred to as Technical Debt. Every great project starts small (like Yahoo!) and grows, so maybe someday I'll be king of BlogWorld, and I'll be happy that I started with such a solid framework.
The other exercise would be to code tight first then make sweeping framework changes as necessary with the natural growth of the project. I still do that, but I try to limit it by having the foresight to recognize potential limitations early. Lots of projects have taken this minimal route, and it's resulted in plenty of new software releases touting "New, v2.0.0, written completely from scratch containing no code from v1.x". I think that path has been explored already.
So, on my next real or personal project, I'll probably use some huge framework and apply a few cool design patterns for good measure and hope for the best. I expect to find a balance with some of my experience, but I think I'll choose to suffer at the hand of fashion until then.