Building software is having no fixed deadline. Below are some reasons why.
Software vs Physical Products
Software products are hard to wrap the head around when compared to physical products.
A physical product occupies physical space which of course software does not.
Once a physical product is made, unless it is designed for modification, it cannot be modified.
The software can be modified and improved at any time.
There is always something to do
When you look for problems to solve, you’re sure to find something.
- Optimize code.
- Clean code up and make ready for the future.
- Fix bugs.
And it can be hard at times to stop.
Something can be built easily but we spend a lot of time deciding what the future thing might be and then we over-engineer.
I have been guilty too.
The reason to stop.
It is said that in any software product around 70% of features are not used.
Many software themselves are not used.
Time spent fixing this trivial non-existent problem can be spent fixing some other big problems.
Human Intuitions and Definition of Done
Humans can find ways to improve everything. Our judgment is not objective. We need something objective.
Having a strong definition of done can help be objective.