The second value of the agile manifesto says “working software over detailed documentation.”
But what we try to do in Agile is to value working software over lots of other things as well.
Working software over complete understanding of requirements. Working software over strict adherence to non-functional requirements. Working software that does nowhere near enough to constitute a minimum viable product.
Why is working software so important?
The first reason is explained by this quote from Arthur C Clarke - “sufficiently advanced technology is indistinguishable from magic.”
People respond to working software in a completely different way than they respond to lists of requirements, drawinqs of UI, wireframes, or even clickable prototypes. The only thing that people react to like working software is workinq software.
Secondly, and it took a long time for me to understand this, although software development is complex, but the environment into which software is released is chaotic. The only way to really understand this environment is to deploy software into it.