Le blog d'Archiloque

The 1:1 map trap

This article comes from a short story from Jorge Luis Borges:

… In that Empire, the Art of Cartography attained such Perfection that the map of a single Province occupied the entirety of a City, and the map of the Empire, the entirety of a Province. In time, those Unconscionable Maps no longer satisfied, and the Cartographers Guilds struck a Map of the Empire whose size was that of the Empire, and which coincided point for point with it. The following Generations, who were not so fond of the Study of Cartography as their Forebears had been, saw that that vast map was Useless, and not without some Pitilessness was it, that they delivered it up to the Inclemencies of Sun and Winters. In the Deserts of the West, still today, there are Tattered Ruins of that Map, inhabited by Animals and Beggars; in all the Land there is no other Relic of the Disciplines of Geography.

Suárez Miranda, Viajes de varones prudentes, Libro IV, Cap. XLV, Lérida, 1658

From this story, I use “doing a 1:1 map” to mean “manually copying a non-trivial quantity of data from a media with a high information density to another media”.

Doing a 1:1 map can be done for a one-shot need, or it can be kept updated with the source territory (or intended to be kept up to date).

Doing a 1:1 map is not wrong per se, sometimes it’s the right choice, but it must be carefully chosen by evaluating the associated cost and benefits.

Unfortunately, what often happens is that you intend to copy some information with a limited scope and a limited level of details, and little by little you expand the scope and the level of details because it would mean being able to answer more questions without accessing the source.

And <bam>, you’re doing a 1:1 map without having decided, and after a while you realize the associated costs are much higher than expected. It’s the 1:1 map trap.

Two common cases in software projects :

  • Detailed specification of a working application

  • Detailed schema of a software piece

It can even make the resulting 1:1 map unusable because the target media may not be suitable for so much data. For example, trying to rewrite intricate code in human language on a slide deck often ends poorly.

Some other approaches are available, like:

  • Checking is all data are absolutely necessary or if some of them could be skipped.

  • Working on how you represent things, like organizing the data differently than the source, or doing several sub-maps instead of a single one.

  • Replacing the manual mapping by the creation of a tool that generate the map or that makes the source data queryable.

So, when you’re replicating information, or intend to do so, try to ask yourself time to time “Am I planning to do / doing a 1:1 map?”.

And if the answer is yes, stop and be sure that if it’s what you want, what you really really want.