How to keep adding features while you rebuild


Brad Feld had a recent post about a classic scenario in software; you have an existing product that needs a complete strip-down and rebuild to meet new needs, but you can’t afford to stop releasing new features while the work’s being done. His advice is that you just need to grin and bear the pain until the rework is done. As an engineer, that’s definitely my preferred option. It’s much more efficient to keep the whole team focused on the rewriting.

Often though, engineering efficiency is beaten out by market, management and investor demands. So then what do you do?

The first time I ran across this was in games. Sports games demand annual releases. There’s no way that you can rebuild a whole rendering engine and art pipeline in a year, so what EA did was plan for an under-the-hood rewritten release every two years. In the off year they focused on adding things like championship simulations, updated graphics and new statistics. What amazed me was users were just as happy with the off-year releases!

A few years later I was working on an image-processing product. We had a very short time to ship a second release, and we were struggling because most of the features we looked at required big rewrites. For fun, I’d written a MIDI interface to the program, even though it wasn’t music-related. It took me a weekend to write it, everyone on the team considered it an amusing curiosity, but users loved it. In the end it turned out to be one of the most-talked about features of the release, and really helped the release.

So, what’s my advice? I try to follow the EA strategy, and identify engineering-light features that we can develop with minimal disruption to the rewrite. Try to keep an open mind and don’t automatically dismiss these as cosmetic. As long as they improve the experience of using your product, your customers will thank you!

Funhouse Photo User Count: 634 users, 51 active daily. I’m definitely seeing growth and active use tail off, and the obvious suspect is the async loading changes that cause the initial screen to take longer. I’m definitely hitting scaling problems myself here! I have some new effects in mind that I’d like to add, but it seems like that’s less urgent than fixing the loading.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: