The Successful Software Manager
上QQ阅读APP看书,第一时间看更新

Incremental development, over big-bang releases

This is fundamental to any Agile practicing project, because of its suitability for an uncertain future environment, which is a principle assumption for Agile. It's logical to work and deliver in smaller chunks when you don't have a definitive target endstate because it's expected to change or it's simply impossible to know.

This is in contrast to large-scale physical infrastructure projects, where almost all details of the end-state are known and agreed before significant work starts. It's not a good idea to start drilling and putting foundations down until you know where, and how high and wide the building needs to be. You can include some scope to compensate for variability by over-specking to some degree. But that will impact your cost and, most likely, time.

So, starting with your Minimum Viable Product (MVP) or Minimum Marketable Features (MMF), and then improving your software through many releases, is preferred over the "perfect first time" mindset.

This is the reason for incremental development's popularity, particularly in web software products. Combined with a flexible technology stack, the time and cost to market and re-market are minimized.