During the development phase where code can be produced that has been later changed for shifting requirements. Once the project is released and adjustment requirements has slowed we can go back and firm up some of the code that is considerably less than ideal due to the shift of requirements and its adjustments to meet them.

What is the technical term for this phase when the project is "complete" are you clean up working code?

  • 5
    – devnull
    May 25, 2017 at 12:59
  • This is tagged with agile, but there should be no such thing as "hardening" or "clean up after the project is complete" in agile swdev. You do this as you go.
    – RubberDuck
    May 25, 2017 at 16:23
  • 1
    @RubberDuck Har har. Of course you should, the point is it doesn't happen, due to those other agile rules: "it does not add business value so we won't do it" and "No goldplating!". And the most important one: no one owns the code. It is basically the Prisoner's Dilemma" at work. May 26, 2017 at 6:02
  • Stability is very important to business value, as is time to market. Technical debt affects both of those. Improving the code is something that anyone can and should do. No code ownership doesn't mean no responsibility. It's meant to be an enabling feature borrowed from the open source world. Jun 11, 2017 at 2:08

3 Answers 3


There are two terms for "cleaning up" depending on how drastic the changes are:

  • Refactoring -- small, easily reversible changes to enhance maintainability
  • Rewrite -- larger, targeted re-implementation of a subset of your software to improve its design and maintainability

As part of normal practice, refactoring should be encouraged. Targeted rewrites will need a bit more planning to get incorporated.


In timeline order:

A project is under feature freeze when no further functional requirements will be accepted.

A project is feature complete when all features have been implemented. Code cleanup can occur after feature complete. This is often referred to as paying down technical debt. If you were looking for a marketing term to tell a client, you might refer to it as hardening, which has more confident sound to it than "cleaning up our huge barf mess."

A project is code complete when coders are done doing anything other than reacting to defect reports. Cleanup should not occur during this phase unless it is related to a defect.

A project is under code freeze when the coders are done coding anything at all, including defect fixes. Often the repository is locked at this stage, or if it isn't locked, it is subject to version control history audits with each and every build, to ensure no changes sneak into the code base.


I think they call it "paying down technical debt".

As you write code in a hurry under pressure to met deadlines or just because you feel lazy you leave these bits of "less than ideal" code (debt). You can expect this to increase your costs later when you have to fix bugs or add new features (interest). You can try to avoid it by refactoring those bits of bad code (paying the principal).

This is assuming the project is not really "complete" and you have an interest in making it easy to maintain, otherwise you wouldn't care.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.