<story><title>Software Complexity Is Killing Us</title><url>https://www.simplethread.com/software-complexity-killing-us/</url></story><parent_chain><item><author>ravenstine</author><text>I&amp;#x27;m disagreeing with your point that users are expecting more of software. Their expectations have changed in some ways, but not really in any that makes software significantly more complex.&lt;p&gt;To shorten my last post, it&amp;#x27;s poor development practices and a lack of foresight from upper management that makes software too complicated. You could make an interface that looks like it&amp;#x27;s from the mid 2000&amp;#x27;s(garbage by today&amp;#x27;s standards) and people would still use it if it works well and is reliable.&lt;p&gt;Look at HN. Do we need more from it than it already provides? If it was up to the average upper management, the backend would need constant retooling for every feature request from different departments, 12 forms of analytics, newsletter signup forms in between posts, job alerts, a mobile app with a nag message on mobile pages, single sign on from Facebook and Google, share buttons, a waffle iron, etc. None of which the actual users and even the developers ever wanted.&lt;p&gt;EDIT: Some people might point to Slack as an exception to my argument.  Indeed, Slack looked very nice compared to the competition when it first came out.  But what made it a killer app was that it took the best of the IRC experience and made it a universal experience between devices and browsers.  Plus it can use a company&amp;#x27;s SSO.  When it first came out, it was also not very complicated.  I remember when it didn&amp;#x27;t have reactions or threads, but it was a breath of fresh air after having come from using things like HipChat and Gchat, both of which were pretty dreadful.</text></item><item><author>blunte</author><text>I think either you are not understanding me, or I&amp;#x27;m completely misunderstanding you.  What you&amp;#x27;re saying seems orthogonal to my arguments...</text></item><item><author>ravenstine</author><text>I disagree. Users, in reality, don&amp;#x27;t care about all the crap that stakeholders and some developers care about. They don&amp;#x27;t care about Material design, fancy animations, beautiful buttons, &amp;quot;elegant&amp;quot; code,a ton of niche features, mobile apps(no I&amp;#x27;m not kidding), your annoying push notifications, your fancy menu bars that you also fix to the top of the screen for whatever reason, your autoplay videos, your little &amp;quot;delightful&amp;quot; asides that interrupt the content, etc. They want something that &lt;i&gt;works&lt;/i&gt; without much effort or worry that the software will fail, and that doesn&amp;#x27;t necessarily have to do with how fancy or feature rich an app is.&lt;p&gt;Craigslist and the Quartz app are just a few examples of what I&amp;#x27;m talking about. Nobody except maybe some stakeholders ever asked for those things to be more fancy than they are. They are simple and they work. The end.&lt;p&gt;Unfortunately, we are in an era where everyone wants to be like Google, or at least thinks they need to. I do not believe that the rest of the world would be worse off if they stopped spending time making &amp;quot;production ready&amp;quot; software that visually competes with the Big 5.&lt;p&gt;Software becomes complex because we allow it to become complex. Just because you can add another feature doesn&amp;#x27;t mean that you now have more value for a finite amount of pay for X developer time. Companies seem often blind to continual costs for support that go up every time each time the solution is to add a new feature or software package for a small segment of the customer base or the company itself.&lt;p&gt;Whomever is in charge should acquiesce less often. But everyone wants to be a wizard.</text></item><item><author>blunte</author><text>Blah &lt;i&gt;bullshit&lt;/i&gt; blah.&lt;p&gt;The reason software is so complex now is that our expectations as users is orders of magnitude higher than it was &amp;quot;in the good old days&amp;quot;.  I&amp;#x27;m old enough to remember the good old days, so I can speak with a little authority here.&lt;p&gt;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&amp;#x27;s the edge and special cases that add the bulk of the work.&lt;p&gt;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&amp;#x27;t even identify it as an edge case - we&amp;#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.&lt;p&gt;Software is complex because we&amp;#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.&lt;p&gt;So to boil it down, modern software is primarily complex because it attempts to replicate human judgement and wisdom.&lt;p&gt;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&amp;#x27;s still a whole lot better than before computers.</text></item></parent_chain><comment><author>enobrev</author><text>If HN was so perfect of an experience, then I and many others wouldn&amp;#x27;t use an app to consume and interact with it.  I come here for the conversation and curation, but the UX on mobile is awful.  It&amp;#x27;s far too easy to make mistakes.  I can&amp;#x27;t even upvote properly without a very high probability of down-voting instead (at least we can cancel the down votes now).   Just because You don&amp;#x27;t care about the design doesn&amp;#x27;t mean the design isn&amp;#x27;t useful or even necessary for an application&amp;#x27;s success.&lt;p&gt;I agree with your point about nagging, popups, and analytics, but I don&amp;#x27;t think the existence of those annoyances are an argument against the OP.</text></comment>
<story><title>Software Complexity Is Killing Us</title><url>https://www.simplethread.com/software-complexity-killing-us/</url></story><parent_chain><item><author>ravenstine</author><text>I&amp;#x27;m disagreeing with your point that users are expecting more of software. Their expectations have changed in some ways, but not really in any that makes software significantly more complex.&lt;p&gt;To shorten my last post, it&amp;#x27;s poor development practices and a lack of foresight from upper management that makes software too complicated. You could make an interface that looks like it&amp;#x27;s from the mid 2000&amp;#x27;s(garbage by today&amp;#x27;s standards) and people would still use it if it works well and is reliable.&lt;p&gt;Look at HN. Do we need more from it than it already provides? If it was up to the average upper management, the backend would need constant retooling for every feature request from different departments, 12 forms of analytics, newsletter signup forms in between posts, job alerts, a mobile app with a nag message on mobile pages, single sign on from Facebook and Google, share buttons, a waffle iron, etc. None of which the actual users and even the developers ever wanted.&lt;p&gt;EDIT: Some people might point to Slack as an exception to my argument.  Indeed, Slack looked very nice compared to the competition when it first came out.  But what made it a killer app was that it took the best of the IRC experience and made it a universal experience between devices and browsers.  Plus it can use a company&amp;#x27;s SSO.  When it first came out, it was also not very complicated.  I remember when it didn&amp;#x27;t have reactions or threads, but it was a breath of fresh air after having come from using things like HipChat and Gchat, both of which were pretty dreadful.</text></item><item><author>blunte</author><text>I think either you are not understanding me, or I&amp;#x27;m completely misunderstanding you.  What you&amp;#x27;re saying seems orthogonal to my arguments...</text></item><item><author>ravenstine</author><text>I disagree. Users, in reality, don&amp;#x27;t care about all the crap that stakeholders and some developers care about. They don&amp;#x27;t care about Material design, fancy animations, beautiful buttons, &amp;quot;elegant&amp;quot; code,a ton of niche features, mobile apps(no I&amp;#x27;m not kidding), your annoying push notifications, your fancy menu bars that you also fix to the top of the screen for whatever reason, your autoplay videos, your little &amp;quot;delightful&amp;quot; asides that interrupt the content, etc. They want something that &lt;i&gt;works&lt;/i&gt; without much effort or worry that the software will fail, and that doesn&amp;#x27;t necessarily have to do with how fancy or feature rich an app is.&lt;p&gt;Craigslist and the Quartz app are just a few examples of what I&amp;#x27;m talking about. Nobody except maybe some stakeholders ever asked for those things to be more fancy than they are. They are simple and they work. The end.&lt;p&gt;Unfortunately, we are in an era where everyone wants to be like Google, or at least thinks they need to. I do not believe that the rest of the world would be worse off if they stopped spending time making &amp;quot;production ready&amp;quot; software that visually competes with the Big 5.&lt;p&gt;Software becomes complex because we allow it to become complex. Just because you can add another feature doesn&amp;#x27;t mean that you now have more value for a finite amount of pay for X developer time. Companies seem often blind to continual costs for support that go up every time each time the solution is to add a new feature or software package for a small segment of the customer base or the company itself.&lt;p&gt;Whomever is in charge should acquiesce less often. But everyone wants to be a wizard.</text></item><item><author>blunte</author><text>Blah &lt;i&gt;bullshit&lt;/i&gt; blah.&lt;p&gt;The reason software is so complex now is that our expectations as users is orders of magnitude higher than it was &amp;quot;in the good old days&amp;quot;.  I&amp;#x27;m old enough to remember the good old days, so I can speak with a little authority here.&lt;p&gt;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&amp;#x27;s the edge and special cases that add the bulk of the work.&lt;p&gt;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&amp;#x27;t even identify it as an edge case - we&amp;#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.&lt;p&gt;Software is complex because we&amp;#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.&lt;p&gt;So to boil it down, modern software is primarily complex because it attempts to replicate human judgement and wisdom.&lt;p&gt;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&amp;#x27;s still a whole lot better than before computers.</text></item></parent_chain><comment><author>jdmichal</author><text>I think users are expecting more, but not necessarily in the ways you are imagining. It&amp;#x27;s about how much of the process users expect to be automated vs how much needs intervention. I&amp;#x27;ll redirect to my other comment:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=16261510&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=16261510&lt;/a&gt;&lt;p&gt;&amp;quot;Software is really about codifying process -- pun completely intended. What happens is some slick new software comes along that implements that happy 80% path on the process, and does it quickly and efficiently. Then business complains about the 20% falling into the gap, and starts adding features to reduce that, thereby slowing down the processing. This keeps going, until someone has an idea and implements slick new software that implements that happy 80% path on the process, and does it quickly and efficiently...&amp;quot;</text></comment>