AppMap effortlessly makes code boundaries and "seams" appear. The Dependency View shows how well-coupled any module is from the rest of the application, making the choice of a new code boundary much easier to make.
Unlike static analyzers, an AppMap would also show how often a particular function or module is used during the life of an application, making it trivial to spot rarely-used code. This kind of information can be critical when deciding how much effort to spend refactoring legacy applications.
Cyclic dependencies make code hard to maintain, because all the code in the cycle is inter-dependent. While it might appear that the code in the different packages has separate functions, in essence any code in a cycle acts like one big package. AppMap Analysis can find any circular dependency, which allows developers to catch them before they even submit their code for review.
As monoliths grow, some of its functionality can be extracted and deployed separately as an independent microservice. While simple in concept, performing this kind of surgery is time consuming and difficult without a visual representation of the code's architecture. AppMap provides exactly that view, allowing developers to choose the right modules for becoming standalone services.