## Something is wrong with the software... The longer the project lasts, the harder it is to maintain. The more it becomes... [[Legacy]] ### 1st version Starting a project, we have a clear [[Vision|vision]] of what form the system should take. The project is a vivid image in our minds. And so it goes until the first distribution version. ^1st-version ### 2,3,...,N-1 Version Then something starts to go wrong. The software begins to rot like a piece of old meat. Over time, the decay spreads and grows. Ugly, festering sores and boils accumulate in the code, making its [[Maintainability|maintenance]] increasingly difficult. ### Nth version ![[#^immobility|Symptom]] ## Symptoms ### [[Rigidity]] ![[Programmers & rigidity#^symptom]] ![[Rigidity#^definition|Rigidity definition]] ### [[Fragility]] ![[Programmers & fragility#^symptom]] ![[Fragility#^definition|Fragility definition]] ### [[Immobility|Immobility]] ![[Programmers and Immobility#^symptom]] ![[Immobility#^definition|Immobility definition]] ### [[Viscosity]] ![[Programmers & Viscosity#^symptom]] ![[Viscosity#^definition|Viscosity definition]] ### [[Overdesign]] ![[Programmers and overdesign#^symptom]] ![[Overdesign#^definition|Overdesign definition]] ### [[Duplications]] ![[Programmers and duplications#^symptom]] ![[Duplications#^definition|Duplications definition]] ### [[Opacity]] ![[Programmers and Opacity#^symptom]] ![[Opacity#^definition|Opacity definition]]