- Software development is unpredictable because it is complex. It's hard to predict how long it will take to build up a solution if you haven't built one like that before.
- Because it is complex, you have to react to problems.
- Plan driven methodologies like Waterfall have an inbuilt resistence to change. They're based on long plans which then get taken as promises to senior leaders.
- Plans such as architecture diagrams or wireframes could be flawed and you only really realise these flaws in the process of development and testing.
- Therefore we need to accept unpredictability, keep plans loose and build to learn.