This is a simple theory: A "process" is merely the way one does their tasks. A process improvement then simply is about doing them better. Agile processes simply put are ways of working better and the iterative process enables responding to changes quickly using a business approach that aligns product development with customer need.
However, this may not be as simple to implement in the startup context. For one, most startups have the single most pressing need when they begin: they need their first client. Money talks and revenues are the clearest evidence that the startup is tackling the correct problem. Therefore the early phase startup often struggles with innovation as building to sell often takes precedence over building it well. Secondly demo-able working software is damn important and therefore shorter the sprint cycle, the better it works. A recommended sprint cycle for startups is under a week where-in feature releases are done on a weekly basis at maximum. Longer sprint cycles have been shown to actually impact flexibility. Apparently pair programming doesn't work too well for startups either, simply because it’s too expensive. Pair programming for sure brings up the quality of code to much higher levels than without it. However this comes at a cost to startups given the apparent loss in productivity amid their desperation to ship out a product and recognize revenues as soon as possible.
The importance of communication in an agile process cannot be under-emphasized and this remains an issue even for small start-ups. More so, collaboration has been a challenge for the startup that isn't naturally ready to quite adopt the agile culture which brings us to another moot point: agile processes are being introduced in startups without any attention having being given to the fundamental need for a culture shift.
A mix of the following factors typically indicates the best environment for adopting agile: a team of mature/senior developers, small teams (there are potential problems to scaling agile) and a culture that thrives on some amount of disorder. On the other hand, a waterfall approach is best where a project is mission critical, has huge teams with a large proportion of junior developers and where the working culture is such that it requires order.
Lean Startup is a new methodology typically being practiced by the new startup and this technique combines the offerings of Agile Software Development and Customer Development using already existing software platforms that are usually of the free-and-open-source-software (FOSS) type.
This technique falls back on quick prototyping that are designed to evaluate market assumptions, and uses regular and frequent customer response to evolve faster (by evaluating and avoiding erroneous market assumptions as early as possible). It is rather common to see Lean Startups deploy code multiple times a day, using a practice that has come to be known as Continuous Deployment. One startup out there does as many as 50 deployments a day. Focus is then thrown on the minimum viable product which then is a collection of only those features that allows for a product to be deployed (and no more).