Rewrite (programming) - Risks

Risks

Several software engineers have warned against total rewrites, especially under schedule constraints or competitive pressures. While developers may initially welcome the chance to correct historical design mistakes, a rewrite also discards those parts of the design that work as required. A rewrite commits the development team to deliver not just new features, but all those that exist in the previous code, while potentially introducing new bugs or regressions of previously fixed bugs. A rewrite also interferes with the tracking of unfixed bugs in the old version.

The incremental rewrite is an alternative approach, in which developers gradually replace the existing code with calls into a new implementation, expanding that implementation until it fully replaces the old one. This approach avoids a broad loss of functionality during the rewrite. Cleanroom software engineering is another approach, which requires the team to work from an exhaustive written specification of the software's functionality, without access to its code.

Read more about this topic:  Rewrite (programming)

Famous quotes containing the word risks:

    There are risks which are not acceptable: the destruction of humanity is one of them.
    Friedrich Dürrenmatt (1921–1990)

    The amount of it is, if a man is alive, there is always danger that he may die, though the danger must be allowed to be less in proportion as he is dead-and-alive to begin with. A man sits as many risks as he runs.
    Henry David Thoreau (1817–1862)

    There are risks which are not acceptable: the destruction of humanity is one of them.
    Friedrich Dürrenmatt (1921–1990)