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