Do you know that time when you wanted to upgrade your Webpack to the latest version? Or when you wanted to parallelize your tests so that the CI pipeline is a few minutes faster?
I'm sure every team has such technical tasks that live in the backlog.
One thing common to these tasks is that we don't find time to do them. Since software is a like living organism that grows some of these tasks can become a bottleneck in the future.
Why can't we find time to tackle these things? Very often it happens that we have different priorities. The business people (product owner, stakeholders etc.) will always prioritize new features or bug fixing. And that is fair, especially if you work in a consultancy like me.
The customers are paying a lot of money and they want to get some value out of it. On the other hand, the engineers would improve things constantly trying to reach perfection. So how do we make these two ends meet? How can we convince business people to invest more time in technical tasks?
The two words to remember here are communication and quantification.
Great engineers are not only good when it comes to software but they are also great at communicating. This is the point where are a lot of engineers stumble, they get too technical especially when talking to business people.
Although many great product owners are tech-savvy (hats off to them 👏) the vast majority of businesspeople are not technical. Your product owner probably doesn't have a clue what e.g. Webpack is and how it works. Any additional technical explanation will probably not signify the importance of that technical task. You have to switch to business lingo.
There is one thing that all business people do understand and that is costs, time, and money. If you can quantify the problem and show the impact, your technical task will suddenly be much more significant.
Instead of saying, "Our Webpack runs slow, we need to fix it.", you can always measure that and rephrase to something like "We measured our build time and concluded that every developer in our team loses 1 hour per day due to slow build".
Spot on. Every business person can do the math. If there are 5 developers in the team and they charge 50$ per hour this can roughly save 5000$ a month. You can also be blunt and say that this technical task can potentially save 5000$. However you go around it, the message is understandable and has a greater impact on our business audience.
There may be tasks where it is not possible to quantify things, but for a lot of them, it is possible to do it. As long as you can show the impact of that technical task the importance of it will come along.
In fact, my inspiration for this blog came from a current project that I'm working on. I wanted to illustrate how our slow Webpack and Rollup builds hinder the team's productivity. For this reason, I've built a plugin that monitors your build time. You can use it as evidence and can see the impact over time. I hope someone will find this useful, please let me know if you've used it feedback is appreciated.
Thanks for reading! 😀