From a software architecting perspective, layering applications mainly helps with the separation of concerns as well as modularity. Layering promotes code organization and collaborative development. A bad layering example is where business logic is mixed with presentation code. This creates a monolithic app architecture where layers are intertwined and difficult to extend, upgrade, or alter.