Evolutionary
design is a very hard to tackle task. All of us have been in the situation when
joining a new team and wanted to augment an old feature to a new design. It’s
really hard to be in sync with other team members.
Many
times when a developer complain about messy code, it’s really because of a lack
of consistency in the design. Adding a new feature needs assessment and so does
the evolutionary design.
The
article by Jimmy Bogard (Curbing long tail design) elaborated on the ‘Law
of two’. Meaning only allow at most two designs in your system. Before doing
other changes to the design, move all existing features to the new design. If you’re
working in small steps, this shouldn't be much of a problem.