## 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]]