Software Complexity Is Killing Us
Blah <i>bullshit</i> blah.<p>The reason software is so complex now is that our expectations as users is orders of magnitude higher than it was &quot;in the good old days&quot;.  I&#x27;m old enough to remember the good old days, so I can speak with a little authority here.<p>The Pareto principle may not be exactly accurate, but it describes many situations quite well.  And in software, it fits very well.  80% of the requirements take about 20% of the code (and complexity).  It&#x27;s the edge and special cases that add the bulk of the work.<p>When a program just did one useful thing, we humans would do our human thing and integrate several different programs with our manual effort.  If an edge case appeared, we didn&#x27;t even identify it as an edge case - we&#x27;re built for handling edge cases!  We just made the minor _human_ judgement and fixed the data and pushed it into the next program.<p>Software is complex because we&#x27;re trying to make it replace more human activity.  And beyond the core functionality, human activity is all about applying human judgement.  If anyone is familiar with people training people on a particular task, particularly the quaint concept of apprenticeship, it involves teaching and showing and mentoring until a student has enough knowledge AND wisdom to get the job done.<p>So to boil it down, modern software is primarily complex because it attempts to replicate human judgement and wisdom.<p>That software complexity is not killing us.  It may be a pain in the ass, but if anyone can remember what it was like before we had these tools, I would dare to say that it&#x27;s still a whole lot better than before computers.