2 ms·
One disastrous way microservices architectures can fail is when they stop being aligned with features and therefore stop test-driven development from working.
by samus 5y ago
One disastrous way microservices architectures can fail is when they stop being aligned with features and therefore stop test-driven development from working.
The promise of test-driven development is that there is a vanishing amount of code that is not under some sort of meaningful test coverage. Those tests have to target the smallest possible parts of the system to be efficient, else tests are just too brittle and slow.
Test-driven development works best for self-contained systems that represent the whole feature. Using it encourages architecturing the system in this way.
There are three environments where it doesn't work: graphical user interfaces, monoliths and distributed systems. The biggest issue with these is the huge state space to test and their comparative slowness. Also, they are usually expensive to set up and maintain.