Kenneth Ismert
kismert at gmail.com
Tue May 8 19:47:15 CDT 2007
A good idea, poorly implemented, will often beat out a bad idea, properly implemented. Things can be badly done, even shockingly so, and still work. We've all seen Access applications that exemplify this. Take MySpace.com. It started out as a LAMP solution, but went through 6 major rewrites to become a ASP.NET/SQL Server 2005 solution. Now was the data on the MySpaces' initial LAMP solution properly normalized? Very likely so. In fact, intermediate iterations of the site intentionally de-normalized data in an attempt to gain performance. This worked to a point, but the problems that caused a shift back to a much more sophisticated normalization in their latest versions. Would MySpace have succeeded if they went for Version 6 right out of the gate? No. They would have run out of money first. Besides, Version 6 was only possible due to the insights gained from Versions 1-5. Would MySpace have succeeded if they took foolish shortcuts? Probably not. MySpace worked because of top-notch computer science. They had too many real problems to deal with to afford to make extra ones on their own. I think the point of Agile Development is: you don't know the road ahead. Implement the next step as competently and quickly as you can. Don't create unnecessary baggage, it will only slow you down. Use the insights gained on your previous step to better plan your next. -Ken