What’s the big mystery with software development budgeting? Shouldn’t it be a well-mastered skill by now? Not even close – at least for some companies. In fact, research cited in the Harvard Business Review found that one in six IT initiatives was a “black swan” with cost overruns of 200 percent. “That’s a pretty high rate of failure for estimation,” notes the article, which encourages enterprises to “stop estimating and start budgeting.” And recent research from McKinsey & Company and the University of Oxford says half of all large IT ventures, defined as those with initial price tags above $15 million, massively blow their budgets.
Get Your Software Budget on Track
1. Be Cautiously Optimistic – One of the biggest mistakes you can make while budgeting for software development is being overly optimistic. Sure, you’re excited about the overall initiative and both the opportunities and financial success it can bring your company, but being overly optimistic is a common planning mistake. Of course, most people who plan software development are enthusiastic about the initiative – it’s a natural, unconscious thing. Instead, be realistic to ensure success. Software projects are always more complex than you originally believe they will be. No matter how good your original plan is, there will be changes. Give yourself budget and time contingency to deliver your features on plan. Think through all of the details and related expenses. Have your own opinions on the budget and get others to share their thoughts. Ask numerous questions about the budget and related development process. Make financial assumptions based on the possibility of missed deadlines, coding errors, testing and QA, staff changes, technical issues, etc. Make sure you’ve got a clear picture of how your estimates are created - is each contributor adding in a fudge factor or are you adding contingency? Consider how these issues can affect your budget and plan accordingly. If you’re overly optimistic, you’ll more than likely overlook elements of the plan because you didn’t ask the tough questions or consider all of the scenarios. Knowing is better than wondering - ask tough questions. Ask “What am I missing?” “What assumptions did you make when you created this estimate?”
2. Roadmap Your Budget – When you plan your software development budget, whether you outsource or insource, outline a complete roadmap that includes the planned releases; versions 1, 2 and 3; new features and updates; and so on. Recognize that because of cost and complexity issues, you may need to adjust scope to hit your timeline and budget. What’s the absolute minimum feature set you MUST have in version 1? Always account for changes and enhancements in your software, and include that in the plan and budget. What can wait until the next release? What does it take to create and implement each release or stage, and what’s the related budget that needs to be set? Salesforce.com, for example, usually does two or three releases of software each year and they always announce when the next release will be available. Essentially, when they announce their release dates, the company is setting a goal in a very public way and plans its budget around those release dates. Think far ahead and let your budget include all the costs associated with new versions and updates down the road.
3. Plan for Technical Debt – It has been said that software doesn’t rust, but it does. Platforms get upgraded, tools are depreciated or go to end of life, integrations need attention because other systems are upgraded - the only constant in technology is change. Your UI starts to look like 1996 or your database platform performance grinds to a crawl as data volumes increase. Maybe your developers took a shortcut to hit a deadline and your application is suffering because of it. Refactoring and other forms of technical debt are a reality and you have to include space for that in your budget for each release. Often these changes don’t make the software itself function differently, they just make it run faster, more reliably or require less ongoing maintenance. Without a plan to “pay off” technical debt, you’ll definitely find yourself in budget trouble.
4. Don’t Neglect Quality Assurance in Your Budget – I previously worked with a startup that had a limited budget for software development and it couldn’t afford software testing or the professionals to implement it. Consequently, the quality assurance (QA) budget dollars went by the wayside. This isn’t the smartest decision, but it’s often one of the first things to go when a company shrinks a development budget. For many businesses, eliminating testing or QA of software leads to software bugs, poor software in general and severe financial consequences. Most enterprises, however, recognize the importance of testing and QA to software’s long-term ROI, so don’t neglect it. On average, IT spending on QA and testing has risen to an average of 35 percent of total IT spend, according to the Capgemini 2015 World Quality Report, and IT spending allocated to application quality and performance will continue to rise, reaching 40 percent by 2018. The key message: Invest in QA via your budget and avoid unnecessary costs later.
5. Consider Outsourcing as a Budget Solution – If you decide to insource, can you handle the “superstar” salaries that world-class software developers command? Your budget should be prepared for salary expectations of $100,000 to $250,000 a year for leading developers, along with benefits and operational overhead that tack on an additional 25-30% on top of salary. Then, assuming your budget makes it past the sticker shock, consider how long it will take to build your own internal software development team – as much as 6 to 12 months. Don’t forget to factor in costs associated with the recruitment search and the delay of a revenue-generating project. When you outsource software development, you can get a world-class team from around the globe – quickly – and save. The practiced offshore team has already worked together and can ramp up faster, so you get a top-quality, highly-functioning unit much sooner. Or, you can pay the high internal salaries and benefits, potentially absorbing them even beyond the months you actually need those resources for your software development (because once your hire and train, you won’t want to let them go). Outsourcing can help you avoid the hassles and high expense of having an internal team, and allows you to maximize your budget by delivering significantly higher value per dollar. Of note: Deloitte’s Global Outsourcing Survey 2016 indicates that outsourcing is also becoming a vibrant pathway for driving innovation into the enterprise, in addition to being a cost-cutting factor – so the benefits go far beyond a happy budget.
Outsourcing to certified and vetted and verified developers can not only help you maximize your budget, but also increases the value of your software engagement. Talk to an Accelerance outsourcing advisor about maximizing your software budget through outsourcing.