As early as the 1950s, IBM programmers were working on software for things like submarine control systems and missile tracking systems, which were so complex that they could not be conceived and built in one go. Programmers had to evolve them over time, like cities, starting with a simple working system that could be tested by users, and then gradually adding more function and detail in iterative cycles that took one to six months to complete. In a 1969 IBM internal report called simply “The Programming Process”.
— Dave Gray (2011) Agile development
A small history excerpt from Dave Gray. This excerpt shows how much Agile isn’t – as many think – suited only for small projects: it was born in IBM and it was created specifically to cater a problem bigger than the actual planning possibilities with lots of variables and moving parts.
Another interesting detail that’s often overlooked is that even in its inception the release is not an option. You have to release to the final users, otherwise you aren’t really iterating. If you release only to your client, you aren’t really iterating, because you aren’t measuring and planning against the real world, but only against the fiction of the working team.
While, I agree, at the beginning you shouldn’t probably release (as you read above, a “cycle” could have lasted up to 6 months) it’s critical to test the platform with real users to really achieve the objectives of Agile.