#todo this article is currently in progress
## 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]]
Every programmer ever;
> *It was more complicated than I thought*
^rigidity
![[Rigidity#^definition|Rigidity definition]]
### [[Fragility]]
Every programmer ever
> After all, I didn't touch that
^fragility
![[Fragility#^definition|Fragility definition]]
### [[Immobility|Immobility]]
Every programmer ever
> I'd better write it from scratch
^immobility
![[Immobility#^definition|Immobility definition]]
### [[Viscosity]]
Every programmer ever
> It is much simplier to put next `if else` there
^viscosity
![[Viscosity#^definition|Viscosity definition]]
### [[Overdesign]]
Every programmer ever
> I will do it like this, it will be for the future
^overdesign
![[Overdesign#^definition|Overdesign definition]]
### [[Duplications]]
Every programmer ever
> It is not exactly the same thing
^duplication
![[Duplications#^definition|Duplications definition]]
### [[Opacity]]
Every programmer ever
> Who messed this up for you so badly?
^opacity
![[Opacity#^definition|Opacity definition]]
---
![[Events.base#Linked events]]