LeanStartup and Agile are incremental software development methods with similarities but a lot of fundamental differences.
Where Agile (philosophy based on Agile manifesto) is used for incrementally developing software projects, LeanStartup is aimed for incrementally building successful startups (of services or products, startup doesn’t necessarily means little company in a garage), discovering successful business models when encountering high uncertainty in the market.
We can say that both of them aim not to develop the wrong product, and if doing so, discover it as fast as possible.
Both of them are not really alternatives for strictly defined large projects (with external constraints or regulations for example) but rather for medium and little sized projects and teams that are able to face and accept frequent requirements changes.
The main key of both methods is the customer feedback (needs to be highly involved in Agile and can even not be known at the beginning of the process in LeanStartup) that will determine;
- In case of agile; validation of the iteration and definition of the next one, refactoring if necessary.
- In case of LeanStartup; reaction of customers (using metrics) to the “minimum viable product” will help to decide if to persevere or pivot.
Both methods aim to quickly detect if the project is in the wrong path (or product) and immediately reacts, avoiding waste of resources and money.
With LeanStartup, if you fail you will fail fast and minimize costs of failure.
Both of methods place the human in the center and not the processes; they then require highly skilled developers (not only capable to translate strictly designed system to implementation), capable to work on quick and small batches with interleaved development process.
If we wanted to summarize these both methods tries to achieve quality and customer satisfaction faster and cheaper as possible. They are not concurrent methods but rather used in different contexts.