Tar-baby is a metaphor I find myself using and having to explain quite often. Metaphors are the essence of communication. They enable us to compare and contrast a situation in great detail with very few words. For instance, I can say “sour grapes” and evoke the entire Aesop story of "The Fox and the Grapes" to compare and contrast a particular situation. I assume that all literate individuals are familiar with Aesop’s fables and make the allusion with confidence. I cannot make the same assumption about Uncle Remus.
The Tar-baby is one of the stories by Uncle Remus. I heard these stories as a kid growing up the South. Maven’s Word of the Day sums up the idea quite succinctly:
Tar-Baby was a doll made of tar and turpentine, used to entrap Br'er Rabbit in the second of the Uncle Remus stories. The more that Br'er Rabbit fought the Tar-Baby, the more entangled he became. In contemporary usage, "tar baby" refers to any "sticky situation" that is only aggravated by additional contact. The only way to solve such a situation is by separation.
Some technologies or technical approaches are tar-babies. Experience teaches the senior engineer to avoid these technical approaches because he has witnessed the consequences. Most tar-babies look innocuous enough. A team faces a technical challenge and they decide to apply a particular approach. Once the team starts applying the approach, other problems start to crop up. The team applies fixes to the new problems, only to see the fixes spawn even more problems. Each supposed fix causes only more problems to arise. The team struggles and struggles until it is stuck.
It is very hard for a junior team to recognize the tar-baby while they are engaged day to day struggling with it. It is hard to conceive that the initial innocuous solution to problem is actually the root cause to all subsequent problems.
A simple example of a technology tar-baby is putting metadata in an identifier. One sees it all the time. The team decides to create a unique identifier for an object by combining metadata of the object. It might be a purchase order, for instance, so they combine the date, the customer ID and a character indicating the payment terms. Inevitably, new metadata needs to be added. Situations arise that are ambiguous to the metadata. The metadata out grows the length of the identifier. It is one mess after another until over time it becomes unmanageable. The senior engineer knows: do not put metadata in the identifier; it is a tar-baby.
I keep my eye out for tar-babies within the client companies that I work with. As Br’er Rabbit learned, the only solution is separation. Nip it in the bud. But then, that is another metaphor.