[3/*] With just one tool, the build has an over 95% chance of working after five year. With ten tools, it has only a 60% chance! And that's with every tool having a _99%_ chance of remaining working (meaning no breaking changes to the tool that affect the build in question).
-
Show this thread
-
[4/*] If we assume a still probably favorable given today's environment, but slightly lower p of 90%, the graph now looks like this:pic.twitter.com/rGIdVncsEB
1 reply 0 retweets 38 likesShow this thread -
[5/*] This is, of course, an epic disaster. With just 3 tools used, after 5 years there is _very little chance_ that your codebase will still build correctly. And that's at 90% and just 3 tools!
2 replies 2 retweets 42 likesShow this thread -
[6/*] If you look at 90%/10 tools, heaven forbid, that bottom line says your build almost certainly doesn't work after only 2 years... and in fact has barely a 30% chance of working after just 1 year!
1 reply 0 retweets 36 likesShow this thread -
[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?
2 replies 1 retweet 55 likesShow 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
1 reply 5 retweets 45 likesShow 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_.
3 replies 2 retweets 35 likesShow 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.
3 replies 3 retweets 62 likesShow 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.
9 replies 13 retweets 121 likesShow this thread -
Replying to @cmuratori
I have feelings about this. They are too strong and numerous to sort through, so I will let it manifest as anger at web developers.
1 reply 0 retweets 1 like
Totally fair, I will not stand in your way.
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.