How a SDM shoots at a moving target
âHi Bob, I saw your team started design work on feature X. I thought your top priority right now is feature Y. How come you decided to start X in the middle of Y?â I asked a SDM.
âYeah we canât really get Y going until Product Management finalizes their requirements. So I thought maybe we will design X first.â
âHmmâ I contemplated on Bobâs dilemma.
âIt is a common project management problem indeed. We all know project Y is our most important feature of the year. But Product Management needs more time to get their thoughts together. On the other hand, we are doing ground breaking things nobody has done before in project Y. There are risks of unknown unknowns. Waiting on PM to finalize the decisions will only make the risks higher. We want to start the work on project Y as early as possible.
âBut how do we start working on a project without finalizing the requirements? It is like shooting at a moving target!â Bob was not convinced.
âWell shooting at a moving target is definitely hard, but it is not impossible. It takes a lot of practice but as they say in shooting world: it is all about the lead!
We can apply the same technique in project management. We donât know all the requirements of project Y, but we know some that wonât change anymore. We also know the non functional requirements that wonât come from PM: availability, scalability, extensibility, modularity, composability etc. We can pick the requirements that are not moving as a Minimum Viable Product (MVP), use it to drive non-functional system design and implementation.â
âSo we should start writing design doc for project Y?â, Bob started to get it.
âNot necessarily. Writing document is a mechanism to artificulate the problem, requirements, itâs goal and the important design decisions. Depending on the nature of the project, early prototype combined with writing design document can be a good way to mitigate the unknown unknowns. But sometimes a snapshot of a whiteboard session is sufficient to start the prototype.â
âBut what about we make wrong decisions on the design? Shouldnât we do design reviews? â, Bob asked.
âIt is really up to you. Spending a long time on a design document does not make it a good design automatically. Software engineering is more like painting - you sketch layer after layer, correcting the mistakes you made is part of the iterative process. The important thing is to differentiate two way door decisions vs. one way door ones. Two way door decisions are either the things we will do no matter how the unknown requirements will be, or the things we can easily redo. One way door decisions are hard to revert therefore we often need more time and more data. But most decisions are two way doors, bias for action is the right mindset most of the time.
If the target is moving, take a lead and shoot! Missing the target is fine, we learn, and try again. You will never hit the target if you never try!â
Last updated
Was this helpful?