It is easy to sympathize with software developers trying to build large, complex enterprise software solutions. At the start, a software development project is like a smooth sheet of ice: full of possibility. It’s
a clean slate, free from architectural flaws, bugs, and broken code. But once the first line of code is written, complexities begin to layer one on top of the other. Before you know it, your software project looks more
like the aftermath of a hockey game than a pristine ice surface.