— “It is our vision that developers can speak of code as
up in the north',over in the west', or `down-under in south'. We want to provide developers, and everyone else involved in software development, with a shared and spatial and stable mental model of their project. They way we try to reinforce this, is by providing a map in the Integrated Development Environment (IDE). The map is always visible in the bottom-left, just like the GPS navigation device in your car. For each development task, related information is displayed on the map.”
The consistent layout of codemaps helps to establish a stable mental model of software systems. Codemaps use the same visual language as cartographic visualizations found in an atlas. Different phenomena, ranging from population density to industry sectors, weather forecast, birth rate, or even flow of trade, all displayed and expressed using the same layout.
Software Cartography helps to
- navigate within a software system.
- relate different metrics to each other, eg search results and bug prediction.
- stay aware of the actions of other developers of your team,
- understand a system's domain upon first contact.
- explore a system during reverse engineering.
On a codemap we can display
- test coverage, bug prediction,
- code ownership and open files of other developers,
- search results, declarations and references,
- control and data flow, stack traces,