Tuesday, November 17, 2020

Cargo Cult Programming

The Gods Must Be Crazy. 1915 Coke Bottle. Source: wikimedia

Many large enterprise software platforms were assembled from acquired components. There was no single architect nor a single architecture. The different pieces of the puzzle were designed by different programmers at different times and in different places. This means that a lot of code gets brought along in each new version that is possibly unnecessary. Nobody who knows how it works is still around in the company, but everybody is afraid to get rid of it, because they are afraid it will break something, so they just keep deploying it with future versions. We call this Cargo Cult Programming. The code contains artifacts that people keep using even though they don't understand how it works or even if it is necessary.

This makes for a nightmare of technical support. The details and design of the application appear idiosyncratic.

I get asked to implement new features and enhancements frequently and it becomes a search for a needle in a very large haystack to find the solution to a particular problem. And the documentation is typically dictionary-like. It explains what things are, but not how they work or how they fit together. There are no step-by-step examples showing how to implement a particular feature. At least that's the way it is in healthcare software.

And now you know how I spend much of my work day. One of the most valuable skills in IT is to be able to navigate the labyrinth of documentation to implement something that should be easy.

No comments:

Post a Comment