They say that the moment time travel is first available, it will, by definition, be available at all points in time.
This idea of creating something that suddenly pops up everwhere is quite interesting to me. One of the things I try to do in any contract I take on is find a force multiplier.
Force multipliers are techniques/inventions/lessons that once learned suddenly apply all over the place making everything run better.
For example, let’s say we wanted to use Docker to make something work better. We fathomed out how to make Docker fit our particular purpose, and we learned the moves to run it, debug it, and generally master using it.
If that purpose was common across our stack, the investment in the first use case would start paying dividends across all efforts.
I’m currently working on software across three different products at the moment. Nearly everything is being done this way for the first time. We’ve got no existing assets to copy from when it comes to a variety of things. Nothing’s hard. Often all we need to do is choose a technique, prove it out, then use it.
For example, we want to do multi-node Spring. That requires shared session management. So we chose Redis and Elasticache. Once we had a working example, we had a huge leg up to do the same thing for another Spring project which needed to go multi node.
Or, we wanted to host our sites with https, for which Amazon’s ACM is a great choice. After trying it out in one project, we were able to apply it to the others with virtually no effort.
In many ways, these force multipliers are a case of something to copy and paste… but it’s more than that. When you’re doing lots of things for the first time, there’s a huge gain to be had from spreading that technique across all the work, once it’s good enough. The impact of lots of first-pass implementation of something is greater across the team than the impact of going deep on just one.
The qualifying statement “once it’s good enough” is critical, though. Ideas can be too embryonic to share. Maybe there’ll be too much change required in all projects, if we go too early.
However, what’s delightful is watching various improvements happening simultaneously across our small team at the moment. Each success in one corner is rapidly reflected in all the work, making the overall effort lower.