Here’s a little secret: No one got into software development to budget. Developers love to code and create. If they wanted to create budgets, they’d have become accountants.
Still, creating a development plan for 2017 will inevitably require budgeting and estimating, a process that should be done in partnership with business teams. This will ensure the creation of software that cost-effectively meets their needs.
(Related: Databases are a common bottleneck for DevOps teams)
Agile developers may scoff at this idea and blanch at the thought of budgeting and estimation, but they’d be remiss in doing so. The truth is budgeting and estimation are as important to the agile development process as they are for traditional waterfall development methods. Agile developers must still give the management and finance teams the cost and time estimates for the projects they’re commissioning.
The good news is that planning and budgeting do not have to be a burden. Development and business teams can work together in an efficient, transparent way to plan an accurate annual budget. The process can be short, cooperative, and low stress.
The key is to start now. Here are a few pointers to help teams get going.
Start by reflecting on critical metrics
There’s an old cliché that says, “You can’t know where you’re going until you know where you’ve been,” and that’s as true in software development as it is anywhere else. It’s essential that development teams formulate a sound historical baseline upon which they can build their 2017 hopes.
To set a baseline, teams should create metrics around the scope, schedule, effort, skills, and resource allocation of their work. If the development team doesn’t have data to create metrics, they can examine historical data from recently completed projects that may be similar to the scope of future work. If they don’t have historical data, they should compare their team’s productivity to industry standards. The point is to create a baseline from actual data, not from projections, to bolster the potential for accuracy.
Plan the entire year’s budget
Once teams have a baseline, they can create a budget for the year. In basing the budget on data, rather than projections, both development and business teams can be objective in budget discussions. As the two sides come together to discuss the budget, they can parse out any disconnection well before individual projects become time-sensitive and examine potential solutions before the budget is locked into place.
The process of creating the annual budget allows teams to identify when resources or various skill types are required throughout the year. Knowing when they will need more resources in development vs. quality assurance, for example, helps a team make accurate budgeting decisions, such as balancing skill demand and resource capacity.
Development teams can turn their estimates into an annual budget by determining the IT demands for each project scheduled for the year. Most annual budgets break down estimates by allocating hours to different skill categories: project management/lead, business analyst, data architect, developer, QA and test, database administrator, and architect. It is important to tell how these hours will be spread over a timeline and how each person will “roll off” a project. Team members may not always agree on the distribution of resources and skills on each project in the budget, and that’s okay. The key takeaway is that representatives from the different teams have come to the table to work together from the beginning.
Respect both sides
Once teams have a draft annual budget in place, they can look it over for places to trim wasteful spending or add to potentially underfunded projects. If teams spend too long and drag their feet creating an initial budget, they won’t have the energy to look at what they have created, refine it, or offer alternative scenarios.
Development teams that participate in creating annual budgets demonstrate to businesses that they understand and support the need for cost and resource management. When teams take time to refine annual budgets, they show they care about managing risk. By analyzing an annual budget based on metrics, teams can identify risky projects early on and create alternative plans that better manage that risk. They can also negotiate unrealistic expectations on both the development and the business sides, creating a more positive and transparent work environment.
Once the development and business teams have jointly created an accurate annual budget with the amount of risk both sides are comfortable with, they should engage C-suite executive decision makers. This is the time to present the budget that shows what the team is capable of and find out how it matches up with the level of funding the company is willing to provide.
In the age of DevOps, developers are becoming more used to sharing work and responsibilities with groups within their organizations. Consider this a variation of that mindset. Breaking down the barriers between the development and business teams to create an annual plan and budget can help both groups better understand one another’s needs and processes, leading to a more transparent, lower-stress, and more fruitful working relationship that can help everyone achieve their goals.