<story><title>Why software sucks?</title><url>http://www.scottberkun.com/essays/46-why-software-sucks/</url></story><parent_chain></parent_chain><comment><author>david927</author><text>If we invented the car, but there was no reverse and no left turn, we could say that the problems were due to poor drivers and poor planning, but the problem would clearly be that the car is not sufficiently wieldy.&lt;p&gt;You can say that software sucks because of poor programmers and poor project management, but the truth is that the code is not sufficiently wieldy.  There&apos;s no way to manage the code.  I can&apos;t query all places in the code where the UI interacts with a database column.  Accounting systems can give you a variety of reports based on abstractions at a variety of layers, slicing the information in different ways (horizontally, vertically, etc).  Software systems?  Go fish.&lt;p&gt;Software sucks because at some point we got too excited about what we were doing and stopped (sufficiently) caring about how we were doing it.</text></comment>
<story><title>Why software sucks?</title><url>http://www.scottberkun.com/essays/46-why-software-sucks/</url></story><parent_chain></parent_chain><comment><author>cubicle67</author><text>We were discussing this recently whilst trying to come up with a guideline about when the computer should &quot;help&quot; and when it should just leave you in peace. We looked at lots of software we hated and loved, and tried to pinpoint the why. One of the things that came up most about hated software was that it had a high frustration level&lt;p&gt;Who&apos;s ever wished for a giant red &quot;PLEASE STOP HELPING ME&quot; button on their computer? Everyone, right? One of the causes of frustration we looked at was when the software helps you, but gets it wrong. Frustration is increased when the effort to fix the software&apos;s &quot;help&quot; is anything other than minor, and increased again when the computer repeats it&apos;s efforts at helping. Throw in no obvious way to get it to stop and you&apos;re in for some blood-boiling times.&lt;p&gt;The guideline we came up with was to not concentrate so much on how cool it is when things go well, but think about what happens when the software guesses user intent incorrectly. Consider:&lt;p&gt;* How often is the software likely to get it wrong?&lt;p&gt;* what was the level of irritation is caused by getting it wrong?&lt;p&gt;* How much effort is required to undo the computer&apos;s help?&lt;p&gt;and weight it up against how much effort you&apos;re saving the user when you get it right.&lt;p&gt;Thinking about this has caused us not to add a particular cool feature we had planned, because even though (we thought) it was very cool, there was about 30% chance or so of it being wrong, and the payoff wasn&apos;t worth it.</text></comment>