Building software is like building a road through a thick, uncharted jungle. You know where you are, and you know (approximately) where you're going, but there are many many problems to be solved along the way. Do you need to hack through thick underbrush? Is there a hill that needs to be flattened? A river to be bridged? No way to know until you get there.
This is also why traditional delivery planning fails. "How long is it going to take to build this road?" "Well, we know roughly how long, be we don't yet know the exact route we will take or the obstacles we will encounter, so we'll report on our progress and let you know when we arrive."
Comments
Building software is like building a road through a thick, uncharted jungle. You know where you are, and you know (approximately) where you're going, but there are many many problems to be solved along the way. Do you need to hack through thick underbrush? Is there a hill that needs to be flattened? A river to be bridged? No way to know until you get there.
This is also why traditional delivery planning fails. "How long is it going to take to build this road?" "Well, we know roughly how long, be we don't yet know the exact route we will take or the obstacles we will encounter, so we'll report on our progress and let you know when we arrive."