Image credits: Alejandro Polanco
So, you are a technical leader and you and your team is building a product. There are a lot of moving parts: the requirements that constantly fail to be static and well defined, the company’s infrastructure is moving forward somewhat, the codebase you are working on.
How to keep the development efficient and not stall while some decisions were not made just yet? How to tackle changing environment? What to do next on the project?
I use a simple heuristics that I found very useful for that.
Image credit: Natalio
Imagine your product should be released just now.
Will that happen? No? Why exactly? What is blocking it?
Be very specific about the reasons and put it into one of the two buckets: technical reasons and product reasons.
I use terminology a bit loosely. The product reasons are the features that should exist in the product.
If all the reasons why your product won’t be released today are solely in the product category (like, it can be deployed today, it is tested, but one of the critical features is missing), then you have nothing else to do than start working on this missing feature.
Usually though, that’s not the case. There are plenty of technical obstacles to be solved or avoided before the product can be released.
I suggest to focus on the technical issues as soon as possible.
**Why focusing on technical issues first?**Business is not static. While you are building the product, requirements and priorities might shift a couple of times. You, as technical expert, need to keep product in a releasable state all the time, with any set of features.
**The Technical reasons**Some types of technical reasons to think about:
Some of these technical reasons might sound pretty non-technical. But technical decisions aren’t only related with the code written, they are much more than that.
Not all the reasons might be easily go into one category, or another.
Sometimes, you might get blocked by some agreement or just email chain or something else. Don’t just wait for it, remember the concurrent programming model and switch yourself to the next reason unsolved.
This simple heuristics helped me a lot with building my projects, and I hope it will help you to build yours as efficient as possible.