Decision-making heuristics are patterns and ideas that can help us find another angle, generate new options, evaluate them, or otherwise address the problem. They don’t guarantee a good answer, they only give you some possible progress towards an answers.
The Legacy Mirror Heuristic1 helps you to evaluate whether to adopt a new idea, method, or technology. It works by imagining the new idea has actually been the mainstream choice for the past 30 years, and you just learned about the old idea for the first time.
(EventSourcing is a relatively niche way to store and work with data, based on a very old2 idea.)
A recurring question is whether to adopt EventSourcing in favour of more mainstream data storage. The common hot take is some form of “Use a relational database unless you have a very specific reason for EventSourcing”. The lack of literature, the slow adoption curve, the learning cost, and the availability of tooling, are cited as reasons to avoid it. That specific reason, then, is that the problem involves some temporal aspect.
Using the Legacy Mirror, we swap EventSourcing and relational databases in time. It’s speculative of course, but I think we’d be getting hot takes like “Use EventSourcing everywhere, unless you have a very specific use case, involving relations between data, that can only be solved using a relational database. Is the extra complexity that relational brings worth the efforts, such as the need for ORMs with their impedance mismatch and leaky abstractions, the costly migrations, the lack of tooling and literature, and the learning curve?” There would of course be plenty of EventSourcing tooling and literature, students would learn it in school, the patterns and anti-patterns would be widely documented.
I’m not saying the answer is now automatically to choose EventSourcing. Debates on technology choices are often blinded: one side sees the shiny new silver bullet, the other side is so invested in and well adapted to the downsides of the old method that they forgot that it, well, sucks.
I first used this to help clients decide on a technical choice. Like many of the heuristics I use, it started organically. Later I saw that it was a reusable pattern, and can be applied to all kinds of decision-making.
Don’t use the Legacy Mirror as a rhetoric device though. As a heuristic, a tool to introduce new lines of thought into the debate. But it evens the playing field: both the new and the old idea can be evaluated on merit, instead of purely the benefits and downsides of age.
And, often, the fact that something is new, is precisely the reason not to do it: you may not want to be a trailblazer on something that is not core to your business. (That’s another heuristic for you.)
As always, identify competing heuristics: “X is not our core business, but doing X will attract engineering talent, which will help us achieve our core business goals” is also valid.
“Should we go back to our offices post-COVID?” What if working from home was the norm, and the hot new trend was this new-fangled idea called “offices”?
People would think it’s silly to commute all the time to a different location, when you have a nice office set up at home. They’d cite the waste of time, the environmental impact, the fact that offices eat up real estate, the risks of transmitting diseases. Others would report on the benefits on in-person collaboration, the social contact, buying furniture in bulk, getting your laptop repaired by the IT person on the next floor. The outcome would not be “offices with special accommodation for working from home”, but “work from home with occasional in-person meetings”.