Reflecting on your past financial year, outlining your goals for the next one, and considering the implications for the years beyond can help you overcome the more challenging aspects of budget planning.
Budgeting for the new year is a task that I have always approached with a sense of apprehension. Though outlining the upcoming year’s plans is an important step for managing future projects, it can be a difficult task to manage due to the three factors below:
- Software requirements: Software projects are inherently intricate in nature with ever-changing requirements.
- Software design: The design can often throw unexpected technical curveballs and come with regulatory hoops to jump through. Sometimes there are integration and compatibility problems to solve too.
- Team: Once you’ve factored all that in, you’ve got to figure out team allocation and how much to spend on talent, labor, and training.
Over the years, I have developed a strategy to effectively attack the annual budget planning season as efficiently as possible, through the lens of these three challenges.
Reflect on the past year
Looking back over the previous financial year is an important step in the budgeting exercise. Seeing how predictions from the last fiscal period were affected can help you fill gaps in the upcoming budgeting process. Unfortunately, this step is frequently forgotten about as managers often get caught up in looking toward the future.
A way to help mitigate this is to jot down notes throughout the year, from the perspective of the three aforementioned major factors, that you can revisit during the budgeting process – a practice that also helps counteract recency bias.
- Software requirements: The first factor to consider is project scope. Did your projects’ scopes change significantly during execution? Were there any unexpected design shifts?
- Software design: The second, is design challenges. Consider what sort of issues or “unknown unknowns” emerged during the development phase.
- Team: The third is headcount. Did we experience any regrettable attrition of valuable team members? How did this impact the projects?
At each stage, remember to make a note of the financial repercussions as it’s important to assess how much deviation from the original budget can be attributed to each of these factors. This will help set better key performance indicators (KPIs) for next year.
Outlining aspirations for the year ahead
For any manager, one of the primary objectives in the planning process is aligning with the broader company goals.
A number of project ideas may come to mind, but the key is identifying those that deliver maximum customer value while minimizing costs.
- Software requirements: The ability to pivot at any moment is crucial. This means you should avoid budgeting in isolation, and collaborate with peer teams to understand their resource capabilities. This collaboration not only provides insights into resourcing but also creates opportunities for mutual support when shifting directions.
- Software design: I adhere to the 80-20 rule here. In the early stages of software design, we’re merely sketching the broad strokes of a painting. The known work represents just 20% of the effort but takes up 80% of the time. The devil, however, is in the details. Allocate ample time for the remaining 20% of detailed work.
- Team: Understanding your current team’s strengths in relation to your goals is critical at this stage. Identify the necessary training to bring them up to speed and consider the balance between hiring and upskilling. Additionally, assess team members’ career aspirations and empower them to grow in their areas of interest.
In addition to these elements, remember to allocate space for addressing legacy framework code, production issues, and enhancements. A robust budget not only focuses on expanding to new territories but also on maintaining the current structure.
Taking a glimpse beyond the next year
The future isn’t set in stone, so you must prepare for various eventualities. Most importantly, you must grasp how the effects of this year’s budgeting could affect the years beyond.
- Software requirements: Consider the product’s potential growth direction beyond this year. Explore additional customer challenges falling within this scope and explore opportunities to utilize existing products to address similar problem areas in other domains.
- Software design: Think about the possibility of using a system’s current infrastructure for future projects. If reuse is possible, maybe it should be designed in a way that’s adaptable for different uses. Find the right balance between creating a product that is neither too generic nor too specific.
- Team: It is unrealistic to evolve and expand a system without significantly expanding your workforce. However, even if your company can currently afford to onboard more staff, it’s crucial to evaluate whether retaining the increased headcount beyond the year is necessary or affordable. Hire skilled, well-rounded software developers with problem-solving abilities and programming fundamentals, who are a cultural fit, instead of specific roles or languages. This ensures that there will be valuable team members for any project, present or future.
This framework assists in breaking down the complexities of planning and budgeting for the current year, taking into account lessons from the past and the project’s long-term perspective. It offers a systematic approach that centers on the three primary factors influencing the planning process. By categorizing your thoughts within these dimensions, you’ll gain a well-informed perspective on the elements you want to include in your planning and budgeting.
In turn, this will mean that you’ll be able to outline your measures of success in KPIs, preventing any misunderstandings and eliminating surprises regarding your commitments.