Antipattern: Under-Modularization

Author(s): Andreas, Theo, Christian, Felix

Software systems are divided into too few modules at run time (e.g. containers) or build time (e.g. Maven modules, packages). This modularization has disadvantages compared to a modularization into more modules. The modules are too big and therefore harder to understand, maintain, secure, deploy and scale horizontally. Due to missing boundaries in the code the risk of dependencies and data sharing across different functions increases.

What are some examples?

Why does this happen?

How can we avoid getting into the situation in the first place?

What are suggestions to get out of the situation if we ended up in it?