One reason people are tempted to rewrite their entire code base from scratch is that the original code base wasn’t designed for what it’s doing. It was designed as a prototype, an experiment, a learning exercise, a way to go from zero to IPO in nine months, or a one-off demo. And now it has grown into a big mess that’s fragile and impossible to add code to, and everybody’s whiny, and the old programmers quit in despair and the new ones that are brought in can’t make head or tail of the code so they somehow convince management to give up and start over while Microsoft takes over their business. Today let me tell you a story about what they could have done instead.

New Web Shop for Fog Creek Software

Fog Creek StoreWe got sick of paying the 13.9% transaction charge that Digibuy is charging us for every software download, and we needed more control over our commerce server so that we could run a proper affiliate program. So we got our own merchant account and rolled our own software for it. It’s been fun, and the transaction cost should be down to about 2.5%.

Patching Code?

I wanted to use .RTPatch for the upcoming CityDesk service pack, but it costs $5000 for one license. Yipes. That’s a lot to pay for what computer scientists call [Aho75]. Can anybody suggest an alternative?

About the author.

I'm Joel Spolsky, co-founder of Trello and Fog Creek Software, and CEO of Stack Overflow. More about me.