I really should try to write up my blog more than once a quarter, but I hardly ever think of anything good to cover, people want to help? Suggest stuff to write about and I might just go for it!
Anyways today's subject, Code rewriting. If you're a fan of Joel Spolsky's work, he has railed against ground up rebuilding your product, but then reneged and said it can be a good idea under some circumstances. I tend to agree with this, but let me share with you a story of code rewrite gone wrong (note, names have been changed to protect the innocent).
Right out of college I worked for a company called Data Storm. This company made a database product called E4. Which while a niche product had a few industries it was succesful in, mostly because it was really fast by most benchmarks, according to their statements, Oracle and SQL Server had nothing on them. Which may have been the truth from what I've seen. However this product ran in a dos command prompt and was getting a bit dated in features, look and feel. The time was coming to replace this product for the 21st century.
So Data Storm gets together and decides to build a new product, we'll call it LionReason. This product was supposed to be the relational database killer, to put Oracle and SQL Server into their graves. Midway through the development of this product is when I joined Data Storm and got to see some of these events unfold.
My job function at Data Storm was to do customer support for a few new extensions to allow Data Storm's E4 product to talk with Microsoft .NET products. However I had always been disappointed by the amount of support given to these extensions. These extensions at least allowed the old to talk to the new in some fashion. However only 3-4 engineers and 2 support personnel were allocated to this project at best. In fact this was a common theme at Data Storm, with maybe 5-6 engineers total working on Data Storms E4 products in general. The rest of the company's Research and Development were going to this Lion Reason product.
In doing this the company was making a dangerous "Hail Mary" play. In that:
- They were betting, perhaps too hard that Lion Reason was going to succeed, it wasn't.
- They were betting that legacy customers would hang on to their old systems until Lion Reason was ready, they didn't. In fact the common use for these .NET extensions were to enable a gateway to migrate to products like SQL Server. Ouch...
Needless to say at last look the company Data Storm is hovering at near bankruptcy now, with little hope of recovery unless some brilliant management takes the helm, which currently seems doubtful. However I still keep in touch with a few of my former co-workers at the company and have made some good friends there. Also this company launched me further into .NET and helped shape me into the consultant I am today. So I have much to thank Data Storm for...
Moral of the story, it's fine to rewrite code from scratch, but remember the products that got you where you are... |