[ Content | View menu ]

Incremental and decremental development

Written on 28 May 2008

Nat Pryce just wrote this sidebar for our book

Incremental and Iterative Development

In a project organised as a set of nested feedback loops, development is incremental and iterative.

Incremental Development builds a system feature by feature, not module by module. Each feature is implemented as an end-to-end “slice” through all the modules of the system. The system is always integrated and ready for deployment.

Iterative Development progressively refines the implementation of features in response to feedback until they are good enough for purpose.

Yesterday we realised that there are two other categories of development:

Decremental development is where you improve the system by removing code; most systems could do with more of this.

Detrimental development is where the code you’ve just written has made the system worse.

Actually, we’ve found a couple of references for Decremental Development, one from Kevlin Henney, and a whole research proposal from Peter Sommerlad.

Actually, Nat might have thought of Detrimental Development first.

One Comment

Write comment - TrackBack - RSS Comments

  1. Comment by allan kelly:

    Early in my programming career I noticed how good it felt to remove code. Since then it has become an article of faith that removing code is the right thing to do.

    And if you are mistaken (very very rarely) you can always get it out of course code control. Thats why software development is different from hardware development or household DIY.

    28 May 2008 @ 16:30
Write comment