Research & Development (R&D) is typically one of the most significant investments in most software development companies. And you would think that because of it, it is tracked very thoroughly. But surprisingly, most companies don't pay enough attention to how they spend valuable engineering resources.
Most assume that all engineering time is going towards new feature development, like customer and partner asks or strategic bets to push the company forward. But then get surprised when the features aren't released as fast as they thought they would be. When they start looking for the reasons why, they realize that a lot of time is being spent elsewhere, and sometimes even on not that important things..
In a world where there is a constant shortage of engineering resources and hiring takes forever, it's more important than ever to track how you spend these resources and proactively plan your engineering time allocation and make changes if things digress from a plan.
So how do you do it?
Throughly analyze where your engineering time is being spent first
The most successful companies apply a comprehensive approach to planning their engineering investments. I personally find many similarities between engineering time allocation and planning and personal financial planning. If you want to get that financial independence, you first have to know the budget you have. Then understand your expenses (like rent or mortgage), transport (a car lease/loan), utilities, groceries, etc. And once you have a list of significant expenses, you can start allocating a budget to these categories, so you can track if you stay within these limits overtime or need to make any adjustments.
If you apply the same principle to the engineering investment, you will get an immediate value by first assessing where you are now and carefully planning how to get where you want to be. After the round of adjustment, you should be able to allocate more time towards the things that matter the most, like new product/feature development.
Important to note that you shouldn't pursue a goal of having 100% of all eng capacity to be spent on new feature development only. And it’s still unrealistic, but also is going to harm you down the line.
Plan your most significant engineering investments
All products require investment in quality, maintenance, addressing technical debt, etc. And it's vital to proactively monitor and assess where your product is currently at, so you won't be caught by surprise if you need to make a significant quality investment in some areas. So what are the additional investment types that you should be allocating time for?
Most commonly, there are three main buckets of engineering investment:
New feature/product development - building new features for your target customers/partners that directly correlate with the company's ability to meet their business goals.
Quality - addressing product quality issues, such as functional bugs, UX/UI bugs, etc.
Technical debt - addressing shortcomings of previously implemented technical solutions due to various constraints.
Some companies also allocate time to Innovation (PoC), Contractual Commitment, Technical Initiatives, etc. It's up to the product & engineering leadership team to determine what deserves focus and planning, and how that information is going to be used.
So what do you do next?
Execute according to the plan, and adjust as you learn more
In an ideal scenario, new feature development gets the central part of your engineering investment spent. But in the real world, that's barely the case. As I mentioned above, all companies need to spend time on quality and technical debt. The only question is how much. So evaluating your current state is always a number one priority. If you spend significant time on quality, maybe it's time to think about product or technology initiatives that can help address the problems holistically instead of fixing bug by bug. If you spend much time on technical debt, maybe you should invest more time in upfront architectural planning.
On average, most companies shoot for 70% of time spent on feature development, 15% on quality, and 15% on technical debt. Additionally, it’s important to allocate time on all these buckets continuously, so you don't accumulate a lot of quality and technical debt that should be addressed at the same time. However, an actual breakdown is going to vary company by company depending on a product complexity, its legacy, occurred technical debt over the year or an absence of it etc. So always be mindful in setting the goals and target for your company.
Takeaway
To accelerate product development, and still maintain the quality, it's extremely important to take a proactive role in where your engineering time is being spent. Is it mostly new product/feature development, quality, technical debt etc?
To do so you should:
Assess where your engineering time is currently being spent at
Determine what you want to spend your engineering time for. Set goals and targets.
As you execute, monitor if you are meeting your targets. Understand why not, and adjust accordingly.
One of the reasons why product & engineering leaders don't track these types of investments is the lack of tools to do so efficiently. And most tools like Jira allow monitoring after the fact spent instead of proactively planning it.
We've built OneRank to solve this challenge. It enables proactively plan activities across any investment types across different teams or for the product&engineering org all together, and when comfortable, push these plans to the issue tracking tools like Jira, Asana, etc.
Commentaires