We’ve heard this story before. A new software library is open sourced on Github by a team of good samaritan developers who seek neither fame nor money. Now teams all over the world are mulling over how many lines of code it can eliminate, how it would solve all their own problems and probably deliver world peace. Your manager assigns you the responsibility for a transition plan because competitive edge, productivity and other buzzwords.
I believe making it free to release software has contributed a lot of noise to the ecosystem but that’s for a later post.
The most important aspect of this decision is the Lindy Effect. It was popularised by Nassim Nicholas Taleb in his book Antifragile. It applies to things of an informational nature. Taleb explains it thus:
If a book has been in print for forty years, I can expect it to be in print for another forty years. But, and that is the main difference, if it survives another decade, then it will be expected to be in print another fifty years. This, simply, as a rule, tells you why things that have been around for a long time are not “aging” like persons, but “aging” in reverse. Every year that passes without extinction doubles the additional life expectancy. This is an indicator of some robustness. The robustness of an item is proportional to its life!
So if Java has survived for 10 years you can expect it to survive 10 more years. Similarly, if a latest library was released 3 months ago the statistical expectation is that it will survive 3 more months. Betting your technology infrastructure on something with 3 months of expected life is a bad idea. If you take only one thing away from this post make it this one.
Below I’m including some more indicators to supplement your decision but picking a good library is similar to a chef picking good ingredients. You have to know the sources and processes that ingredient came from to make a good decision.
Pick one that is backed by a commercially viable company. To be well supported in the long run there must be a group that is financially invested in its success.
The version number - at least 1.0 please.
The tool’s QA must be an automated one to claim robustness or agility.
External developer interest (Github stars) is also a decent signal but it can be gamed.
Good technology has singular focus. Frequently described in words does one thing well. Yeah, I’m highly skeptical of any product that promises world peace.
The team should ideally be artesanal. I mean professionals who view their job as craft and who actually care about what they sign their name on. And yeah, a decent number of experienced and married folks to provide adult supervision.
If you still choose to adopt that new technology you should think about the learning curve and integration effort. Integration is not just about the technical requirements. Many tools have second order effects that can change your workflow entirely. For example, adding a live chat widget to your marketing site. Will it actually lead to a higher customer satisfaction if your staff have to reply at mid-night hours?
Lastly, you must answer why this takes priority over all the other things you can do with that time and resources. Yes even if it takes just 1 day you must still have an answer.
There I hope you’ll have a more informed answer after going through these critera.