Identify risky hotspots

The problem

Imagine you have one sprint to improve the codebase before a major feature push. You open the repository, stare at 120 packages, and try to decide where to start. The most complex class? The package that keeps breaking tests? The one everyone is afraid to touch? Without a way to see coupling and complexity at the same time, you end up picking based on intuition. Sometimes you get lucky.

Why it matters

The packages that deserve attention aren't just the complex ones. They're the complex ones that are large enough to be expensive, that many other packages depend on, or that carry real dependency traffic with nearby candidates. A gnarly utility package that nothing else uses is a local problem. A gnarly utility package that half your service layer depends on is a systemic one. Map gives you the first shortlist. Galaxy adds architectural reach and shows which candidates actually depend on one another.

Where to start

Begin with Hotspots.

Step by step

  1. Open the Hotspots map.

    Start exploring clears existing graph filters and opens Hotspots with the Complexity preset in Packages, Recursive, Map. It compares cyclomatic and cognitive complexity, sized by lines of code.

  2. Continue the shortlist in Galaxy.

    Switch to Galaxy without choosing a named Galaxy preset. AtlasArc preserves the Complexity reading, adds Fan-in as depth with high values brought forward, and overlays Routes between nearby package candidates.

  3. Inspect reach before choosing.

    Open a candidate and ask whether its complexity comes with enough size and incoming reach to make it expensive for the surrounding system. Routes show whether nearby candidates are structurally connected; they do not replace the complete dependency evidence in Topology.

  4. Run Zone Map as a fresh second pass.

    Return to Map and choose Zone Map to read Instability on X, Abstractness on Y, and Distance as size and colour. These coordinates ask a different question, so interpret its zones from scratch.

  5. Reframe with Risk horizon when useful.

    When Distance is available, choose the named Galaxy Risk horizon preset for another explicit reframe. Instability and Fan-in position packages, CC max controls size, Distance controls colour, and Fan-out controls depth.

Interpreting results

High complexity alone is not the whole priority decision. Start with the packages that combine strong complexity, meaningful size, incoming reach, or direct structural traffic with nearby candidates. Then inspect the package profile and concrete dependency evidence before choosing a refactoring target. Zone Map and Risk horizon are separate readings, not extra votes on the original Complexity shortlist. They can expose a different kind of architectural pressure, and that is the point.

Export & share

Use Export → Snapshot as PNG for the Complexity Map and its Galaxy continuation when Fan-in depth and Routes explain why a candidate matters to the surrounding system. Snapshot Zone Map or Risk horizon separately and label the question each image answers. Use Export → Data as CSV for the Hotspots metrics table when independent sorting and filtering help.