Tags: design smell
Symptoms of a bad architecture / rotting design:
*Rigidity*
Rigidity is the tendency for software to be difficult to change even in simple ways. Every change causes a cascade of subsequent changes in dependent modules. What begins as a simple two day change to one module grows into a multi-week marathon of change in module after module as engineers chase the thread of the change through the application.
*Fragility*
Fragility if the tendency of software to break in many places every time it is changed. Often the breakage occurs in areas that have no conceptual relationship with the area that was changed.
*Immobility*
Immobility is the inability to reuse software from other projects or from parts of the same project. It often happens that one engineer will discover that he needs a module that is similar to one that another engineer wrote. However it also often happens that the module in question has too much baggage that it depends on.
*Viscosity*
When faced with a change, engineers usually find more than one way to make the change. Some of the ways preserve the design, others do not (i.e. they are hacks). When the design preserving methods are harder to emply than the hacks, then the viscosity of the design is high. It is easy to do the wrong thing but hard to do the right thing.
Last published: Monday 3rd May 2010
<<Previous Next>>