Everyone in software development knows the words: ‘just add this small thing and…’.
Mostly the people requesting the addition don’t have to live with the consequences.
These consequences double each and every time you add another option to an existing structure.
Every option you add, adds to the number of combinations your software must be capable to handle and combinations double according to the formula 2^n. So when you say yes for the 7th time. you go from 64 (2^6) to 128 (2^7) combinations that need to work and tested.
This basic formula supports the idea to separate software into services as this lowers the complexity at the start, allowing for more choices at the moment it matters. Keep an eye on your structure and you won’t be slowed down at the start.
Next to the basic issue of added complexity, you have organizational elements that come to play. Cognitive load is one of them - the software at hand needs ‘to fit in your head’. And not only yours as technology delivery is a team sport.
Photo by Tim Mossholder on Unsplash