You’ve got a set of current customers who are bringing in the money now, but your product, for all of the ongoing improvements, is just getting old, and becoming harder and more costly to support and maintain. You want to shift your team from dealing with the legacy product to developing and supporting a new and vastly improved one, replacing the old version. Of course, your current customers are helping you pay the bills and employees’ paychecks, so you obviously can’t stop supporting them. You recognize that you need to change and/or grow your current product to get new customers and keep your current ones from leaving for the competition, but you’ve only got a finite sized team, so it’s almost an exclusive situation, they either do the new work or support the old.

This is definitely a common occurrence in small companies, but it also applies to big companies. It wouldn’t be so hard if the product is fairly basic and your employees were robots who were easily replaced. However, the more business logic that’s tied up in product, and in the heads of the current team, the harder it is to shift gears. You can’t just hire a second set of employees to build the new version because 1) you may not have that much money, 2) you may not be able to find the right people with the right technical and business knowledge, and 3) your current team will most likely want to work on the new version instead of supporting the legacy product that’s gonna be shelved once the new work is complete.

Your current team has the most knowledge and the best experience. They’re the obvious candidates for working on the new version, and if you consider their long term situation with the company and their personal desires, they’ll most definitely want to be working on the fun new stuff. An alternative is getting a second team to support the legacy version. The downside to this is the extra cost involved training, which grows with the knowledge required. It’s one thing to hire a new employee or two and train them up, and it’s another thing to double up, so unless it only takes one person from the current team to do support, which it doesn’t, then you’re in a much tougher spot. Additionally, how many people take a new job to support legacy products? How many people want to get hired into a situation where they’ll probably be let go relatively soon after? It’s hard enough finding the right people who will stick around for a longer period let alone let you treat them like a disposable diaper, and when they don’t mind that, they’re called consultants who cost twice as much as your current, more experienced, team.

So, I wound us into a pretty tight situation. At the heart of it is the question of cashflow and quality of support. What are the trade offs, and what can you afford? I’m writing about this because this is the situation I have at my company. We have a team that’s just big enough to support and maintain current software for current clients. We’re in a low demand point, though, with few needs except from one client who also happens to be our biggest, but it’s low season for us, so we’ve got some free time for development of new stuff, and we’ve been working on it when we can for a while now.

Right now, things aren’t too bad. However, we’ve got current clients coming up in a couple months who we’ll either put back on the legacy version or move over to the new one. Additionally, we’ve got sales calls with people who definitely want to see the new stuff, but may need a product before we’re done with it. Supporting either of them on the old version inevitably means development on that for the specific and new needs of that client. Their needs always change, and they always find something new they want. We could convince them not to go with more, every client is very open to what we think, but then again, we’d basically be leaving money on the table by convincing them otherwise. And doing all of the work on the legacy version directly takes away from the new version, which pushes back any timeline and makes it that much tougher getting the next client on the new version.

You have to draw a line sometime. You time it as best you can, and either pay up for more short term team members as support, or you do what you can to get your current clients to slim back, or you just reduce the quality of support (availability, response time, amount of thought put into fixes and development). With the new version, we’re working on developing a support team that while they’re not experts who can do business development or product development, they can support and maintain while not requiring the full attention of the most experienced who are better in the bus. dev. and prod. dev. area, which should bring in new cash to the business (current cashflow versus future cashflow).

I actually think it’s easier for small and medium businesses to deal with these situations. Even if it puts more strain on their “infrastructure,” they don’t have hundred of millions of dollars coming in annually from an existing product as a product for Microsoft would. Yeah, they’ve got (maybe) more money to use in R&D, but taking a product that makes no money, and replacing another that makes tons of it is never an easy situation. But, that’s business, and you’ll die if you don’t take the risk involved in growth and change, and because death can happen that much slower for a big company, it’s that much easier to rest on your laurels, which in the age of the internet, when you’ve got the next Google chomping at the bits ready to explode in a matter of months, not years, you’re all at that much greater risk. Great for the economy, tough on business as usual.