Businesses want to be able to have budgets and plans with a process. They also want to be agile such that they can adapt to a quickly changing world.
Ideally, they are focused on working on the most important things. There are people that rank everything that needs to be done and some other group of people carry them out.
Things can, and will, go wrong and take longer than expected. So long as there is regular communication and trust, everyone can constantly reprioritize to ensure they are all working on what’s most important.
Long-term deadlines and goals can be met by involving everyone early in the process so that the necessary parties can do their own planning and processes to line up architecture and design. Features that need to be out a certain time can be prioritized and worked towards.
Using metrics to estimate gives people a false sense of precision for an inherently murky real world. Random important things can come up like production bugs or some new better thing that can add more business value. Even worse, everyone’s interpretation of the tasks at hand can and will be different. It is impossible to sum these up and thus compare them over time.
To keep all these objectives in mind, perhaps the best course of action without a negative return on investment is to have a simple stack or queue of priorities. This would be public knowledge and can be split into major business lines so that there isn’t a crazy amount of context switching for the executioners and so tasks can be parallelized. There may even be some grouping of tasks that represent some chunk of work as long as something urgent takes precendence.
After these are sorted out, groups can see the major bodies of work coming up in the future and plan for them in their respective ways. This explicitly puts the onus on people communicating with each other, prioritizing, and building trust that they can get things done properly. Mistakes will be made and they should be learning exercises that refine the process.
I don’t want any illusion that this is some perfect way that I’ve worked in the past. It is my latest thinking on something that every company needs to do and perhaps something that would work and we should all conduct as an experiment.