Software does not wear out with use like other engineering artifacts, but instead its design deteriorates as it is changed repeatedly. As mentioned in the previous point, changes tend to introduce new defects; consequently the changed software tends to be worse in terms of design than the original. Over time, the design of successive versions of software may show significant deterioration to the point where a complete redesign is needed.