If it's a project that's only used internally instead of a consumer product, you have a better chance of sticking with it rather than scrapping it.
"But if it's being used by millions of people," Verizon's Estrada says, "then little changes can make a big difference in terms of cost. If it's really creating a bad user experience or costing a lot of money, then there's probably a better way. It's time to start over."
The accidental duplex
This common software project nightmare highlights the importance of strong vision and leadership. Stakeholders are assembled, and the squabbling begins. Users, managers, and engineers can't agree on how to go forward, so the approach devolves into trying to please everyone, with the project manager gathering requirements from everyone in the building. By the time the project gets handed off to engineering the big picture is lost.
Dan Jacobson, VP of edge engineering, Netflix"When prioritizing, you're basically saying: 'Which things are we going to do today or this week?' The right question is: 'Do we care about this at all?' And if we do, then make it happen -- and if we don't, then make it gone."
--Dan Jacobson, VP of edge engineering, Netflix
"This is a common problem," Estrada says. "What ends up happening is that you get requirements from almost everyone, then nobody knows what you're trying to accomplish or what should be done first. Of course it cascades into more problems and more problems."
In other instances, executives and project managers can get caught up in note-taking -- priorities and process -- rather than finding the best overall solution.
In any case, soon enough you have the equivalent of three kitchens purpose-built for prepping specific meals, two bathrooms right next to another, and a garage no one can get into. You set out in pursuit of a unified solution and ended up with myriad pet projects housed under the same roof. The result satisfies nobody.
Before you can even think of what to do with the code on this kind of rehab job, you have to go back to square one -- this time, say our pros, with vision. There has to be one blueprint that everyone agrees is the best plan.
"You have to have a foundation in terms of the architecture to make sure it accomplishes what you are trying to do," Estrada says. "You have to get input from all the stakeholders, but someone from management on down has to drive that vision, or you get really bad architecture in terms of the software design."
With the new unified plan in place, you can return to the code with purpose and better prioritize how to fix the mess.
Sign up for CIO Asia eNewsletters.