[1/*] If we take the chance that a tool (compiler, linker, batch, whatever) remains working for a particular codebase after one year as a given probability p, then the chance that build remains working after x years is p^xn, where n is the number of tools used in the build.
-
-
[7/*] Now imagine that we don't say "tool". We just say "dependency". The equation _remains the same_. Modern codebases often have 10s, 100s, or even 1000s of dependencies! What does that do to this graph?
Show this thread -
[8/*] Here is the graph of 10, 100, and 1000 dependencies, assuming a never-happens-on-github percentage chance of a dependency not breaking your build at 99%:pic.twitter.com/kHM2ayp2Y8
Show this thread -
[9/*] 10 dependencies sort-of works. It has a 60% chance of still working after 5 years. 100 dependencies doesn't work. It's less than 40% after just 1 year. 1000 dependencies breaks with almost complete certainty after a mere _four months_.
Show this thread -
[10/*] All of this is already something you know intuitively. Projects with lots of dependencies never work out-of-the-box. You are constantly updating, patching, and struggling to get their builds working, because every time something downstream changes, somebody has to fix it.
Show this thread -
[11/*] The "dependency culture" of modern programming has put us into a state where software requires perpetual, constant maintenance. No longer can we take a build and say "this works" and come back to it in a year. Great for job security, horrible for software quality.
Show this thread -
[12/*] As for speculation, I wonder, at least in part, if this answers the questions me and other people like me have, which is how do companies like Twitter employ thousands of developers while seemingly producing almost no additional software or improvements?
Show this thread -
[13/*] Well, if you assume that Twitter's collective codebase is a 1000+ dependency nightmare, as I assume it probably is, then the math kind of tells us the answer: the vast, vast majority of their time will have to be spent simply keeping their existing code working.
Show this thread
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.