Peter recently sent me a link to an interesting piece about "Startup Suicide - Rewriting the Code" on AlwaysOn about the "re-architect and re-write" solution usually being the beginning of the end for a company in a rapidly changing market. This is interesting to me as we ramp up for doing exactly that yet no decisions have been made.
I think it's a perfectly confronting article. There's a lot of truth in it if done the way it is described there: some sort of a big-bang upgrade. I like the phychological aspects of the article, the 'condemned code' part. Very recognizable, very Scary too.
I prefer the modularization of the code model instead, and then optimize / replace those parts. This gives a gradual upgrade model instead of a big-bang upgrade as the article mentions. Like what I'm doing now with the Zend JobQueue migration to the Gearman JobQueue. Replace piece by piece. This however is an easy move compared to replacing an entire PHP framework.
For the modular change model to work one needs an easy and automated way to deploy code changes often. I've implemented a Continuous Deployment system using BuildBot with which we now have unattended and automated site updates available, most even without downtime. We're using that for some time now with multiple deployments per day.
If we ever replace our ATK framework for something else we'll do it piece by piece. I hope that'll scare off the "Startup Suicide - Rewriting the Code" demon
Hans Lambermont, Senior Architect / Developer at Shapeways, Makerbot enthusiast, Astrophotographer, Open Source fan and Juggler.