Slashdot Mirror


Why Software Sucks

Trent Lucier writes "Why Software Sucks professes to be a book for computer users, not programmers. Author David Platt wants to be the informant, pulling back the curtain on software development so mere mortals can get a glimpse inside the sausage factory. Platt flaunts his geek cred, all the while implying that he's not one of those geeks. But ultimately, trite observations and a condescending tone left me wishing that the book would end long before it did." Read the rest of Trent's review. Why Software Sucks...And What You Can Do About It author David S. Platt pages 272 publisher Addison-Wesley Professional rating 5/10 reviewer Trent Lucier ISBN 0321466756 summary Explains to non-tech people why software quality is so bad.

The spectrum of what constitutes bad software is mostly limited to usability, security, and stability. No mention is made of supremely sucky software features like digital rights management, spyware from "reputable" companies, and bundled bloatware. There is plenty of information about these topics that the general public could benefit from, but none is to be found here. To his credit, Platt does mention annoyances like "free registration required" news sites and privacy issues.

The chapters focusing on software shortcomings all have a similar structure. The problem is put into historical context, a reason is posed about why the problem still exists, and readers are given advice on how to fix it. The insights into the world of software development are limited and stereotypical. In Platt's world, programmers are ego-driven, awkward geeks who only care about creating whiz-bang features at the expense of usability and usefulness. They're elitist and lazy, passing off responsibility to the user via confirmation dialogs and convoluted options menus. They go to tech conferences and pay more attention to the amazingly realistic software rendering of a bikini babe as opposed to talking to the real woman standing right next to them.

Of course, stereotypes are often true for a subset of any population. But Platt's characterizations are shrill and condescending, often reading like they were co-written by Comic Book Guy and Ann Coulter. Little mention is made of anyone else in the development process besides programmers. (Because, you know, in the history of the world, a marketing manager has never had a bad influence on a product. Nope, never happened).

Usability labs are cited as a great way to improve product quality. Great, but who is in charge of funding usability labs? Not programmers. Most programmers I know would love to have their product improved upon with usability testing. And by the way, if you think the previous sentence lacked supporting evidence, get used to it, because that's the level of research that is found (or not found) throughout Why Software Sucks.

The examples are typically shopworn (Yes, the Google homepage is simple and easy to use. We get it. Lord Jesus, we get it.) or trivial. UPS.com is constantly scorned throughout the book because it asks the user for their home country instead of detecting it via the user's IP address. Starbucks.com commits the deadly sin of defaulting to a 5-mile radius for it's store locater instead of just listing closest stores. Yes, these are annoying faults, but are they really the best cases out there?

Readers are given advice on how to improve software quality, and it all boils down to boycotting bad products, sending letters to companies, and spreading the word among friends. If you need more firepower, you're out of luck. How can I get my employer to use better software products? Or my local government? Can I leverage accessibility and usability laws in the fight against bad websites? Are those crickets I hear?

In the second half of the book, Platt takes a turn towards sociology and tries to explain the environments that geeks gravitate to. His prime example is the Microsoft Tech Ed conference, which, given the way he describes it, doesn't sound very different from any other kind of conference. Marketing bozos, gratuitous tschotchkes, after-hours drinking by the speakers...it could just as easily be the annual gathering of the Coffin Retailers of America.

Platt has mastered the art of the non sequitur. Theorizing that maybe the problem with software is that the field is too male dominated, we are told that, "Many people think that the recent child molestation and cover-up scandals in the Catholic church stem at least in part from the hierarchy's all-male culture." Gotta love those "many people" and what they think might "in part" be a cause of a problem. "Like Israel, Microsoft is finding out that being on top isn't quite as much fun as it looked like it would be when it was on the bottom." Does that make Apple the PLO? My favorite example is when Platt draws inspiration from How To Win Friends and Influence People. "Dale Carnegie lists rules #7 for making your home life happier as 'Read a good book on the sexual side of marriage'." I had to re-read the enclosing paragraph several times before I realized that Platt's advice was basically, "Read new books."

The biggest problem with the book is that it just feels lazy. Platt constantly references other authors that write better and have more insight into the topics he covers. Bruce Schneier. Vincent Flanders. Eric Sink. It's like watching a bad documentary about sci-fi movies, and constantly getting tortured with short clips from Star Wars, The Matrix, and Blade Runner. At a certain point, you just want to throw the damn thing down and go straight to the source material.

Sometimes, Platt saves you the time and quotes the source material wholesale, as in his section on Po Bronson's spoof "The Seven Habits of Highly Engineered People." Each entry is listed, and Platt explains it all to the reader. As I read this chapter, the introduction to Strauss's "Thus Spake Zarathustra" began to play in my mind. I slowly looked toward the sky as I realized that, yes, if this is what it takes, then maybe I, too, could write a book.

Platt invites readers to join his software quality movement and devise some type of "software seal of quality". The accompanying website, suckbusters.com, is clearly unfinished, so I cannot be too critical of it. However, it's hard for me to resist mentioning that a site about sucky software appears to be written in FrontPage and uses frames.

Is there anything in the book worth recommending? For a seasoned software developer, no. If you want a mature analysis of why software is hard to develop, read Brooks' The Mythical Man-Month or Demarco & Lister's Peopleware. If writing human-usable programs is hard for you, check out the writings of Steve Krug or Jakob Nielsen.

But what about non-technical users? Will they learn why software sucks? I keep trying to imagine someone having an intelligent discussion about bad software after reading this book. I can't. They will probably have the courage to say "software sucks". But these days, who needs to read a 272-page book to realize that?"

You can purchase Why Software Sucks...And What You Can Do About It from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

257 comments

  1. Sounds Familiar by rudeboy1 · · Score: 1, Insightful

    I seem to remember thinking the exact same thing about Neil Stephenson's In the Beginning there was the Command Line. Pretentious and pessimistic. Thanks for the review.

    --
    Raging in an online forum won't do anything for the world around you. To see change, you must take action.
    1. Re:Sounds Familiar by oliderid · · Score: 1

      They look like books reviewers. Some of them think they can do much better but they lack the knowledge, the will or simply the talent. They become jealous.
      Any critic is welcome but developers should stay careful: not all of them are worth listening. Particularly when it looks like an over-generalization.

  2. I don't believe it... by commisaro · · Score: 5, Funny

    Did that guy ACTUALLY relate child-molestation cases in the Catholic church to poor software quality?!? Wow... just... Wow...

    1. Re:I don't believe it... by JensenDied · · Score: 1
      I see where he mentioned it, but I fail to see anything other than the fact that it exists...
      Platt has mastered the art of the non sequitur.
      hardly explains why software sucks
      --

      09:F9:11:02 - 9D:74:E3:5B - D8:41:56:C5 - 63:56:88:C0

    2. Re:I don't believe it... by Rob+T+Firefly · · Score: 5, Funny

      "Now, I know this is hard for you to talk about, so I brought this to help..
      Show me on the doll where the bad user interface failed to make available options navigable."

    3. Re:I don't believe it... by flibuste · · Score: 2, Interesting

      Thinking about it, it makes a lot of sense...

      A church guy buys a PC with Windows.
      The PC runs fine for 2 days, then starts having troubles, pr0n popup boxes, unending ads, etc.
      No divine intervention will have it behave properly like it did, despite the efforts of our church guy
      Violent behaviour follows

    4. Re:I don't believe it... by $RANDOMLUSER · · Score: 1

      Did that guy ACTUALLY relate child-molestation cases in the Catholic church to poor software quality?!? Wow... just... Wow...

      Can you show us on the doll where the programmer touched you?

      --
      No folly is more costly than the folly of intolerant idealism. - Winston Churchill
    5. Re:I don't believe it... by kinglink · · Score: 1

      Children are molested in church because it's all male. Software designer make bad software. Software design is mostly male. Child molesters are the same as software designers!

      I can just imagine the thought process "god after 200 pages they might not hate software designers.. I KNOW! let's compare them to child molesters, people hate child molesters right?"

      At least he avoided comparing us to terrorists.... in this book.

    6. Re:I don't believe it... by Doctor+Memory · · Score: 1

      Obviously, software sucks because Platt is the master of the non-sequitur.

      --
      Just junk food for thought...
    7. Re:I don't believe it... by alamandrax · · Score: 2, Funny

      Wha... are you ... are ... are you Jewish?

      You know something? All that... all that (hic!) horrible code? It's the Jews' fault man. Without the Jews, we'd have great code and...

      excuse me a moment sugar-tits, I think I need to throw up a bit.

      --
      'tis but a scratch.
    8. Re:I don't believe it... by Anonymous Coward · · Score: 0

      I'd have gone with, "The male dominated culture is why we have porn all over the internet". Of course, that porn could be child pornography and THEN you'd be at the Catholic Church, so maybe he just bypassed the step.

      I think Congress should look into this connection. Oh wait, they did...

    9. Re:I don't believe it... by LWATCDR · · Score: 2, Insightful

      Well it is because men are the root of all evil. You know the fundamental truths.
      Europeans are more sophisticated.
      The US is evil.
      Men are Evil.
      Christians are Evil.

      It is just the flip side of the extreme right dogma.
      The US is always right.
      Atheists are evil.
      Ecologists are communists wanting to trade jobs for trees.

      I am so sick of the Google home page being held as an example of usability.
      It has one function. It has almost the same user interface as locate!
      Yes I like Google for searches but good grief people I don't find Google's interface brilliant as much as I find it a simple interface for a simple function.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    10. Re:I don't believe it... by WilliamSChips · · Score: 1

      Men, in the gender-neutral sense, are the root of all evil. Eliminate humanity, and there's no more evil because there's no more sentience. There's no more good either but that's another story.

      --
      Please, for the good of Humanity, vote Obama.
    11. Re:I don't believe it... by Eli+Gottlieb · · Score: 1

      Slicha, Adoni. The Mossad will see you now. /me cocks Uzi.

    12. Re:I don't believe it... by honkycat · · Score: 1

      You forget... the carrots have a consciousness! For tomorrow is the harvest day, and to them, it is the holocaust! Let the rabbits wear glasses! Can I get an amen? Can I get a hallelujah?

    13. Re:I don't believe it... by Super+Dave+Osbourne · · Score: 2, Informative

      actually google front end has at least two other very good uses than just simple text search... "starting address to ending address" (interface to maps) and of course 3 + 4 (interface to calulator) and again 3.25 inches to millimeters (interface to converter) I know there are more, but google is actually a really cool simple interface that does more than one thing if you consider its output more than just 'answers to your questions'... It does multiple specific things.

    14. Re:I don't believe it... by ComaVN · · Score: 1
      hardly explains why software sucks

      <tasteless>It does for immature projects</tasteless>
      --
      Be wary of any facts that confirm your opinion.
    15. Re:I don't believe it... by indifferent+children · · Score: 1

      There is one further point of commonality: many programmers enjoy molesting users. How else can you explain making a user reboot their computer when they point it to a new DNS server?

      --
      Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
    16. Re:I don't believe it... by indifferent+children · · Score: 1
      It has one function.

      That is the genius of their design. Go visit www.yahoo.com; please finish throwing up *before* coming back here.

      --
      Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
    17. Re:I don't believe it... by rajpatel32 · · Score: 0

      Yes, he did. His VALID point was that the church made a decision that the negative PR was worse than prosecuting all of those boy loving priests.

      His comparison is that just as the church fostered an environment where pedophile priests ran rampant, the state today is that of bad software running rampant.

    18. Re:I don't believe it... by Trumpet+of+Doom · · Score: 1

      Well, it's not as bad as it *used* to be... still horrible, though.

  3. Of course it sucks... by swab79 · · Score: 0, Redundant

    footballers shouldn't write books...

  4. If software sucks so much... by purpledinoz · · Score: 1

    If software sucks so much, he should just stop using software all together... I'm sure he'll have a lot of fun using his computer without any of that evil software.

    1. Re:If software sucks so much... by Anonymous Coward · · Score: 0

      sausage party?

    2. Re:If software sucks so much... by misleb · · Score: 1

      That's why we have the concept of "necessary evil"

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    3. Re:If software sucks so much... by kfg · · Score: 1

      I'm going to Super Glue(tm) thumb tacks all over your driver's seat. Oh sure, I could refrain from doing that, but I think you should just abandon your car and quit your job.

      Either that or just drive the damn thing and keep your mouth shut. Don't bitch to me about it if the car is still, technically, useful.

      Software sucks by design, not because it innately has to. People realize this. That just increases the annoyance factor of the suckitude tenfold. They get tired of tacks in their ass after awhile.

      KFG

    4. Re:If software sucks so much... by Anonymous Coward · · Score: 0

      Sucks by design? I'd hate to work at a place that designed software badly on purpose. "Never ascribe to malice that which can be adequately explained by stupidity."

    5. Re:If software sucks so much... by kfg · · Score: 1

      At Ford, Quality is job 1.

      Booooooom!

      Well, we never defined the quality we were talking about, did we?

      The fact of the matter is that if not blowing up was one of the primary design concerns of the Pinto, they wouldn't have started blowing up. The design was not malicious, but the car was as designed. It violated well understood principles of not blowing up. It was stupid, not merely ignorant.

      Now when they started blowing up and Ford didn't change the design, that was malicious.

      KFG

    6. Re:If software sucks so much... by superflyguy · · Score: 1

      So which end is going to be pointing out, and if it's the pointy end, how densely will they be packed? Will they all be at the same level? Also, what's average the surface area of the point of a thumbtack? What's his mass anyway? Should we consider the forces that would be applied in a hypothetical accident, or assume he won't get in one of those? Will the seat be superglued in also, or will he be able to replace it?

      It's not just a simple matter of whether there are thumbtacks there. There are other important questions to consider.

      And epoxy will do a better job.

    7. Re:If software sucks so much... by kfg · · Score: 1

      And epoxy will do a better job.

      Have to keep an eye on the profits. I'm not here to do a better job.

      KFG

    8. Re:If software sucks so much... by mge · · Score: 1

      I know this place in India where you can get epoxy real cheap, plus they'll put it on his seat for you.

    9. Re:If software sucks so much... by Anonymous Coward · · Score: 0

      I love the "If you hate blah blah so much, just blah blah" statements.

  5. Update on the link by Anonymous Coward · · Score: 1, Informative

    The review links to B & N, but I notice that Amazon has it cheaper (look under the "Used and New..." third-party sellers). One wonders why the editors keep linking to B & N if it's so comparatively expensive.

    1. Re:Update on the link by DirtEater · · Score: 1

      Amazon gives more money to Republicans than they do to Democrats.

    2. Re:Update on the link by KingSkippus · · Score: 1

      Because it's a referral link. If you buy the book by following that link, Slashdot gets money.

      (That's not a "Slashdot is evil" thing, if you buy the book after reading about it here, they did refer you to it, and they do deserve a referral fee. And besides, it's not like it costs you money. That having been said, I wish Slashdot would set up an Amazon.com referral account instead...)

    3. Re:Update on the link by Daniel_Staal · · Score: 1

      In this case, probably to keep you from buying the book.

      --
      'Sensible' is a curse word.
    4. Re:Update on the link by Anonymous Coward · · Score: 0

      Third-party seller usually slap on a high-than-normal shipping fee. I have sometimes seen a book go for 10% of the normal price, only to be greeted by the remaining 90% in shipping fees. Don't get your hopes up too much.

    5. Re:Update on the link by Anonymous Coward · · Score: 0

      The shipping fees that third-party sellers can charge are set by Amazon (e.g. $3 for books). Therefore, the example you cite cannot be realistic.

    6. Re: Update on the link by arachnoprobe · · Score: 1

      Not if the original prize was 3,33$.

    7. Re:Update on the link by Chemisor · · Score: 1

      Probably for the same reason as people keep linking to ten page stories when a one-page ad-free print version is almost always available. They must think we are all easily influenced idiots who want to view ads, get ripped off on every purchase, and be happy about our miserable lives.

    8. Re:Update on the link by Anonymous Coward · · Score: 0

      Generally speaking, the money that goes to the affiliate for the referral comes (directly or indirectly) out of the purchase price.

      See, affiliates get people to buy things in the same way that lower prices get people to buy things, so you can trade the one off for the other...

      They're a bad deal. Boycott them when possible.

    9. Re:Update on the link by Anonymous Coward · · Score: 0

      Makes me feel better about using Amazon then -- thanks for the info!

      Or was that not the reaction you intended by posting blatant political flamebait?

      Mod parent down.

  6. Software doesn't suck! by Anonymous Coward · · Score: 0

    Actually, software blows! If you are finding that your software sucks, you just need to turn you computer around.

  7. Soon to be released... by fahrbot-bot · · Score: 4, Funny
    His next book, "Why Books About Software Suck."

    To summarize, they generally lack action and a good love interest.

    --
    It must have been something you assimilated. . . .
    1. Re:Soon to be released... by maxwell+demon · · Score: 1

      Not only that. Books about software also generally have a number of other problems:

      They go too much into detail. That really kills a story.

      There's seldom a real climax. For the best books about software, after reading it you know all about that software, but that's about it. A story needs a climax to be interesting.

      Books about software seldom have main characters (unless you count the software itself as such, but then, unless it's some sort of AI, a software usually doesn't really make a good main character).

      The story line usually sucks as well. Usually the story is just oriented on the features of the software, e.g. one chapter per feature. That's not a way to make a great story line!

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Soon to be released... by Anonymous Coward · · Score: 0

      Is the final book in his masterpiece trilogy: "Why Books on Software Sucking Suck?"

    3. Re:Soon to be released... by Anonymous Coward · · Score: 0

      His next book, "Why Books About Software Suck."
      and the future best-seller follow-up "Why Books About Software Sucking Suck"

    4. Re:Soon to be released... by sgt+scrub · · Score: 1

      His next book, "Why Books About Software Suck."

      Because you should always have more than one roll in the outhouse.

      --
      Having to work for a living is the root of all evil.
  8. Review of the review: by Anonymous Coward · · Score: 0

    Terrible writing riddled with bitchyness.

    I give it a 3/10.

  9. There is truth in this book by Anonymous Coward · · Score: 0

    No matter how neatly programmed or how much time people spend writing a program, truth is software is highly unreliable. There will always be something that will not work as expected no matter what software. Better acknowledge the fact. There is a difference between having a taste for programming and trying to make something work for everyone as they would want to.

    1. Re:There is truth in this book by Coryoth · · Score: 2, Insightful
      No matter how neatly programmed or how much time people spend writing a program, truth is software is highly unreliable.

      That is, of course, no reason not to try and make it more reliable - we'll never be perfect, but that doesn't mean we can't try to be better.

      There will always be something that will not work as expected no matter what software. Better acknowledge the fact. There is a difference between having a taste for programming and trying to make something work for everyone as they would want to.

      Sure, you will never have something work for everyone exactly as they would want it to - if you're going to count missing features as failures of the software then inevitably you're going to find everything inadequate. What software developers could, very reasonably, be aiming toward is, if not guaranteeing that everything will work exactly as desired, at least providing some certification as to which bits they are pretty damn sure will always work as expected (and under what extreme conditions, such as hardware failure or OS bugs, they might condone failure). A word processor might not have all the features I could imagine wanting, but that doesn't mean having a guarantee that, barring hardware failure, it won't ever corrupt a file I'm working on wouldn't be nice.
    2. Re:There is truth in this book by maxwell+demon · · Score: 1

      I've never had any issues with /bin/true. In my experience, it's quite reliable. So obviously it is possible to write reliable software.
      OTOH, I've never managed to run /bin/false successfully. Indeed, it's even documented in the man page that it will not be successfull in its task. Since the task is just to do nothing, obviously it must have been a very bad programmer who wrote it: How can you just fail to do nothing? :-)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    3. Re:There is truth in this book by Anonymous Coward · · Score: 0

      Your analysis makes sense, but I'm getting rather confused when I try to apply it to a system I have that runs under busybox.

    4. Re:There is truth in this book by autophile · · Score: 1
      No matter how neatly programmed or how much time people spend writing a program, truth is software is highly unreliable.

      Yes and no. I agree with you, that software TODAY is highly unreliable. Software TOMORROW will not be. Why, just the other day... okay, ten years ago... I wrote a program that evolved to find the square root of two. I knew the ultimate answer, of course, but the computer didn't, so effectively the program it used to generate the answer was filled with bugs. It guessed wrong, mostly, but it converged on the correct answer within a few generations.

      Now generalize this to, "I know what I want the program to do. I just don't know exactly how to get it to do that." At least SEVEN years ago, programs evolved to come up with electronic circuit architectures for amplifiers with various parameters.

      The machines will program better than we ever could.

      --Rob

      --
      Towards the Singularity.
    5. Re:There is truth in this book by Anonymous Coward · · Score: 0

      I dont' know if anyone will get this far down, or if it's been mentioned but but The Inmates Are Running the Asylum : Why High Tech Products Drive Us Crazy and How To Restore The Sanity http://www.amazon.com/Inmates-Are-Running-Asylum-P roducts/dp/0672316498 is a great book on the same topic. It is a bit dated win98 it is still accurate. Cooper's book is written for the general public.

    6. Re:There is truth in this book by Maximum+Prophet · · Score: 1

      But, check out the version number. On my Solaris 2.8 box, it's 1.6 from '93. It took them 6 versions to produce a working /bin/true!! Version 1.6 doesn't even have any running code in it, it's just whitespace and comments.

      --
      All ideas^H^H^H^H^Hprocesses in this post are Patent Pending. (as well as the process of patenting all postings)
  10. Well by Y-Crate · · Score: 3, Insightful

    The book sounds terrible, but I will agree that a large number of developers are blinded by egoism.

    Spend a little time and you will find countless projects dividing talent among slightly different versions of the same thing and developers who really don't understand their users and don't want to understand them. "If they want something to be different, have them code it themselves!" is a tired refrain, but it points to a mentality of software for the developer, not the wider audience. While I'll admit that it can be good to mess around and create something primarily for yourself, when your goal is widespread adoption of your product, it certainly helps to consider what the end user wants to achieve, and what their standards for usability are.

    Software development too often gets mired down in pissing contests, personal rivalries, egoism and Not Invented Here Syndrome and makes the developers appear amateurish and unreliable. This reflects poorly on their software, and we are left to hear them piss and moan about how their great app just can't make any headway against an entrenched rival.

    Sometimes the competitor uses unethical tactics, sometimes users are just afraid/can't afford change. Other times however, the developer just wrote the software for themselves and never took the end market into account.

    1. Re:Well by zurtle · · Score: 1
      I heard a fantastic talk by Dr Carl Myhill from GE. The reason plenty of software fails is because of the tremendous number of people required to get it right... psychologists, interaction design experts, anthropologists, users (not customers), graphic designers, a pencil sharpener... it's just too much to expect small projects to have all this, much less expert Dilbertian-type managers to sign off the investment required for all these.

      The main reason I see for software sucking is simply that there aren't enough skills to get it right, and release-date-driven projects are going to suffer even more.

      Looking at companies that make great products... they invest the time in all areas and experiment to get it right - look at iPods (though I'm not convinced they're as easy/obvious to use as people say.. I've played with a few) or Nokia cellphones. They're items with solid UIs, and well-designed from many perspectives (with a few exceptions).

      Then there is my Motorola V3x that has plenty of UI annoyances - Motorola's a giant that apparently has a heck of a lot of resources at its fingertips. Then how come my phone is so annoying... And the music cuts out on my bluetooth headphones when it's in my trouser pocket... what is this? My nether regions don't emit 2.4 GHz (I connected them up to a spectrum analyser just to make sure).

      --
      Couldn't stand the weather
    2. Re:Well by kirun · · Score: 2, Funny

      Programmer infighting is a management issue. The wrongdoers should be punished by being issued a project to be implemented in Microsoft Access. This will ensure that they do not misbehave again.

      --
      I'm scared of numbers that can't be written as a fraction. It's an irrational fear.
    3. Re:Well by 99BottlesOfBeerInMyF · · Score: 1

      The reason plenty of software fails is because of the tremendous number of people required to get it right... psychologists, interaction design experts, anthropologists, users (not customers), graphic designers, a pencil sharpener... it's just too much to expect small projects to have all this, much less expert Dilbertian-type managers to sign off the investment required for all these. The main reason I see for software sucking is simply that there aren't enough skills to get it right, and release-date-driven projects are going to suffer even more.

      Rather than a lack or resources, I suspect it is more of a misallocation of resources. I've worked on small projects where a handful of people with a varied skill set put together something wonderful. I've worked on larger projects where vital elements of the design were completely ignored simply because the people running the show did not believe they were important. I think the point is, your product has to be designed to give your customers, whoever they are, what they want in a way they can use. If your design is not centered around those customers and it technically is capable of the tasks they want, but they aren't capable making it do what they want, you've failed. That is something a lot of project managers fail to understand. Sometimes a bullet point in the design is just that, a requirement no one will really use and can be impossible to actually use for the average user. Other times, the entire project might need to change to provide a user with a way to solve a problem, and some bolted on hack, that was easier to code, but which your customers will ignore as unusable is not sufficient.

    4. Re:Well by Ender_Stonebender · · Score: 1

      One thing that I have noticed: It's easy to tell a computer what to do. The hard part of programming is figuring out what the hell the computer should be doing. This leads me into the part of what I want to say that's relevan to the conversation here:

      Sadly, usually the users aren't really sure what they want. Or if they are, they have great difficulty in describing it. And their standards of usability are usually "It should be easy to get it to do what I want."

      You see the problem?

      --
      Loose things are easy to lose. You're getting your hair cut. They're going there to see their aunt.
    5. Re:Well by Coryoth · · Score: 1
      Sadly, usually the users aren't really sure what they want. Or if they are, they have great difficulty in describing it. And their standards of usability are usually "It should be easy to get it to do what I want."

      You see the problem?

      Yeah, the problem is that we need to work harder on drawing out the user on specifics as to what they want. I'm not claiming that's easy - it is, as you say very hard - but it is at the root of many problems in software development. Usually the issue comes down to either poor communication between marketing/sales who talk to customer, and developers, or the fact that developers have plenty of other things to get on with and can't spend the required time patiently drawing useful details out of the user. Perhaps that just means we need to consider a better intermediary - a requirements gatherer and specification writer who can talk to both customers and developers, and can spend the time to get the details from the customer and write that down as a clear, precise, and explicit specification that is easily understood by developers.
    6. Re:Well by kin_korn_karn · · Score: 1

      My nether regions don't emit 2.4 GHz (I connected them up to a spectrum analyser just to make sure).

      That wasn't a spectrum analyzer.

    7. Re:Well by AVee · · Score: 1

      Spend a little time and you will find countless projects dividing talent among slightly different versions of the same thing and developers who really don't understand their users and don't want to understand them. "If they want something to be different, have them code it themselves!" is a tired refrain, but it points to a mentality of software for the developer, not the wider audience. While I'll admit that it can be good to mess around and create something primarily for yourself, when your goal is widespread adoption of your product, it certainly helps to consider what the end user wants to achieve, and what their standards for usability are.

      First of, i don't disagree with you, but it is not all black and white here. I have heard some pretty absurd, contradicting or simply wrong statements from customers. (Yes, that is *directly* from customers not from some consultant or something.) Some programmers are quit bright people and they may sound arrogant, but they might just a well be right.

      There often is some gap between what the customer wants and what he needs. The 'technical' response (thus the programmers response) to this will be to start analyzing the situation and to start pointing out what goes wrong, what was overlooked, etc. The 'commercial' answer will be to simply give the customer what he askes for, because that will bring in the money. If that results in bad software it's all the better because upgrades and maintenance will bring in even more money. I'll leave it to somebody else to judge who is 'wrong' and who is 'right'. My personal experience is that it is perfectly possible to discuss flaws in the wishes of the customer as long as you make some effort to clearly explain your point and show you are being critical in order to create high quality software.

    8. Re:Well by ichimunki · · Score: 1

      You'd trust management to be able to tell which programmer is the wrongdoer?

      --
      I do not have a signature
    9. Re:Well by geekoid · · Score: 1

      I've spent a lot of time, and I find that attitude to be in the minority.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    10. Re:Well by SageMusings · · Score: 1

      My observation is this:

      Customers are uncertain as to what an application ought to do. I agree with that. The only thing they seem to be POSITIVE about is that they want it in 1/4th the time it would take to do a reasonable job.

      I've never worked a project that was not (a) rushed and (b) design-tweaked half way through.

      --
      -- Posted from my parent's basement
  11. I wonder... by Otter · · Score: 1
    I was reading this wondering what "non-tech people" would read a book like this or why Addison-Wesley would publish it. Perhaps it's supposed to be a Comic Book Guy-ish* , self-deprecating, humorous look at programmers? It sounds pretty unfunny, but as this morning's paean to tedious "Discordia" stupidity demonstrates, there's no accounting for what nerds will find funny.

    * BTW, Ann Coulter? Huh?

    1. Re:I wonder... by StarvingSE · · Score: 1

      Ann Coulter is one of the more outspoken neo-cons out making money on books that are presented as fact with no actual references to back them up. Hey, maybe she should hook up with Dave Platt!

      Wikipedia article

      --
      I got nothin'
  12. His website sucks by not+already+in+use · · Score: 4, Insightful

    Heh... the review makes a good point. The website for the book is incomplete and done in FrontPage 5. I'm serious when I say this... I'm gonna write him an e-mail and tell him how much his website sucks. Perhaps others should follow his advise and do the same.

    --
    Similes are like metaphors
    1. Re:His website sucks by AVee · · Score: 3, Insightful
      The site is in fact a nice demonstration of a some of the real reasons software sucks:
      • Because it is released before it is ready for example. And because we tend to stick to the old stuff, even when we know it is failing (like frontpage 5).
      • Because we believe all the marketing lies (Someone spend a pretty penny on frontpage and just look how wonderfull the result is...)
      • Because we fail to actually learn about, or even slightly investigate into the things we are planning to do (like learning to build websites, not firing up the first application that comes to mind and start clicking).
      • Because we believe everyting that made with on a computer is easy to do (Sure, I can build that website).
      • And of course, because the wrong people are making the important decisions (whoever decided frontpage was a good idea was clearly not capable to take this decision, same goes for the person who did the release planning for the book/website).
      So there is something to learn from this book after all ;-)
    2. Re:His website sucks by dzfoo · · Score: 1
      Translation:
      • Bitch, Bitch, Bitch, Bitch, Frontpage sucks!
      • Bitch, Bitch, Bitch, Bitch, Frontpage is teh s0x0rs
      • Bitch, Bitch, Bitch, Bitch, I h4t3 Fr0ntp4g3xz!!!111
      • Bitch, Bitch, Bitch, Bitch, Did I mention Frontpage sucks? Well, it does.
      --
      Carol vs. Ghost
      ...Can you save Christmas?
    3. Re:His website sucks by sanyam_y · · Score: 1

      Perhaps he has used Frontpage intentionally just to show that software really sucks :).

  13. Easy to write a negative book by P3NIS_CLEAVER · · Score: 1

    Any ass monkey can right a book of criticisms... I would like to see his attempt at a software development methodology that is better.

    --
    Please sign petition to restore sanity to our banking system!!!

    http://financialpetition.org/
    1. Re:Easy to write a negative book by Coryoth · · Score: 1
      Any ass monkey can right a book of criticisms... I would like to see his attempt at a software development methodology that is better.

      It is highly unlikely that there will be a particular methodology that magically makes things better, but certainly there are things you can do to make things better. Two major hurdles in software quality are "building the right product" and "building the product right". That is, is what you are planning to build what the users want, and is what you're actually building the same as what you're planning. There's no magic methodlogy, but spending some time thinking how to best answer those questions for your particular piece of software can go a long way toward lifting the quality. The first question, ultimately, is the hardest - working out what you need to build involves wheedling the details out of the customer. You can do things like acceptance testing, or try an agile rapid feedback approach, but that isn't always applicable, and it isn't necessarily going to get you the right answers.

      The other side of the issue is a little easier, presuming you're willing to expend a little effort. At the most basic level there is testing - whether that is direct testing from a testing department, unit testing, or automated random testing (like quickcheck or AutoTest). Alternatively you can step up to extended static checking tools like ESC/Java2 or Spec# which use automated theorem provers to try and find potential errors, effectively testing all possible inputs - they can't always find errors, but they can find a great many that testing won't. In the end though all of these, even the most basic testing, require you to be able to specify what it is you are trying to build (see the first paragraph). The more preceisely you can specify that, the more powerful the testing you can do to verify that you're building what you intend. That means the quality of verification is up to the quality of the validation - how well you know whether you are building what you want, depends on how well you know what you want to build.
  14. So sad by Mayhem178 · · Score: 1

    Platt flaunts his geek cred, all the while implying that he's not one of those geeks.

    Always sad to see a geek in denial. Embrace your geekdom, my brother! Revel in its glory!

    --

    "You will pay for your lack of vision..." - Emperor Palpatine to Ray Charles

  15. Software developers upset that they suck... by Anonymous Coward · · Score: 0, Insightful

    Let's see, the gist of the review: "Nu-uh, we don't suck!"

    Who writes the code? Who designs the software? SOFTWARE PROGRAMMERS!

    (They don't get to be called engineers, because in order to be an engineer, there has to be a science behind the design instead of people randomly banging out code.)

    Yes, software sucks because the people writing it suck. There is good software out there - it's hard to find and very expensive, but it's out there. Unfortunately since just about any monkey who can bang on a keyboard is allowed to program, there's also a lot of bad software out there.

    It's not marketting's fault and it's not sales' fault that software sucks - they don't design it, they don't create the bugs, they don't create the features.

    The only people who can possibly take the blame are the PROGRAMMERS.

    Just like the reviewer blames the author of the book for the book sucking and not the publisher, the only people responsible for software quality are the monkeys that write it. Stop playing the blame game and accept responsibility for poor software already!

    1. Re:Software developers upset that they suck... by Anonymous Coward · · Score: 0

      Huh? Programmers don't create features, they implement them. Marketing better be driving the features, otherwise you will end up with a bunch of features that people won't use.

      Besides, the whole thing is stupid anyway. Software doesn't suck, software rocks. If it sucked no one would use it, and airheads like you would have no job. So just shut up and keep using the software. If you don't like it, tough.

    2. Re:Software developers upset that they suck... by Anonymous Coward · · Score: 0

      Aw, did I hurt someone's feelings?

      Marketting SPECIFIES features, they do NOT create them. Programmers create them. They often create them WRONG.

      The only people who have any blame for software sucking are the people who actually create it: the PROGRAMMERS.

      But whenever anyone tries to blame the programmers for creating a bug-ridden, flakey software package that sucks, it's always "blame management! blame sales! blame marketting!"

      Wrong. Software sucks because the people creating it suck. I don't care if I hurt anyone's feelings by pointing it out, it's true. The only people to blame for software sucking are the people writing the stuff.

    3. Re:Software developers upset that they suck... by Anonymous Coward · · Score: 0

      Thats interesting. If software sucks so badly, why does the vast majority of modern people CHOOSE to use it every day all day? Go into an office building, they all use software. Go into someones house, they are likely sitting at their computer using software. You can argue that people are forced to use software at work, but at home? Are you being forced to use software right now to post your ridiculous rant to Slashdot?

      I think TV sucks. And I don't watch it for that reason. Software could be improved, but it certainly doesn't suck.

      Tell me: do any of you that complain that software sucks ever create anything that virtually everyone uses every day to perform useful work? I sincerely doubt it! Software rocks, and programmers are the new priests, so suck on it you serf!

      And marketing people need to do more than specify features - they better tell the programmers how the feature should operate as well. Otherwise we will just base it on how we would use it, which may be sub-optimal for others. If marketing people would do their jobs properly they would be able to specify WHAT the users wants to do and HOW it should be done. Since most of them don't really want to think for a living they don't do it and just say the client "wants this and that".

    4. Re:Software developers upset that they suck... by a_karbon_devel_005 · · Score: 1

      While I will preface this by saying that I am a software programmer, the fact of the matter is that programmers are really not to blame for all software problems. There are many issues that go into software being sub par. Customers sometimes ask for things without really knowing what they want until it's 80% implemented. Managers want stuff done yesterday and if it can't be done RIGHT "well, just move this over here and it will KINDA work."

      But the actuality of all of it, despite parent's obvious annoyance with programmers, is that software is in INCREDIBLY high demand by an ENORMOUS amount of people so the entire process of it is rushed and pressure cooked. And in many cases, slightly inconvenient or quirky software that helps you get what you need done much faster than manually doing it yourself is far more useful than polished software that never arrives.

    5. Re:Software developers upset that they suck... by geekoid · · Score: 1

      I have released software on time and buggy. People always bitch.

      I have released software late that wasn't buggy, and no one complained.

      So in my experience, the user doesn't mind if it's late as long as it works.
      Of course, calander dates set software completion, not comlete and tested feature requests.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    6. Re:Software developers upset that they suck... by a_karbon_devel_005 · · Score: 1

      The people that didn't complain about the late, good software are the people who didn't give up on your product and move to a competitors that was available and complete. What percentage was that? For some businesses/products it may be low, for others it may be high.

      But in general, programmers don't dictate the release date or the feature set of the products they implement.

  16. Re:Software sucks because... by Anonymous Coward · · Score: 0

    This is why I'm hiring the old fashioned monkeys with tails to write my software from now on. Need a job, AC?

  17. It's an apt comparison. by Anonymous Coward · · Score: 0

    As disgusting as it may sound, it actually is a very good description of what happens during many software projects. Of course, we shouldn't limit ourselves to just the Catholic Church as being an example of this problem. The Republican Party in the US is currently suffering from the very same problems, as shown by the recent Foley debacle involving inappropriate email messages being sent to teenage pages.

    The problem itself is one of a lack of responsibility. So you end up with programmers who make a mistake, and nothing is done to correct it by those programmers themselves. Soon the issue ends up in the hands of management, but not wanting to put forth the time and effort to get involved, they often ignore the problem. Soon after, the CEO and board becomes aware of the problems. Due to company politics, those middle managers who failed to deal with the problem early on are moved to different departments, or otherwise protected from taking responsibility for their misjudgements.

    This is a situation I have witnessed myself. The firm was contracted to develop an application layer that ran on Windows, Linux, and Solaris systems. One of the managers made a mistake, and development starting using C# and .NET (which of course does not run suitably well on Linux or Solaris, even when using Mono). After three months, and just before the first deliverable to the client, some of the mid-level managers found out that the implementation was completely unsuitable. Instead of dealing with the situation right away, they waited until after the customer rejected the first set of deliverables. Upper management got angry, but only shuffled (and did not fire or reprimand) the mid-level managers who knew of the problem but failed to act. The developers had to work extra hard to port their existing codebase over to Java.

    1. Re:It's an apt comparison. by Intron · · Score: 1

      This is fun.

      Next I'm going to compare software design review meetings to being in Abu Ghraib.

      --
      Intron: the portion of DNA which expresses nothing useful.
    2. Re:It's an apt comparison. by Anonymous Coward · · Score: 0

      Are you talking about Saddam's Abu Ghraib, or the Republican Party's Abu Ghraib? The Republican Party has without doubt run a far more terrifying and deadly Abu Ghraib than Saddam ever did.

      Saddam's Abu Ghraib would be more akin to a lone teammate reviewing your code. The Republican Party's Abu Ghraib, on the other hand, would be closer to that software design review you mention, with the addition of rabid dogs biting you on the scrotum.

  18. We need a bill of rights for the user. by 140Mandak262Jamuna · · Score: 1
    It is our computer, our desktop, our disk drive, our internet connection, my start up process. Just becuase I am installing the software does not mean the installer can install anything it wants and usurp all resources.

    We need something like an installation controller. It would back up everything and monitor the installar and log every change to registry, disk, startup processes, changes to drivers, default handler assignments and everything. Then present to the user a simple standard user interface and allow the users to check and uncheck to allow and disallow changes. And all disallowed changes will be rolled back.

    It would be initially confusing to many users. But the third party sites, help sites will slowly educate the users and eventually the people who hijack my resources will be black listed and go out of business.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:We need a bill of rights for the user. by delirium+of+disorder · · Score: 1

      We need something like an installation controller....present to the user a simple standard user interface and allow the users to check and uncheck to allow and disallow changes.
      This is basically package management. Every usable modern operating system has it. The lack of package management, amoung other things, makes Window$ hopelessly broken.

      Debian/Ubuntu: dpkg/apt and synaptic
      Red Hat/SuSe/LSB: rpm and YaST or yum
      Gentoo: portage and emerge
      IRIX: inst and swmgr
      BSD: ports/pkg
      HP-UX: Software Distributor
      NetBSD's pkgsrc is actually ported to just about every *nix, but is not that widly used.

      --
      ------ Take away the right to say fuck and you take away the right to say fuck the government.
    2. Re:We need a bill of rights for the user. by geekoid · · Score: 1

      Or just a log you could lok at afterwords, and rollback out of.

      This is exactly why I have walways said the registry is a good concept that can not be implimented without causing grief.

      Go back to the one directory for a product that contains everything it needs.

      I am still waiting for my prize for telling MS about dll hell before the implemented it. Seemed like an obvious outcome to me.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    3. Re:We need a bill of rights for the user. by Anonymous Coward · · Score: 0

      You mean like a CVS for registry?

    4. Re:We need a bill of rights for the user. by Blakey+Rat · · Score: 1

      Mac OS X doesn't have it (unless you count Fink) and it seems to have a pretty good reputation for quality. Hmm, strange, that...

  19. Waste of money... by __aaclcg7560 · · Score: 1

    When we need a book to tell us that software sucks, that sucks.

  20. Re:Something worse that Linux sucking is... by The+Real+Toad+King · · Score: 1

    Haven't read TFB yet, but I bet most of the software discussed in it is Windows-Only stuff.

  21. A whole book about this?! by rlp · · Score: 2, Interesting

    It really comes down to:

    1) Features
    2) Cost
    3) Time to market
    4) Quality

    Choose any THREE of the above.

    Most software vendors do not compete on quality, they compete on one or more of the other three aspects. In SOME markets (telecom, avionics, etc.) - quality is more important. Releases tend to come less often and tend to be more expensive. Want quality software? Be willing to wait longer and / or pay more for it.

    --
    [Insert pithy quote here]
    1. Re:A whole book about this?! by Coryoth · · Score: 1

      Given the review it seems that the book views "lack of features" as a bug, so really it is even worse than you suggest - you can produce a quality piece of software by dropping a few features and you will still be in the firing line of the book author.

    2. Re:A whole book about this?! by kfg · · Score: 1

      Want quality software? Be willing to wait longer. . .

      Well you haven't caught me upgrading to XP yet. When does Microsoft intend to deliver my payoff?

      KFG

  22. Dumb title by dtjohnson · · Score: 1

    Software doesn't suck. It's great and has never been better than it is right now...well except for Microsoft software, anyway. Business, finance, transportation, communications, data management, entertainment, etc. are all incredibly enriched over what they were only 10 years ago because of...yes, software. The author is uninformed, misinformed or unexperienced or something.

    1. Re:Dumb title by joto · · Score: 1

      Business, finance, transportation, communications, data management, entertainment, etc. are all incredibly enriched over what they were only 10 years ago because of...yes, software.

      Definitely. At my workplace we can now sit behind our PCs and send these funny email-jokes to each other, while continuing to be even less productive than before. This is called improvement. Hopefully we can soon start working from home, so we can sit at home and send funny joke-emails to each other from there instead. I'm sure that would improve productivity even further!

    2. Re:Dumb title by Anonymous Coward · · Score: 0

      Software doesn't suck. It's great and has never been better than it is right now...well except for Microsoft software, anyway.

      Good show my friend. Bash Microsoft and then claim that the author has no idea what he is talking about. Of course, this is slashdot, where MS bashing is allowed and encouraged even if the said comments are completely wrong and ignorant. Microsoft has made great strides in a lot of places. Sure, there is need for improvement, but to say and act as though Microsoft's products have no impact shows how completely in denial many of slashdot's readers are. There is a good reason why Microsoft is still on top. Despite some of the downfalls that many people comment on, they have a lot of accomplishments. The enterprise market is not as dumb as many of you think. If Linux or Apple could truely offer something better then they would have switched. Servers for Linux and Graphics on OS X come to mind. However, for desktop and office use, Microsoft still reigns supreme. If the alternatives could not only do what MS does, but do it better, then I'm sure many would have switched. Such is the case with the niche markets where open source software is the majority, because they did that paticular job better and people latched on to it. I use OS X and Windows XP on a daily basis and have used Linux many times before. You can cover your ears and yell all you want, but I have been just as efficient in getting my work done on XP as I have in Linux and OS X and by the end of the day, thats all people and businesses really care about.

    3. Re:Dumb title by dtjohnson · · Score: 1

      Microsoft has made great strides in a lot of places.

      I'll go this far with you. Microsoft software has never had more features than it has right now. However, adding features does not qualify as making great strides towards making the software better unless the new features provide essential functionality that was previously absent and/or increase user access to functionality by making it easier to use or something like that. Unfortunately, a lot of Microsoft's focus in the last few years is on DRM/anti-piracy/IP/proprietary format/user lock-in/break-the-competing-approach stuff that doesn't make the Microsoft software easier to use, more robust, or enable the user by giving him access to more power. Much more importantly, the Microsoft approach prevents the formation and development of a healthy ecosystem around its platform that would allow innovation that could lead to synergistic products that make the whole more than the sum of its parts. Yes, Microsoft has a large share of the desktop market with windows and MS Office but it's also obvious by now, even to Microsoft I expect, that the future will be something different than the one that Microsoft is offering with Vista and Office 200X.

  23. And...? by KingSkippus · · Score: 1

    What does that have to do with anything? That's not unusual. If you're a company looking for government to help you out, you would too. Republicans are all about corporatism.

    Besides, I really doubt that the decision was made on a political basis, probably on who gives better referral commissions.

    And say, since you brought it up, how do you know that, and what exactly is Barnes & Nobles's giving ratio?

    1. Re:And...? by DirtEater · · Score: 1
      http://www.buyblue.org/node/66/view/summary

      and

      http://www.buyblue.org/node/326/view/summary

      If you favor a party, enabling that party as much as possible by paying attention to where your money goes makes perfect sense.

    2. Re:And...? by KingSkippus · · Score: 1

      *shrug* Well, there you go. I've gotta admit, it sounded made up to me, I guess it's not. Sorry! And thanks for the info. They say you learn something new every day. I just met my quota, so I'm going home now.

  24. to be more genuine... by mhokie · · Score: 1

    he should have typed the entire book on a typewriter. bastard...

  25. Simple explanation by jmorris42 · · Score: 2, Insightful

    The reason software sucks is too simple. Software sucks because we don't care. But that doens't give enough material for a whole book I guess.

    Really though, it is just that simple. We know how to make software that is reliable and secure. What do people buy? There is your answer.

    And now to make sure I piss off everyone lets go beyond just slagging Microsoft since that is like kicking cripples. Macs suck too. Same for Linux, and BSD. All have bugs exposed on an almost daily basis. Why? Because nobody cared enough.

    Ok, so what is my solution? Not giving a rats rectum about Windows or Mac limit my rant to Linux (and a bit of BSD). Start with OpenBSD as they are the closest to getting it right. Sure there isn't much in BSD, but what IS there is as reliable as an organization their size can make it. Features be damned, make it work!

    So why couldn't organizations which have more resources take that idea to it's logical conclusion? Look people, adding new features before the old ones work is pointless and leads to software that sucks. Step one should be to take the Linux Standard Base and freeze it. Audit the crap out of it for security flaws and close every single bug report. Eliminate every compiler warning. Then look at every package that isn't at 1.0 status and decide what is needed to call it done and then DO it. Then begin moving that line outward. For now the graphical desktop environments probably can't be frozen, but everything underneath can be.

    This won't happen though, because NOBODY CARES.

    --
    Democrat delenda est
    1. Re:Simple explanation by kebes · · Score: 3, Insightful

      I'm afraid I don't agree with your explanation.

      Software doesn't suck because people don't care. Workers doing their job may or may not care, but certainly the company has some stake in the success of the product (which is somewhat correlated to its quality), and will thus "care" to some degree. But certainly many open-source projects only exist because the people care. So it is not that, in my humble opinion.

      It is all a matter of priorities and engineering. I'm sure every geek has thought of what you suggest at some point: "If only there were infinite time and we could really refine this code, we could make it *perfect*!" But the truth is that perfection is impossible, because it must meet conflicting demands. To be perfect it must be rock-stable yet somehow incorporate the latest features and be compatible with the latest and greatest protocols/software/etc. The only way to be compatible is to introduce new code, which inevitably has new bugs, and the cycle continues.

      Your proposed "feature freeze" has probably been attempted on some projects, and probably with disastrous results. The problem is that a completely stable, bug-free piece of software that cannot interpoerate in a modern environment is worse than a somewhat bug-ridden piece of software that *does what I currently need it to do*!

      Personally I think developers care enough. Part of the problem (as the book appears to point out) is that people accept/buy sub-standard products when viable (better!) alternatives exist. Boycotting is indeed useful in such cases.

      But overall software design is hard, and it will always be an engineering challenge, where the final solution is never intended to be "perfect" but rather to satisfy some user requirement, while using a set amount of time and development effort. This is true of both commercial and open-source software.

      Just my opinion, of course. I'm not an expert in software engineering.

    2. Re:Simple explanation by jmorris42 · · Score: 1

      > It is all a matter of priorities and engineering.

      Thanks for making my point. It IS a matter priorities and reliability and security aren't very high on the list in the software business. It IS a priority in every other engineering discpline, i.e. the ones where you have to be a real engineer. When people design a building there are a lot of conflicting priorities, exactly like in designing software. But reliability IS NOT NEGOTIABLE. Buildings do NOT fall down on a regular basis and when they do people are held accoutable, the problems are carefully studied, the cause determined and steps are taken across the industry to ensure that it doesn't happen again. Find me some examples where ANY of this professionalism is exhibited in the software industry?

      Find me an example where a developer was punished when an obvious security flaw was released... and his manager was sacked for not making sure that code was audited prior to release. Find me a case where a major security flaw was carefully examimed and the results widely dissimated across the industry, and everyone actually read the report and ensured nothing similar existed in their codebase?

      > To be perfect it must be rock-stable yet somehow incorporate the latest features and be compatible with the
      > latest and greatest protocols/software/etc.

      Popular myth, but largly false. Glibc needs no new features at this point. It does everything a standard C library needs. But new versions churn out on a regular basis, with bug fixes and new features intermingled. Freeze the damned thing and audit out the bugs! Then in a few years carefully plan out some new features needed to keep it competitive and code them up. Then AUDIT, AUDIT, AUDIT and TEST, TEST, TEST before merging into a new production release. This means distros would have to have the incentive from users NOT to include the betas in anything but test releases and that is where it would fall apart. A few customers would whinge for the beta to go in because they 'really really need' one feature and everybody loses.

      > But overall software design is hard, and it will always be...

      And so is rocket science. But rocket scientists try not to put people in a rocket until they are pretty sure the bugs are worked out. Same for airplanes. A modern Boeing airliner is far more complex than GNOME but jets don't fall from the sky on a daily basis.

      --
      Democrat delenda est
    3. Re:Simple explanation by Khomar · · Score: 1

      There is a disturbing trend that I have been witnessing in software development -- especially web applications. A lot of effort is being directed into making the developer's job easier or faster at the expense of a better user experience. Toolsets are being developed that make it easy to produce a functional UI in a very short period of time, however the end result is bloated and inefficient -- not just in code execution but in user experience. The interface is not tailored to the user's needs (making frequent tasks quicky and easy to perform for example), and often they are forced to go through a series of hoops to accomplish a simple task because it was more convenient to program it a certain way. If you have any experience with SAP applications, you know exactly what I mean.

      Unfortunately, the focus right now is entirely on getting the software out quickly. Good UI design takes time and a flexible library. It also requires skilled programmers who know how to solve problems, but unfortunately, many of the popular tools appeal to the novice programmers encouraging more poor design and inefficient code. With increasing misfortune, upper management sees these tools as the answers to these problems -- get the product out quickly without the need for good programmers. As a result, the overall quality continues to decline, and software becomes less useful with each new release. If it were not for examples such as Google and Apple, I might give up hope in software altogether.

      So really, I think the answer is not that nobody cares, but that they care about the wrong things.

      --

      I believe in de-evolution. God made the world perfect, man fell, and its been going downhill ever since!

    4. Re:Simple explanation by AVee · · Score: 2, Informative

      And so is rocket science. But rocket scientists try not to put people in a rocket until they are pretty sure the bugs are worked out. Same for airplanes. A modern Boeing airliner is far more complex than GNOME but jets don't fall from the sky on a daily basis.

      Rocket science happens to include quite some software engineering and Boeing happens to employ quite a few developers. This goes to prove your point even more, when it is important enough, when we care (pay!) enough to get it right it is perfectly possible to build high quality software. But customers always want cheap and fast, so they get cheap and fast. With a huge maintenance contract of course.

    5. Re:Simple explanation by kebes · · Score: 1

      Thanks for making my point.

      Indeed! I mostly agree with what you're saying. However it's worth keeping in mind what the objective of a given engineering project is. The goal of a building is to continue standing and house people. The goal of a bridge is to withstand the load of the traffic across it. Failure to do so costs lives.

      However in software the priority is to get work done. When software crashes, people don't die. Money is lost, but that's about it. Even security flaws don't lead to deaths.

      Find me some examples where ANY of this professionalism is exhibited in the software industry?

      Although I'm not an expert, I'm fairly certain that a high level of code auditing does go on when it is required: for instance the software that runs air-traffic control systems, military systems, NASA, etc. In these cases lives are on the line and the standards of the software (with regard to reliability, etc.) are much higher. The fact is that it's not necessary to make commodity software rock-stable in the same way that it's not necessary to make a commodity chair able to withstand 20,000 lbs of weight. To over-engineer it would be unnecessary, and a failure won't kill anyone (just lost work or falling onto the floor).

      Popular myth, but largly false. Glibc needs no new features at this point.

      On this point I do concede and agree with you. Quite alot of software adds features unnecessarily, when the software would be much more useful to mature and stabilize the features it has. So really I am mostly in agreement with you, but I just wanted to point out that developers *do care*, but that they have limited time/energy/resources, and have to prioritize where to put that energy. In some cases it's best put in stabilizing and bug-fixing, but in other cases (I would argue) the user is better served by having access to features they need, albeit at a slight cost in stability. (And yes, I agree that much of the software commonly used nowadays veers much too far into the 'useless feature' land at the expense of a required level of stability/security.)

    6. Re:Simple explanation by Anonymous Coward · · Score: 0

      "Find me some examples where ANY of this professionalism is exhibited in the software industry?"

      I believe that steps ARE taken to ensure it doesn't happen again. But eventually it WILL happen again. In your same analogy, has only one building ever fallen down? No? Didn't they take steps to make sure it didnt? Ohhhh.. something ELSE happened. The same thing happens in software design.

      And there have been companies that have sacked people over the release of some serious flaws into the wild. I know of both Amazon.com and Microsoft having done so (though not nearly enough as they should perhaps, at Microsoft).

      "But rocket scientists try not to put people in a rocket until they are pretty sure the bugs are worked out."
      Thats true, rocket scientists wouldn't. But management would. And the funding parties want to see some results too. At some point they're going to pressure those rocket scientists into going "we're pretty sure it should work", and then they're going to have lifeforms on those rockets. If they want to keep their families fed.

    7. Re:Simple explanation by creysoft · · Score: 2, Insightful

      You're using a false analogy. Buildings can and do frequently have substantial problems. Asbestos, improper wiring, faulty plumbing, foundation problems, poor space planning, etc. Furthermore, many of these problems cannot be fixed at all, but must simply be lived with, worked around, or ignored. There's no real software equivalent for a building collapsing. I guess the closest you could get would be a program crashing and FUBARing the entire system it runs on, which happens almost never with professional software, except in the case of low-level code (i.e. disk utilities and the OS.)

      Just because you don't think programming has any real science behind it doesn't make you right. Writing effective, efficient algorithms is a decidedly complex task, and given the size and the scope of many of the projects we work on, it's a miracle any of it ever happens at all. Sure, engineering a building is difficult. But it is also a very old problem that has been solved over and over again in the past. We know how do design buildings now. It's certainly not simple or easy, but it's a field where new challenges are relatively rare. Contrast this to the software industry, where quite often what's being written is new, and has never been written before. Most of the solved problems have already been encapsulated into libraries, so the bulk of the code being written is completely new territory, covering problems that have never been completely solved.

      Sure, some programmers (and probably all of them at one time or another) bang out some off-the-top-of-the-head code without really thinking about it. But don't paint the entire profession with the same misinformed brush.

      --
      Formerly GNU/Anonymous Coward. This message has been determined to cause cancer in laboratory animals.
    8. Re:Simple explanation by jinxidoru · · Score: 1

      No, the answer is not simple. It's a matter of priorities. The problem is not that nobody cares about bugs. That is not what causes bugs to not be dealt with. What causes bugs to continue on to release is a number of things. First of all, good luck testing every possible situation that every possible piece of software might be used. If you are a software developer, then you know that spotting bugs isn't easy. Most of us follow specific paths when we traverse software. Identifying other paths of execution is difficult. It takes a very talented QC department. Another problem is priorities. Let's assume that you have the choice of purchasing a game that crashes once a week for $20, or a game that never crashes for $80. I would choose the first personally. There's the problem. Testing costs money. The more testing you do, the more money it costs. This is also an issue with time. If I have a problem that needs to be solved by a computer, I would rather have a solution that is a little buggy today than a perfect solution in three years. We always want everything without the cost. Sometimes it sucks being a software engineer.

    9. Re:Simple explanation by Anonymous Coward · · Score: 0

      Find me some examples where ANY of this professionalism is exhibited in the software industry?...

      And so is rocket science. But rocket scientists try not to put people in a rocket until they are pretty sure the bugs are worked out. Same for airplanes. A modern Boeing airliner is far more complex than GNOME but jets don't fall from the sky on a daily basis.


      You just answered your own question. An airplane is an example of that sort of professionalism in the software industry (Running on the airplane itself, in its design, and on the flight-control computers). As a result it takes a long time to develop and it's very expensive. If people cared as much about their software crashing as their airplane then they'd make the necessary trade-offs for super-reliable software.

    10. Re:Simple explanation by Blakey+Rat · · Score: 1

      A couple years back I worked with a medical company that moved a bunch of people into a new building that had been finished from scratch with everyone involved approving the blueprints. There were tons of unnecessary doors, giant steel beams in the way in a lot of offices, and the "server closet" on the second floor ended up being right next to a sink.

      You're deluding yourself if you think actual architects always produce a perfect project.

    11. Re:Simple explanation by Tiger4 · · Score: 1

      I had a customer tell one of *his* customers once, "If you want it real bad, you'll get it real bad". His customer was trying to push for an earlier ready date. He was telling him why it wasn't going to happen. I liked this guy as a customer very well. He wanted us to stick to schedule, but testing and functionality were a lot more important to him. (We were building up the hw and sw infrastructure to his new data center)

      --
      Behold, this dreamer cometh. Come now, and let us slay him... and we shall see what will become of his dreams.
    12. Re:Simple explanation by Timbotronic · · Score: 1

      Same for airplanes. A modern Boeing airliner is far more complex than GNOME but jets don't fall from the sky on a daily basis.

      A little off topic, but planes are a good example of how something can be technically fault free but still suck - even fatally. Take fuel tank selector valves. It's extremely unlikely that a valve will fail, but that's not the point. A pilot shouldn't have to monitor which tank fuel's coming from and switch tanks mid flight. Fuel should just be drawn evenly from all available tanks whilst keeping the plane in balance. Some planes do this, but an amazing number don't. In all probability, it was a counter intuative fuel tank selector that killed John Denver.

      So making software (or any human-machine interface) fault free isn't enough. It has to be intuative, and it should take care of some things automatically when it make sense to do so. That's hard to do right.

      --

      One of these days I'm moving to Theory - everything works there

    13. Re:Simple explanation by psmears · · Score: 1
      Your proposed "feature freeze" has probably been attempted on some projects, and probably with disastrous results.
      It certainly has—and whether you regard the result as disastrous depends on your perspective. Here's a quote from David Thompson, vice president of the Microsoft's Windows Server product group, about what happened when they did this in the early days of Windows NT:
      "NT 3.51 was a very unrewarding release. After [NT3.5] was completed, we basically sat around for 9 months fixing bugs while we waited for IBM to finish the Power PC hardware. But because of this, NT 3.51 was a solid release, and our customers loved it."
      I think it's rather sad that he found delivering a release that customers loved "unrewarding", and I suspect that this sort of mentality goes a long way to explain why a lot of software sucks...
    14. Re:Simple explanation by Nevyn · · Score: 1
      Ok, so what is my solution? Not giving a rats rectum about Windows or Mac limit my rant to Linux (and a bit of BSD). Start with OpenBSD as they are the closest to getting it right. Sure there isn't much in BSD, but what IS there is as reliable as an organization their size can make it. Features be damned, make it work!

      I mainly agree with your point, certain aspects of software suck because they aren't prioritized. However your solution is a non-solution, OpenBSD aren't prioritizing good code ... just look at openssh, years later and the latest release still uses the C string API (sorry adding strlcpy isn't even close to good enough) and fixes a bunch of DOS attacks.

      Hoping that auditting crap will help us produce good code is pure insanity. We need to prioritize decent designs and decent implementations, complete with unit tests and then have them auditted. As I understand it, that's how JPL etc. work (although, I'm not convinced you need their entire process) ... and they are basically the only success stories.

      So, personally, I'm using Linux. Yeh, it's still crap ... but it's open crap used by a lot of people and has a lot of developers. And there are some lights in the darkness, like vsftpd; and-httpd; postfix ... that actually seem to be surviving without a patch of the week needed (obvious note, all of which don't use the C string library).

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
  26. It's Easy... by TheWoozle · · Score: 4, Interesting

    software sucks because it's a very literal realization of a detail-oriented person's conceptulization of a process as related by at least one intermediate person (or, more likely, a committee of people).

    If you take a programmer with no practical knowledge of the context in which the software is supposed to work, don't give them time to learn anything past the very basics, keep them at a distance from the people who will actually use the software, and have all the decisions on the functionality of the software, the timeline for delivery, and prioritization of the various parts of the software made by a committee of middle managers, marketing wonks, and executives you will get exactly the kind of sotware we all know and hate.

    The best examples of software that I've seen were either written by a programmer with experience in a certain field working closely with an expert, or someone brilliant in a particular field who had a great idea and then picked up programming in order to implement their idea.

    --
    Insisting on "correct" English is like saying that there is only one, definitive recipe for chili.
    1. Re:It's Easy... by Magnusite · · Score: 2, Interesting

      Please Mod Parent up..

      Someone already suggested that the ego of the programmers is the largest cause of bad software. In my experience, the need of the middle managers and marketing wonks to demonstrate their superiority is a major part of the problem. Most will come up with off-the-cuff ideas at "bull session" creative meetings and then use all the political wherewithal they have to make sure that their ideas are implemented. God help you if more than one of these people is on your project and they have irreconcilable views of the end product. These are the people who run the show and sign the checks, not us programmers.

  27. Clippy by Anonymous Coward · · Score: 0

    It looks like you're trying to molest an altar boy. Would you like help?
    - Get help with committing this sin.
    - Just molest the boy without help.

    [x] Don't show me this tip again.

  28. It sucks because... well... by Stanistani · · Score: 1

    See Sturgeon's Law

    It applies to software and books...

  29. Re:Bleat, bleat, bleat.... by flibuste · · Score: 3, Insightful

    If reviews were written only on books the reviewers liked, that would be one world of biased opinions don't you think?

    Moreover, you seem to think that the reviewer is bashing the author/book where it appears to me like a good review and shows a lot of misses in the book itself. As an example, the author categorizes software developers in a very small box a bit too easily IMO.

    Yes, I've read part of it, it is extremely short-sighted and won't help the supposed 'target audience' you talk about, in knowing more. Confuse them more? Definitely.

  30. A SUPERB book on this topic... by dpbsmith · · Score: 2, Informative

    ...regrettably out of print and, of course, now out of date... was Boris Beizer's The Frozen Keyboard: Living With Bad Software.

    It is a classic, and well worth reading. And it does not condescend, and is full of good advice that naive users don't necessarily know. For example, don't type unreasonable values into fields... never enter data when the program appears to be busy doing something even if the program lets you do it... things like that.

  31. Egoism is hard to see by MobyDisk · · Score: 4, Informative

    A recent of example of why software almost sucks:

    Software sucks because people get stuck in a mindset. Until last week, I thought that Thunderbird was easy to configure for email. Here is what I do:
    - Enter incoming mail server name
    - Enter login name and (optionally) the password
    - Click ok
    - Try to get your mail
    - Now go back and try it with the SSL option
    - Now go back and try it with the TLS option
    - Now go back and try it with "Use Secure Authentication"
    - Repeat combinations of the above until you find the most secure one that works

    Recently, my wife got a Mac. Here's how to do it in "Mail" for the Mac:
    - Enter incoming mail server name
    - Enter login name and password
    - Click ok

    "Mail" connects, tries each possibility, and sets it to the most secure option that works.

    Now until I saw this, I never even considered the possibility. Now, it seems quite obvious. Unfortunately, I have to ding them on this - if the password is wrong, it hides the error message from you (you get something generic like "connection failed"). So I spent two hours trying with the wrong password while damning Apple because I thought the problem was that their nifty "do it automatically" approach.

    So let's review:
    - Don't get stuck copying the way other things do it. Do it right.
    - Make it easy by only asking the user for the things the user is responsible for.
    - Don't hide information (such as settings or errors) from the user (yes, in "Mail" you can go back in and see what settings it picked)

    If we could get the above three right, life would be much easier.

    1. Re:Egoism is hard to see by toadlife · · Score: 3, Insightful

      The Mac way sounds awful. Does it automatically select POP for you and clear out your mailbox the first time you connect? I would be PISSED if it did that.

      --
      I don't always use unix-like operating systems; but when I do, I prefer FreeBSD.
    2. Re:Egoism is hard to see by 99BottlesOfBeerInMyF · · Score: 1

      The Mac way sounds awful. Does it automatically select POP for you and clear out your mailbox the first time you connect? I would be PISSED if it did that.

      No, it asks what type of account you are creating, POP, IMAP, or .mac. It actually works very well in that people who don't know what they're doing can easily create a working e-mail account and it will be as secure as possible. It is a little less nice if you know exactly what you're doing, but if that is the case, you'll figure it out pretty quickly.

    3. Re:Egoism is hard to see by AceCaseOR · · Score: 1
      Software sucks because people get stuck in a mindset. Until last week, I thought that Thunderbird was easy to configure for email. Here is what I do:
      - Enter incoming mail server name
      - Enter login name and (optionally) the password
      - Click ok
      - Try to get your mail
      - Now go back and try it with the SSL option
      - Now go back and try it with the TLS option
      - Now go back and try it with "Use Secure Authentication"
      - Repeat combinations of the above until you find the most secure one that works
      For the record, your ISP should give you instructions on how to configure your E-Mail client to connect to them in, if not your E-Mail client of choice, then at least Outlook Express. Verizon does this, G-Mail does this. Does your ISP not do this?
      --
      Zagreus sits inside your head, Zagreus lives among the dead, Zagreus sees you in your bed and eats you in your sleep.
    4. Re:Egoism is hard to see by Anonymous Coward · · Score: 0
      The Mac way sounds awful. Does it automatically select POP for you and clear out your mailbox the first time you connect?

      No, first it gives you an electric shock through the keyboard and then deletes all your mail for no reason.

      Seriously, where the hell did you get "clear out your mailbox" from?!? What lunatic would add a feature like that?

    5. Re:Egoism is hard to see by slamb · · Score: 1
      "Mail" connects, tries each possibility, and sets it to the most secure option that works.

      Really? For me, it's always made me enter my credentials, then attempted to send them across the Internet in plaintext, complained that it didn't work[1], and then on the next tab, given me an SSL checkbox. I've always thought of Mail.app's configuration as incredibly stupid and insecure.

      The proper way to do it would be to first try SSL and if that doesn't work, prompt the user with suitably scary text ("Secure connection failed. If you're sure your administrator is a moron who doesn't care about security, hit 'Try insecurely'; otherwise hit 'Abort' and contact your security team"). Of course, it's less convenient and will produce panicked users when the administrator doesn't care about security, but it should produce panicked users when the administrator doesn't care about security. Anything else is broken.

      General rule: security and convenience are opposites. Unfortunately, that often gets overlooked by people whine "blah blah, software's too hard, blah blah".

      [1] - Thankfully. Like anyone who cares about security, I've disabled unencrypted IMAP logins. So it only could work by man-in-the-middle attack - someone accepting (and probably logging) unencrypted connections, and initiating encrypted connections on their behalf.

    6. Re:Egoism is hard to see by jb.hl.com · · Score: 1

      Most POP3 clients, by default, delete all messages on the server after downloading them to your PC. If you try and use the same account with both POP3 and IMAP, and you forget to configure the POP client properly, you're in for a really nasty shock.

      --
      By summer it was all gone...now shesmovedon. --
    7. Re:Egoism is hard to see by archen · · Score: 1

      It could be smarter though. Kmail for instance has a button that says "check what the server supports". You click it and it figures it out for you. Maybe it doesn't work all the time, but I've never had problems with it.

    8. Re:Egoism is hard to see by autophile · · Score: 1
      Unfortunately, I have to ding them on this - if the password is wrong, it hides the error message from you (you get something generic like "connection failed").

      Well, yeah, but that's because it's Good Security Practice (TM). If J. Random H4x0r knew that the username was correct but the password was wrong, then he knows he's already halfway there. You're not supposed to give away that some of the information is right, but some is wrong. You're just supposed to say, "No. Try Again."

      See, for example, IETF RFC 1939 section 13 (for POP3) and RFC 2060 section 11 (for IMAP4).

      --Rob

      --
      Towards the Singularity.
    9. Re:Egoism is hard to see by Anonymous Coward · · Score: 0

      Mail defaults to deleting one week after first download. If you don't figure it out during that week, I guess you're screwed.

    10. Re:Egoism is hard to see by slamb · · Score: 1
      Unfortunately, I have to ding them on this - if the password is wrong, it hides the error message from you (you get something generic like "connection failed").
      Well, yeah, but that's because it's Good Security Practice (TM). If J. Random H4x0r knew that the username was correct but the password was wrong, then he knows he's already halfway there. You're not supposed to give away that some of the information is right, but some is wrong. You're just supposed to say, "No. Try Again."

      I agree that it's a good security practice for the server to say "Authentication failed" instead of "Wrong user" or "Wrong password". But he's talking about the client saying "It failed" instead of "The server said 'NO Authentication failed' after I sent credentials", "my connection to mailserver:143 was refused", or any number of other error messages that would actually be helpful.

      There is no security value in the client (which is under the user's control) throwing away information instead of presenting it to the user. It's just poor error handling, and unfortunately many of Apple's client/server applications are guilty of it. I generally resort to using Wireshark when diagnosing problems with them, which is not something you can teach the average user to do. Address Book is the worst - it just stops returning results after you change your password! No error message at all! How horrible is that?

    11. Re:Egoism is hard to see by Blakey+Rat · · Score: 1

      One of the great usability rules that you've hit upon here is this:

      Software should never ask a user a question it could easily find the answer to itself

      For example, a program should never ask you what brand of sound card you have installed because it can easily ask the OS for it. It should never ask what homepage you want because it can (on Macintosh) ask the OS for it, or it can just check the homepage of another browser installed. (Firefox does this well when you tell it to import IE settings on Windows. On Macintosh, last I tried, it didn't... oh well.)

      So anyway, since Thunderbird obviously supports all those connection methods, it would be trivial for some programmer to write a function that would try each in turn, use some simple logic to figure out which is the best, and stores it in the preferences for next time.

    12. Re:Egoism is hard to see by MobyDisk · · Score: 1

      Good question.
      - I skipped the part where it asked IMAP or POP or whatever.
      - It defaulted to "delete messages from server after one week"
      I guess that is enough time for someone who knows what they are doing to fix the setting. I wondered why it defaulted to that. Now it makes sense.

    13. Re:Egoism is hard to see by MobyDisk · · Score: 1

      Interesting.
      You just made me realize that security and convenience don't have to be be opposites: Most applications make insecure easy and secure hard. You just came-up with a way to design things to be the other way around. Make it inconvenient if things are NOT secure. You are right about "Mail" though -- it didn't warn me or anything. Maybe it is because secure SMTP/POP is so rare.

      On a side-note, I currently use 3 different hosting providers/ISPs for various purposes. Only one of them support security on SMTP or POP3, and that one has an invalid certificate. (Pure Energy web hosting has the old certificate, Cavalier telephone = no securty, and Digital Space web hosting = no security). Last time I used Comcast they didn't support it either, but that info is >1 year old.

  32. Save yourself $4 by buying the book here! by Anonymous Coward · · Score: 0

    Save yourself $4 by buying the book here: Why Software Sucks. And if you use the "secret" A9.com discount, you can save an extra 1.57%!

  33. moron by Anonymous Coward · · Score: 0

    Theorizing that maybe the problem with software is that the field is too male dominated

    At this point I'd be praying that I get a paper cut and die from the resulting infection on the spot, rather than read any more BS from this guy!

    Here's the problem with software, in a simple sentence: anybody can be a programmer, regardless of skill.

    Think about it. What if medicine had no barrier to entry? Engineering? Accounting? You'd get the following:

    1) very low fees (of course, it would be easy for ANYONE to undercut)

    2) extremely poor median quality

    3) mediocre or laughable skills in a large percentage of practitioners (dailywtf anyone?)

    4) lowered expections from buyers (people would just come to accept that bridges often fall down, or 50% of minor surgeries end in death)

    5) constant re-definition and re-invention of basic terminology and concepts that were nailed down years ago (wait! this is my POST-RELATIONAL OBJECT-ASPECT XML DATABASE! 2.0!)

    6) articles and books decrying the lack of quality and coming up with nonsense reasons (but mommy, writing software is HARD! we can't expect programmers to do it!)

    Any of that sound familiar?

  34. Re:Something worse that Linux sucking is... by Anonymous Coward · · Score: 0

    That's because in the real world, linux is irrelevant.

  35. Ob FamilyGuy Paraphrase by rk · · Score: 1

    Well, look-a-here, Hershel. We got us one of them self-hating geeks. Nothing I hate worse than a geek who doesn't appreciate his own rich heritage.

  36. Why is software unreliable? by purpledinoz · · Score: 1

    I think software is so complicated that testing every single scenario is way too time consuming, thus unreliability is inevitable. Also, software developer often get requirements and specifications that aren't complete, but are expected to continue on with development anyway. This introduces a lot of usability issues and bad design decisions. Bad software isn't a result of ego-maniac software developers, but organizational and process issues that result in bad decisions being made.

    Of course then there are those bugs which comes from the oversight of the developers themselves. Hey, no one's perfect.

    1. Re:Why is software unreliable? by Coryoth · · Score: 1
      I think software is so complicated that testing every single scenario is way too time consuming, thus unreliability is inevitable. Also, software developer often get requirements and specifications that aren't complete, but are expected to continue on with development anyway.

      It is worth noting that the latter leads to the problem of the former. The better the requirements and specification, the easier it is to do more complete testing via automated randomised testing, and extended static checking (which can potentially cover all test cases using theorem provers). Such things need fairly precise specification to work, so that means demanding better requirements and specifications.

      Of course then there are those bugs which comes from the oversight of the developers themselves. Hey, no one's perfect.

      And those are the easiest bugs to quash - get better specification and you can do far more complete testing and weed out the little oversights. No, it won't make software perfect, but it will reduce at least one source of problems, and its one of the few sources that you are likely to have any real control over.
    2. Re:Why is software unreliable? by geekoid · · Score: 1

      "I think software is so complicated that testing every single scenario is way too time consuming, thus unreliability is inevitable."

      then your software development method is broken.

      "Also, software developer often get requirements and specifications that aren't complete, but are expected to continue on with development anyway."

      The software developers supervisor needs to be pushing back on this situation. Thi includes documenting costs incrued do to poor requests.

      "This introduces a lot of usability issues and bad design decisions"

      which is why it is practical to keep your development as flat as possible. It may not be as super effeicient, but it makes ad hoc request much easier to work in and understand.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  37. Re:Bleat, bleat, bleat.... by Pope · · Score: 1

    Brilliant. I guess since I don't play guitar, I can't say how much the band I saw last weekend sucked? Pffft. A genius you are not.

    --
    It doesn't mean much now, it's built for the future.
  38. Slashdot... by timster · · Score: 1

    Everyone seems to be forgetting the real reason software sucks: all the developers are reading Slashdot instead of coding. Get back to work, you slackers!

    --
    I have seen the future, and it is inconvenient.
  39. Where have you worked? by Anonymous Coward · · Score: 0

    My experience with software development has been very, very different. Generally huge problems of communication between those who know the client needs (the sales staff mostly, but not exclusively) and the programmers were the biggest obstacle. The programmers didn't reject what they were told (out of egoism or what have you), but simply weren't given all the relevant details. They were then blamed when the software did exactly what they were told to make it do.

    There were also problems of hard deadlines that were made without detailed estimates, and scope creep without deadline creep on top of that. These, too, were blamed on the programmers (they are so unproductive, they miss every deadline, etc.).

    Basically programmers were given too much work with too little time and too little guidance, and then blamed for the shortcomings of the end result.

    Of course...some of them were in that class of programmers who are only good at doing what they are told, and not good at being analysts as well. It takes a much higher level of mental versatility to be good both as a programmer and as a business analyst, which is precisely why such people cost more. If you want a cheap programmer, then don't expect him to perform like an analyst, and if you want an analyst who can program, don't expect him to be as cheap as a simple codebanger.

    However...I did work at one place where a few of the programmers were supremely ego-driven. They got very upset when consultants were brought in to help with specific tasks that they had been stuck on for weeks, and also they were very quick to start badmouthing one another's code whenever anything broke. So I will not say that problems of software development are always the fault of the higher ups...but I will say that in my own experience the fault was usually with the higher ups.

    I guess you could still blame the higher-ups for hiring programmers who were so egoistic...especially when more sociable ones were on the market...but that is tangential to my point.

    Codebangers without the guidance of a good analyst won't perform well. Good analysts are expensive, so they are often skipped. The failure of the end result is therefore the fault of the ones who didn't hire an analyst, not the fault of the codebanger they did hire (for cheap) and expected too much from. That's my point.

  40. Re:Bleat, bleat, bleat.... by mustafap · · Score: 1, Flamebait

    >If you don't like a book, and you're not its target audience, then put it down and don't review it.

    Actually, for once I'm glad to get a slashdot advert ( sorry, book review ) that is negative. I was getting fed up with blah blah this book is great blah blah followed by a link to buy it at an inflated price at BN.

    Hey slashdot, how about a few bad reviews of software books? Or are you afraid to piss off your sponsers?

    --
    Open Source Drum Kit, LPLC deve board - mjhdesigns.com
  41. Because.... by ObsessiveMathsFreak · · Score: 1

    ....it's written by people.

    --
    May the Maths Be with you!
  42. That's why by noSignal · · Score: 1

    I write all my own software. I'll never give any of those lazy monkeys the opportunity to screw up my computer! As soon as I can get this hard-drivermajiggy to talk to that green circuity looking thing I'll be in business...

  43. The adage you meant to use was by nead · · Score: 1

    1. Fast
    2. Cheap
    3. Good.

    Pick two.

  44. We already have an easily-enforced bill of rights by Sloppy · · Score: 1
    We need something like an installation controller.

    Or just have a middleman who maintains a library of software packages that have been reviewed (in some cases, audited rather thoroughly) as being generally safe and what they appear to be, makes sure the packages work together, occasionally checks to see if updates and bugfixes are available, etc. The people must have expertise with the subject matter, have the users' interest at heart (!!), and have a reputation that can be lost if they screw up and be replacable (thereby being accountable).

    We'll call that middleman a "distribution."

    Think about it: when was the last time a Debian user typed "apt-get" and worried about an application also sneakily installing a driver or "hijacking resources"? When was the last time an OpenBSD user got a shitload of extra services installed that they didn't want?

    Free software users have things so easy, because they already do have a "bill of rights" which they can enforce. It's a short and simple, too. Here it is:

    If your software screws me, I either won't use it anymore, or I'll fork it so that I can continue to use it without getting screwed.
    Choosing to no longer be a victim has become one my most celebrated choices, an absolute no brainer in hindsight. People who haven't made that choice, have so many problems that are almost unimaginably alien to me.
    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  45. ...because it's hard to write? by ottffssent · · Score: 1

    If good software (often this is reduced to good UI design, which really ought to make the problem easier) were easy to write, don't you think somewhere during the past 50 or so years, someone would have figured it out and started a company to do it? And yet I have a hard time coming up with more than a half-dozen applications to which I'd give a score in the top 5-10% for satisfaction. No, I don't mean "more satisfying than 90% of software". I mean "90% satisfying". As in "less than 10% of things I try to do are harder than they should be".

    So unless you've come up with a breakthrough in software or UI design (hint: you haven't), please stop killing trees to spread your words around. Thank you.

  46. It's happening more and more... by tool462 · · Score: 1

    The child molester analogy is becoming common enough that it may supplant Godwin's Law.

  47. Re:Bleat, bleat, bleat.... by Un+pobre+guey · · Score: 2, Insightful
    You missed the point of the "Bleat, bleat, bleat" post. The revewer examined the book from the point of view of a software developer, when the book is plainly intended for a non-technical lay public. For a SW developer the book is evidently inadequate. I doubt that the same could be said for the general public.

    Also, books don't fall out of the sky in final form. They are products developed at companies that wish to make a net profit from them in a fiercely competitive book market. The author of a book intended for the lay public is usually closely managed by the editor in charge of the project in order to insure that the target market is well-served. You need only watch a few hours of prime time TV to glean an idea of how to approach that market. To provide a book that passes muster with SW developers would be a blunder. To hype up pre-conceived stereotypes and stroke the lay reader would very likely prove useful. To drop famous names and quote from their writings, implying agreement with the book's theses, would also be a good idea.

    They are trying to sell books, not philosophize at an intellectual café.

  48. Comic Book Guy Indeed... by eno2001 · · Score: 3, Insightful
    And I quote:

    How can I get my employer to use better software products? Or my local government? Can I leverage accessibility and usability laws in the fight against bad websites? Are those crickets I hear?

    To answer the first question, unless you're in the management or IT department of your company you CAN'T get them to use better software products. To answer your second question, you have NO BUSINESS telling your local government what software works for them. (And I'm an advocate of OpenOffice over MS Office for home use as well as using it at my job, but I work in IT) And to answer your third question, you can try, but you have no guarantee of succeeding, nor should you. You didn't pay to have the websites developed, therefore you have no say. In an ideal world people would just do the right thing. But this is far from an ideal world.

    It seems to me that your rant (not really much of a review at all) is misplaced against this book. You're railing on about his attack on programmers but not paying attention to the fact that end-users and not coders are the target of this book. They could give a rat's ass about DRM because other than some minor inconveniences and some extra costs, DRM is transparent to them. We have a right to be angry about DRM because it hobbles programmers from being able to actually take advantage of whiz bang new possibilities afforded by upcoming technology since DRM imposes artificial restrictions on us. Joe Average will NEVER "get" that.

    I agree with you in that he focused on the wrong stuff to a degree. He got it right as far as the average user goes. But if he was really going to show them the inside of the sausage factory (which I find disturbingly phallic mind you), he would point out that most people writing software today have no business writing it. All the slick IDEs that have been unleashed on would be coders and web developers has resulted in everyone and his brother being a "programmer". There are people developing applications and web sites out there who don't even know what structured programming or OOP are. They have no concept of the basics when it comes to writing code. Most of it is pieced together crap without reusable code even factoring in. It's beyond crufty. And THAT is why software sucks today.

    --
    -"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
    1. Re:Comic Book Guy Indeed... by Anonymous Coward · · Score: 0

      You're railing on about his attack on programmers but not paying attention to the fact that end-users and not coders are the target of this book.

      Maybe coders (and the IT world in general) SHOULD be the target of a book such as this. The purpose of this book (well, other than to generate income for the author, of course) isn't too clear to me. Frustrated end-users won't get much solace or value in reading someone's confirmation of what they already think. If the guy had assembled a credible and well-supported list of criticisms, along with viable potential fixes, then the IT world would have something meaningful to work with to change the status quo.

      There was an article a couple years ago (in MIT's Technology Review?) regarding application development innovations in making software less buggy - THAT's a more promising route than writing to Congress.

    2. Re:Comic Book Guy Indeed... by Agn0stic3000 · · Score: 1

      GP: Can I leverage accessibility and usability laws in the fight against bad websites?

      P: you can try, but you have no guarantee of succeeding, nor should you. You didn't pay to have the websites developed, therefore you have no say. In an ideal world people would just do the right thing. But this is far from an ideal world.

      Not what the courts have said about some retailers' websites and the ADA http://biz.yahoo.com/prnews/060907/cgth051.html

      --
      What, me worry?
    3. Re:Comic Book Guy Indeed... by Anonymous Coward · · Score: 0

      To answer your second question, you have NO BUSINESS telling your local government what software works for them.

      If my taxes are paying for the software, I think I have a great deal of business in trying to influence their purchase.

    4. Re:Comic Book Guy Indeed... by indil · · Score: 1
      Not what the courts have said about some retailers' websites and the ADA http://biz.yahoo.com/prnews/060907/cgth051.html

      There was an earlier ruling by another federal judge that the ADA does not apply to web sites. Until a case goes to the Supreme Court, the applicability of the ADA to web sites depends on which federal district you're in.

    5. Re:Comic Book Guy Indeed... by indil · · Score: 2, Interesting
      You're railing on about his attack on programmers but not paying attention to the fact that end-users and not coders are the target of this book. They could give a rat's ass about DRM because other than some minor inconveniences and some extra costs, DRM is transparent to them. We have a right to be angry about DRM because it hobbles programmers from being able to actually take advantage of whiz bang new possibilities afforded by upcoming technology since DRM imposes artificial restrictions on us. Joe Average will NEVER "get" that.

      1. Buy music on iTunes.
      2. Reinstall your operating system without backing up.
      3. Try to recover the music you bought from iTunes, only to have iTunes tell you that purchased songs can only be downloaded once.

      Joe Average will "get" that, let me assure you. And he's pissed.

    6. Re:Comic Book Guy Indeed... by Bugmaster · · Score: 1

      Well, I'm a fairly average user as far as music, video, and ebooks are concerned. I've never cared about writing any code that manipulates them in any way; I just want to listen, watch, and read.

      It pisses me off to no end that I can't do those things, at all, because of DRM (at least, not without risking jail time). Sure, I can listen to a song N times on a single computer, but that's not what I do with my music; I want to copy it to my MP3 players, I want to burn it for playing in the car, I want it to survive my frequent OS/hardware upgrades, etc. Right now there's no way to do that, and there's no way at all to download videos in electronic format. Most ebooks also don't allow you to copy/paste things, which is just a slap in the face.

      I am also pretty pissed off about the fact that e-ink ebook readers do not exist; that HDTV is still a bit wonky; that PS3 is in DNF territory; that Vista will require massive hardware "upgrades"; and that there's a format war that prevents me from burning DVDs. All of these problems are a direct result of DRM. And don't even talk to me about region coding.

      I'm an average joe, and I want DRM to die.

      --
      >|<*:=
    7. Re:Comic Book Guy Indeed... by eno2001 · · Score: 1

      You're not Joe Average if you do any kind of hardware or OS upgrade. Joe Average buys a PC at Walmart and never adds anything to it (other than the pirated software from his brother Bob Average). He uses all the bundled crap that came with it thinking that it's the best there is and complains about how much it still sucks. Joe Average might buy an MP3 player, but it's going to be disc based so he can use his CDs on it and still wonders how come they don't sound any better since this new player is supposed to MP3 everything so it's longer.

      --
      -"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
    8. Re:Comic Book Guy Indeed... by cascadingstylesheet · · Score: 1

      >To answer your second question, you have NO BUSINESS telling
      >your local government what software works for them.

      Really? In a democracy? No business at all?

    9. Re:Comic Book Guy Indeed... by eno2001 · · Score: 1

      So sorry you've fallen for the "democracy" lie. Your "freedom" is an illusion. Wake up.

      --
      -"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
  49. The Book is Fine by Anonymous Coward · · Score: 0

    Trent just doesn't like how the catholics and jews were ridiculed. Trent is complacent enough when protestants are the target...

  50. Why software sucks in one sentance by edremy · · Score: 2, Interesting
    "Because you're not willing to pay for what it would cost not to suck"

    Seriously, that's basically it. It's perfectly possible to write software that doesn't suck- people do it all the time. (See pretty much anything written by JPL, for example)

    But it costs. It costs for the good management&development team to decide exactly what the spec will be. It costs for good, experienced programmers to write solid, mantainable code. It costs for QA and UI people to go over everything with a fine tooth comb. It costs time to get it all right, and you're not going to get every wiz-bang feature because that would cost even more.

    99.9% of users simply aren't willing to pay for that. The few that are live in niches where an accident is simply not acceptable. (See JPL, above, and even then they aren't perfect: see Spirit for an example) The rest of us settle for the likes of Windows and Office- lots of features, mostly works, ok UI simply because the perfect option would have a 1/10 the features and cost 10x as much.

    --
    "Seven Deadly Sins? I thought it was a to-do list!"
    1. Re:Why software sucks in one sentance by reg106 · · Score: 1

      JPL also had a hiccup with priority inversion on Pathfinder.

    2. Re:Why software sucks in one sentance by Flyboy+Connor · · Score: 1

      "Because you're not willing to pay for what it would cost not to suck"

      Spot on.

      As a case in point: I once developed software for the government, which they needed to make some regulations accessible to their users. They were going to spread that software around for free. They had a limited budget to develop the stuff, and lots of requests for features. So they asked us to put a price tag on each requested feature, so that they could pick and choose what they wanted.

      One of the features they wanted to have was an extensive test of the product in a usability lab. Obviously, when they found out that that would cost as much as the development of ALL the software features they wanted, that was the first thing to go. And that was my advice too. Because I reasoned: (a) there were no complaints on the usability of the prototype, (b) every user of the prototype was able to use it as intended without any training, and (c) if its free, usable in practice, and there is NO budget to implement any of the features that might be suggested by subjects in a usability lab, why do the usability tests at all?

      It must be said, I was quite surprised to find out that testing the usability of the software would be so expensive. But all the items on the calculation were reasonable. Interesting lesson to learn.

  51. Am I the only one... by masterzora · · Score: 1

    who thinks that the UPS and Starbucks "problems" have good use? Like the fact that UPS wouldn't always be able to get the correct home country for somebody using a remote proxy or that somebody might actually want to know all the Starbucks locations within 5 miles because that's as far as they're willing to go, but they might be in different parts of that circle at different parts of the day...? No, I'm not trying to make excuses for these guys, and I'm sure that it was really lazy programming, but that doesn't stop it from being useful.

    --
    Remember, open source is free as in speech, not free as in bear.
    1. Re:Am I the only one... by geekoid · · Score: 1

      Five miles is the absolut farthest someone will drive for a coffee.
      Two blocks is the max walking distance.

      So five miles is exatly correct for starbucks.

      IP can not be relied on 100% to determin location. UPS needs 100%

      Ther are a lot of bad examples, those two were poorly choosen.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  52. Re:Software sucks because... by Anonymous Coward · · Score: 0

    Yes because the Aryan race is known primarily for their high quality software. Like .. wait I can't think of anything.

  53. Re:Bleat, bleat, bleat.... by Anonymous Coward · · Score: 0

    So books are generated to make money. How then does that negate the need to review it? And the reviewer did try and think of how the target audience would benefit, or not from the book. His conclusion is that it was useless to them.

  54. No it was not. by _pruegel_ · · Score: 1

    He is right with the four variables. Size, time, quality and cost are the four variables that (some people believe) can be tweaked in any project but since they all are connected and affect eachother, any change to one of the four will require changes in at least one more.

    In practice however quality is not really negotiable and it should not be (that makes your point 3 invalid). And changing the required time is not easy. A project that takes two month with two people will maybe take only one month with four people. But it will not take only a week with 16 people. Customers usually have either a cost or a time limit and many times both.

    The only real variable in a project and the one which makes the most impact is size or scope of a project. Usually customers can agree to substantial scope reductions when they see the price for the "required" features. At least this happened to me quite often.

    1. Re:No it was not. by ArsonSmith · · Score: 1

      Size and quality bot reflect the good portion and are really in the same camp. PMI holds three being

      End Date
      Budget
      Requirements

      and you are suppose to rate them from most important to least important.

      Which all boils down to good fast cheap, pick two.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    2. Re:No it was not. by rlp · · Score: 1

      I met a PhD mathematician at a conference who's job was to prove that a particular piece of software was 'correct'. The process was slow, manual, and very very expensive. However, for this particular application quality was more important than just about any other aspect of the development process. The application was software for a NASA deep space probe. I guess they figured it was cheaper than the cost of on-site tech support.

      --
      [Insert pithy quote here]
  55. Based on a true story, where I looked something up by Anonymous Coward · · Score: 0

    Dan Brown ghost writes for Platt.

  56. Suckbusters.com sucks bad by kindbud · · Score: 5, Insightful

    Javascript is required for simple hyperlinks to work. That's some quality suckiness right there. You really have to go out of your way to make a plain old hyperlink non-functional.

    --
    Edith Keeler Must Die
  57. Re:Bleat, bleat, bleat.... by mustafap · · Score: 2, Funny

    Oh dear, marked as flamebait. I guess our slashdot overlords can't take criticism.

    --
    Open Source Drum Kit, LPLC deve board - mjhdesigns.com
  58. Why software sucks, really by Animats · · Score: 3, Interesting

    Software sucks because the costs of it sucking fall on the user, not the manufacturer. That's hasn't been true of automobiles for several decades now, and cars have gotten much better. When was the last time your car died on the road?

    Many years ago, I was at Ford Aerospace when the Ford EEC-IV electronic engine control unit was being developed. In that unit, the program was permanent; it was in a mask-programmed device, and could not be changed without replacing the entire unit. Very substantial resources were devoted to insuring that there were no bugs that could cause cars to fail on the road. There was huge fear of a recall; if something had gone wrong, most of the Ford cars on the road would have to come back to a dealership for CPU replacement. There were old engineers at Ford who didn't want a computer to have direct control of the engine. Tweak the spark timing a bit or adjust the emissions valves, like the earlier models of engine control, perhaps. But actually fire the spark plug directly from software? That was radical. So everyone involved was paranoid about bugs.

    It worked. Twenty years later, no bugs have been found. There was never an EEC-IV recall. The EEC-IV is still popular with enthusiasts. You can even download the code and run it in an emulator. I still have a 1985 Ford Bronco with its original EEC-IV, and it runs fine.

    If Microsoft had to face the possibility of bringing every PC with Windows on it into an approved Microsoft repair center for a software update at Microsoft's expense, Windows would not crash. It might not do as much, but critical components of it wouldn't fail disasterously.

    And that's why software sucks.

    1. Re:Why software sucks, really by Xyrus · · Score: 3, Insightful

      You're comparing an OS to a piece of sofware that was written for a single purpose with known hardware constraints. I'm sorry, but that just simply is not a fair comparison.

      An OS is far more complicated. Linux/Windows/OSX/ etc. needs to support numerous configuration, with various hardware and software. I don't see many cars out there that allow you to go in and add programs or logic to the engine control system (legitimately). There's also big disclaimers saying that the manufacturer cannot be held responsible if you alter your car and it stops working.

      If you want your software to be guarenteed to never crash, you build a box of hardware that cannot be changed. You make an OS that cannot be modified. Then you write all your programs on that machine and beat the hell out of them. You basically lock the system from user modifcation.

      Of course, that makes for a real shitty product. So we have these customizable boxes with customizeable hardware and customizeable software. Unless you expect MS to test every possible piece of hardware and software, then there will eventually be problems.

      And I won't even get into the complexity of the code for the OS itself. How much code is in that EEC module again?

      I also notice that you're quick to fire off at MS. I would just like to point out this is a problem with ALL operating systems. I've had windows and linux both crash and take my system with it. It happens.

      But given the choice between something fairly stable, flexible, and inexpensive vs. an uber-expensive steel-clad mono-box I'll take the former.

      ~X~

      --
      ~X~
    2. Re:Why software sucks, really by Stradivarius · · Score: 2, Insightful

      Fair enough - an OS is probably a lot more complicated than the EEC module mentioned. But the point Animats was making is still valid. The costs of software failures by and large are borne by the users, not the manufacturer, and thus there is little incentive to fix the situation. When the only party with the power to fix a problem has little incentive to do so, chances are extremely high that it won't be fixed.

      (The book Freakonomics had an interesting illustration of this phenomenon, whereby bank fraud was much lower in countries where banks were responsible for losses due to bank fraud, compared to countries where the consumer was held accountable. Why? Because when the consumer was accountable, he had no power to fix the situation to reclaim his lost funds. But where banks were held responsible, they had both a large interest in preventing fraud AND the ability to get it done.)

      Now if I buy almost any consumer good, and I use it in the way it was intended, and if it breaks and causes me harm (financial, physical, or otherwise), the manufacturer usually has a legal liability. Especially if they knew of the defect and sold it anyway. That is a huge incentive to get the product right initially, and to recall defective products when a problem slips through. If my PC software breaks and causes me to lose thousands of dollars in lost data and/or recovery time, I have no recourse against the manufacturer. They have no legal liability, because software is licensed rather than sold, and of course every manufacturer's EULA essentially says "we the manufacturer take no responsibility whatsoever, this software is as-is and could eat your firstborn for breakfast". The manufacturer bears no cost at all for their failure. If I'm lucky the manufacturer will identify the source of the problem after the fact and post a patch on their website.

      The best you can get in that situation is to hope that competition forces the manufacturer in question not to suck too much. But often, there is little competition (often by design, through use of proprietary formats and protocols to lock-in users who otherwise would switch to a competitor).

      And that is indeed why software sucks. Because the user wants to fix the problem but can't, and the manufacturer can fix the problem but doesn't care enough to do so. This, IMO, is a large part of why open-source has become popular fairly quickly, particularly among corporate users. Because finally, the user has some ability to fix the problems that are causing him harm.

    3. Re:Why software sucks, really by rnelsonee · · Score: 1
      You're both right in my opinion. A specific embedded-type device should have much, much less bugs than an entire OS. Keep in mind this article talks about all software. I think an application is right in the middle of an embedded microcode and an OS - it's complicated, but with limited goals and uses.

      Just today, I got mad at the iPod interface in my car because it crapped out, along with my cell phone's poker program because it lost some data. But I couldn't get too mad, because I'm a software developer myself, and I know that the guys that programmed those things are probably like me - they'd love to write bug-free software, but it's just not happening. We spend much more time writing software than testing it (and that's what's expected). Hell, someone found a bug in my code today that I'm going to have to patch tomorrow.

      So the OP has a valid point - until we really start treating software as more of a finished product, and devoting appropriate resources to testing, evaluation and QA, we're going to let buggy code get out to users. If you have something like an auto-update feature, then that makes it a bit more acceptable, but it doesn't solve the root issue.

    4. Re:Why software sucks, really by Xyrus · · Score: 1

      I wasn't disagreeing with the reasons you pointed out. I was merely trying to illustrate why a comparison between a fixed system on known hardware with limited functionality should not be compared to something that runs with variable hardware, variable software, is user-customizable, and contains copious amounts of functionality. :)

      It should be kept in mind though that the more complex the system is, the harder (and more expensive) it is to know every possible scenario that will occur in the code.

      Open source is becoming attractive because companies are beginning to learn that paying the tech to fix an open source problem is at worst the same cost as trying to get MS to fix a problem. And there is no guarentee MS would fix the problem.

      However, in a real competition driven market MS would bend over backward to fix the problem because if they didn't said company would just go with someone else.

      ~X~

      --
      ~X~
  59. Settle for Windows? by argent · · Score: 1

    Some of the biggest flaws in Windows would remain flaws no matter how well they were implemented, because they're inherent in the high level design of major components, designs that were chosen for political reasons. bad user interfaces can be replaced. Bugs can be fixed. But there is no way to securely implement Active X as Internet Explorer uses it even if you got the ghost of Turing riding shotgun with Wirth and Knuth as pilot and copilot.

    This isn't anything to do with software development. It's no different than the wrangling in the auto industry over seatbelts and air bags, or the oil industry pushing gas prices down on the run up to an election where an "energy-friendly" incumbent is in the white house.

  60. Ann Coulter - neo-conehead by ClosedSource · · Score: 1

    I'd say Ann Coulter is way beyond being a simple neo-con, more like a neo-conehead.

    1. Re:Ann Coulter - neo-conehead by Anonymous Coward · · Score: 0

      I'd fuck her, but then I'd have to shoot myself.

  61. If it's not OOP, it sucks. by Bozdune · · Score: 1

    Which pretty much means that all device drivers, almost any kind of firmware or assembly language code, OS code, networking code, etc., all suck -- by definition. Thanks for clearing that up.

    I kinda figured that was true, 'cause when my computer blue screens and stuff I see a lot of hex numbers and weird crap like that and so that's probably machine language or something so that's why it probably sucked and died and stuff.

    1. Re:If it's not OOP, it sucks. by eno2001 · · Score: 1

      Nice attempt at a troll. Practice kid. It comes in handy.

      With that aside, re-read my post. I was NOT advocating OOP. I actually prefer structured programming myself. But actually being aware of OOP and how it works is NOT a bad thing. Especially if you want to say it sucks. So what have you added to the conversation?

      --
      -"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
    2. Re:If it's not OOP, it sucks. by Bozdune · · Score: 1

      ...what have you added to the conversation?

      Humor, I hope. I enjoy poking fun at sweeping generalizations.

      As far as "structured programming" is concerned, I had been programming for 17 years when Dijkstra's "GOTO Considered Harmful" letter was published in the CACM in March 1987. It was an oversimplification then, and it's an oversimplification now. If I'm eight levels deep in crap, and I need to get the hell out cleanly, is my code more readable/maintainable with a zillion IF tests on an exit flag, or with a simple GOTO and an expressive comment?

      And please, don't get all Tony Hoare on me about GOTOs ruining proofs of correctness. Come to think of it, that proof of correctness idea really had some practical legs, eh? Can't swing a dead cat around my company without hitting a project that owes its success to a proof of correctness.

    3. Re:If it's not OOP, it sucks. by Bozdune · · Score: 1

      1968. Dijkstra's letter was 1968. So much for looking it up and believing the first Google reference. OK, so I had been programming for -2 years in 1968. That counts, right?

    4. Re:If it's not OOP, it sucks. by eno2001 · · Score: 1

      I had to go through your post history a bit to see if you really are what you claim to be. It appears so. Hats off to you. But please keep in mind that no everyone programs to make money or get rich. Some of us do it for fun which also makes us qualified to point out why software sucks and in many cases is the driving factor behind writing free/open software that works the way WE want it to work. Does that help Joe Average? Maybe not. But in some cases it does. And at the end of the day, from the perspective of a person like me, I don't care if no one made money. Did they have fun? Yes? Good. Does the program work as the writer expected? Yes? Good. That's all that matters in this particular instance. As far as Joe Average, they're stuck relying on people who put financial success way ahead of actually producing a decent product. And as you stated in some of your previous posts, success in the world of commercial software is all about turn-around time. If someone is faster than you to market, you lose. That means you've got to make compromises, which generally means: ship with major bugs, "fix it in the mix", and generally put the customer second if not last. You yourself pointed out that VB sucks. But it also enables people to develop apps quickly. So, that means you're willing to accept suckage in exchange for rapid development. Some of us aren't willing to make that compromise.

      --
      -"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
    5. Re:If it's not OOP, it sucks. by Bozdune · · Score: 1

      Ah, but it is possible to deliver quality software in any language, even VB. It is all about the programmer, not the tools. I've seen absolutely wonderfully-written Assembler H code (in the CP/CMS kernel) that (to paraphrase Dr. McCoy) "a child could understand." Contrariwise, I've seen OO code that is totally incomprehensible and unmaintainable (to be fair, I've seen OO code that's wonderful, too).

  62. Why everything sucks. by argent · · Score: 3, Insightful

    You can't use the keyboard to navigate to all the icons in a Windows application's toolbar? That sucks.

    Your car stereo doesn't have a two-cent audio-in jack? That sucks.

    Your cellphone's 'send to voicemail' button is right under your thumb when you flip the phone open? That sucks.

    Your kids' school sends students home early when they don't have a class in the last period, but there's no school bus? That sucks.

    Your TV reception is better than your cable reception, because there's an amplifier on your line that's flooded every time it rains? That sucks.

    Your town built a bridge and created a stagnant pool right where the ouflow from the slaughterhouse hits the river? That sucks.

    What makes anything think that bad design, screwed up decisions, and lousy implementation are unique to software?

    1. Re:Why everything sucks. by noSignal · · Score: 1

      Well said.

    2. Re:Why everything sucks. by mutterc · · Score: 1

      Software is just the worst, because of the low capital requirements.

      If car designers could pull crap like "we don't have time to get the trunk finished before release, we'll release the car without a back end, then bolt on a trunk later", then cars would suck just as much as software.

  63. First law of computers: by Anonymous Coward · · Score: 0

    A computer shall not harm the users' data, or through inaction allow that data to come to harm.

  64. this book sounds like a 'hit job' by recharged95 · · Score: 1
    Anything that is custom-built "sucks". Does building houses suck, building clothes, building cars, building (i.e. cooking) food, suck?

    In most cases... yes. Cause most, or nearly all, builders are trying to satisify a large audience with a generalized solution. Like most professions, we have a scientific framework to express ideas & solutions, and evaluation of those ideas are [always] subjective. And guess what, most customers do not know what is common between them and all other customers using the same product that a builder is trying to serve. That's basic to any mass produced product. And since computer/software shortens the time span of pushing a product to market, you get less testing, less quality, increasing number of customer needs, and more dynamic and complex customer requirements. As a s/w developer, you have less time to develop and they, the customer, has more time to think about their individual needs.

    Want 100% custom-tailored-to-you-bug-free software? Know exactly what you want and expect to pay dearly for it. Just think, it's no different than Ikea vs. hand crafted furniture.

    1. Re:this book sounds like a 'hit job' by geekoid · · Score: 1

      true, but if I buy a new home and the door falls off, I'm not expected to wait three months to get it fixed at my expense.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  65. take a deep breath, everything's fine by not+a+cylon · · Score: 0

    Until software starts killing people by the thousands, it's "good enough" for now. It's like reading a Stephen King book. You just know it's going to devolve into something ridiculously stupid at some point. But you read it anyway, because it's "good enough" to help you get to sleep. People are used to disappointment. Programmers are just doing their part to maintain this universal truth.

  66. Re:Bleat, bleat, bleat.... by Un+pobre+guey · · Score: 1
    So books are generated to make money. How then does that negate the need to review it?

    Where did I negate the need to review it? Don't make up phantom claims.

    And the reviewer did try and think of how the target audience would benefit, or not from the book.

    He did not focus on the target audience, he mentioned it briefly as a secondary issue. He focused on a tangentially related audience.

  67. Does Internet Explorer Suck? by Anonymous Coward · · Score: 0

    He was the project leader of Internet Explorer 1 through 5, so if anyone knows about sucky software, he does.

  68. Cool Review by bdwoolman · · Score: 1

    It explained why Why Software Sucks sucks.

    --
    "No fear. No envy. No meanness." Liam Clancy
  69. Occam's Razor leads me to Sturgeon's Revelation by Tim+Browse · · Score: 1

    There are various theories here (in the book, review, comments) about why software sucks, but none of them seem to make more sense than Sturgeon's Revelation.

    Being a developer myself, I'd like to argue that most developers aren't ego-driven and amateurish, but they are governed by Sturgeon's Revelation just same as most every other profession. This is certainly borne out by my experience anyway.

  70. copycat success by logicpaw · · Score: 1

    While academics were writing papers about formal proofs of correctness and such, businessmen were noticing that startups that quickly sent to market good demos with crappy to non-existant quality were drawing a boatload of investments and sometimes even producing big profits. The triumph of marketing over theoretical mathematics. It's not difficult to figure out which model most managers would want to copy.

  71. It's not our fault... by JustIronic · · Score: 1

    It's not our fault!!... We do what are we told..., it's the functional analyst fault!!

    --
    The knowledge is something that you learn. The experience is something that you earn. The rest, you can buy it.
  72. Re:Bleat, bleat, bleat.... by Petrushka · · Score: 1
    If you don't like a book, and you're not its target audience, then put it down and don't review it.

    Uhhhh? What do you think the purpose of book reviews is? Or are you perhaps a publisher?

  73. Best line from the review. by BeeBeard · · Score: 1

    As I read this chapter, the introduction to Strauss's "Thus Spake Zarathustra" began to play in my mind. I slowly looked toward the sky as I realized that, yes, if this is what it takes, then maybe I, too, could write a book.

    Do it! If your books end up even half as interesting as your book reviews, then you'll really have something. Good luck!

  74. Oh My Yahweh! by BeeBeard · · Score: 2, Funny

    Mel Gibson? Is that you?

  75. Its easy. by oyenstikker · · Score: 1

    I know why software sucks. Its simple. If you have a physical product, and you make a mistake and need to fix it, it is very expensive to either get back all the broken products and fix them or to make replacements. Thus, you dedicate a lot of resources to make sure there aren't mistakes. With software, it is almost free to provide upgrades and patches. Thus, few resources are dedicated to quality control.

    --
    The masses are the crack whores of religion.
  76. Re:Bleat, bleat, bleat.... by hhlost · · Score: 1

    Lemme guess, his next book will be "Why Websites Suck"

    http://validator.w3.org/check?uri=http%3A%2F%2Fwww .suckbusters.com%2F

  77. Please Mod Parent Down by xero314 · · Score: 1

    Developers do not need to know a thing about the subject mater they are developing. Software development is labor, and labor does not need to know why they are doing what they are doing, they only need to know how. The best software comes from small teams made up of good developers, good analysts, good architects and people knowledgeable about the subject. The software we have to day is built mostly by developer/architect/analyst (one person expected to fill all three roles) and sales reps (regurgitating unreasonable promises to they made to some client, internal or external).

    Having worked as a developer, architect and project manager on Software projects in many diverse fields I can tell you from experience that the less your developers need to know about the subject the better the software will be. Because to have a team of developers that know nothing about the subject you actually have to write requirements and have reasonable test cases.

    The problem here is that you have nothing to show for long periods of time and so most "clients" don't like the idea, but in the end you will have a much better product.

    Oh and if you are curious I do support agile development and design just not agile planning and testing.

    1. Re:Please Mod Parent Down by TheWoozle · · Score: 1

      The only way you talk about works is if you have perfect requirements written by some perfect master planner who has perfect knowledge of everything necessary.

      I work in the real world, where it's often the case of "do what I mean, not what I say." The distinction is important, and I have *never* been on a project in 15 years of programming where this has not come up.

      --
      Insisting on "correct" English is like saying that there is only one, definitive recipe for chili.
    2. Re:Please Mod Parent Down by xero314 · · Score: 2, Interesting

      Yeah it is too bad there are a lot of bad software shops with a lot of bad managers running a lot of bad projects.

      But seriously it does not require perfect requirements or a perfect master. The key is to have requirements, including test cases and success criteria. Things certainly change but it shouldn't be the usual "change the code before even determining if there really is a problem since you have no requirement to compare to , hope it does what it's supposed to do, write a test based on the code that, unless the developer is an idiot, has to pass, because it is based on the code he wrote after all, and then maybe, and this is a big maybe, go back and update the requirements" but instead should be "determine the problem, review the problem, update the requirement, write the tests, determine completion criteria, distill the subject mater into terms the developers can understand, which isn't that hard, all things can be distilled to binary comparisons after all, write the code and the test the code based on the aforementioned tests."

      You will find out that if you do what people say and not what you think they mean they will start to tell you what they actually mean and therefor reduce the amount of guess work to zero. So if whoever is in your analyst role can't convert business requirements into technical requirements best get yourself a new analyst. This really isn't that much work, but it is certainly more effective (cost, time and quality) than not having decent specs and people specialized in what they do. And if you don't believe me you can do one of two things, read someone like Brooks, or honestly give it a try (took about a year to turn one very disorganized shop around and it is no the single most efficient place I have ever worked).

      Having developed Genetic Research software I can tell your from experience, a little knowledge is dangerous and having enough to be worth while would have most developers going back to school for another 6+ years, which is just about enough to forget how develop and at the very least be a generation behind the latest technology and advancements in development.

  78. Errr... by Anonymous Coward · · Score: 0

    "Soft things sucks..." as my girfriend defines it...

    ---

    and no, I do not need any Viagra...

  79. Sucks for the same reason any product sucks... by smithmc · · Score: 1

    ...because the market tolerates it. As long as millions of people are clearly willing and eager to spend billions of dollars on software that sucks, why bother developing software that doesn't?

    --
    Downmodding is the refuge of the weak. Don't downmod, make a better argument!
  80. Why software sucks (by me) by 14erCleaner · · Score: 1
    Because it's really hard to make software that doesn't suck.

    Seriously.

    There are a lot of subtle things that go into making a good user interface, and most programmers either aren't smart enough, or aren't aware of the problem, or don't care enough, to do them. And most of these things just require deep thought and hard work to get right.

    That stupid-looking suckbusters.com sight appears to be a cause #1. I suspect that Pratt just isn't a particularly talented web programmer, and it shows in his site. I doubt if he has the ability to do better. Of course, if he were really aware of how hideous his site looks, he'd probably do something about it (or else maybe take it down), so maybe it's #2.

    --
    Have you read my blog lately?
  81. Thus Spake Zarathustra by Anonymous Coward · · Score: 0

    As I read this chapter, the introduction to Strauss's "Thus Spake Zarathustra" began to play in my mind. I slowly looked toward the sky as I realized that, yes, if this is what it takes, then maybe I, too, could write a book.

    'Thus Spake Zarathustra' was by Friedrich Nietzsche.

    1. Re:Thus Spake Zarathustra by neminem · · Score: 1

      Or it's by Lena Hades. Or it's by Monolith Soft. Really, who wouldn't think of the Strauss piece?

  82. Re:Bleat, bleat, bleat.... by shrdlu · · Score: 2, Informative

    If you don't like a book, and you're not its target audience, then put it down and don't review it.

    I found the review to be informative. I have to believe that the intended audience is programmers, no matter what the author says. Do you really think that non-programmers will buy such a book? Surely they are more interested in the latest novel, than in yet another vanity piece. The points that the book made needed to be addressed, and I thought that the reviewer did so.

    It's a poorly written and misleading book; that's plain. The review saves those of us inclined to buy it from doing so. I doubt very much that the slashdot audience is composed of non-technical, mid-level managers. The review was intended for us, and it served the purpose.

    --
    The difference between a Miracle and a Fact is exactly the difference between a mermaid and a seal. (Mark Twain)
  83. I stopped reading at this point by Anonymous Coward · · Score: 0

    "They go to tech conferences and pay more attention to the amazingly realistic software rendering of a bikini babe as opposed to talking to the real woman standing right next to them."

    Why not talk to that real woman? because:
    A. You don't have a chance with a real woman.
    B. You can't program real women to do 'stuff' (more like they program you in life).
    C. The majority of women at a tech conference are paid to be there and have no interest in you.
    D. She's married to some guy who looks 4 times uglier than you do, or so you think.
    E. You can pimp out your CG bikini babe to all the other guys and make millions. You'll probably be paying for porn/sex even if you talkied with that real girl, so go for the money.

  84. Hey Suckbusters.... by Anonymous Coward · · Score: 0

    ....1995 called. It says your website sucks!

  85. Re:Bleat, bleat, bleat.... by BlueStraggler · · Score: 1
    The revewer examined the book from the point of view of a software developer, when the book is plainly intended for a non-technical lay public.

    And how many members of the non-technical lay public are going to buy a book that is about sucky software? Approximately 0 (within a margin of error of 1000). Nobody cares *why* software sucks, except software developers*. And nobody else needs to be convinced that software sucks - it's just not that controversial of a statement.

    The only members of the public who might be tempted to even pick up such a book are those for whom the title is provocative and interesting - which is strongly correlated with those people who LOVE software and think it's all totally awesome, and therefore might be challenged and engaged by the contents. (See previous paragraph for an estimate of the size of this group, excluding software geeks). If you are not in this group, the subject falls into the same general category as "Why zits suck", "Why taxes suck", and "Why mean people suck" in terms of general interest.

    * In this context, software developers includes anyone in the software business, not just programmers.

  86. IP address? by antdude · · Score: 1

    "home country instead of detecting it via the user's IP address." -- This isn't always accurate. What if user is behind a proxy, at school, at work, using someone else's Internet connection (e.g., wifi), etc.?

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  87. Why is everyone feisty about this? by mattgreen · · Score: 1

    The comments sure are defensive around here, but I can't really figure out why. I live and breathe software development, and I'll be the first to agree: software does suck. It bogs the user down with unnecessary details too often instead of just staying out of their way. Simplicity is rare, most user interfaces are made to be flashy, and memory/disk space requirements are often ridiculous, given the scope of the application.

  88. My feature, your bug by Anonymous Coward · · Score: 0

    > UPS.com is constantly scorned throughout the book because it asks the user for their home country instead of detecting it via the user's IP address.

    Wow, that's just weird. Personally I wish more websites (google, I'm looking at you) had this feature. And for a company like UPS... the author does realise that IP address based location is only approximate... doesn't he?

  89. Alan Cooper. by Anonymous Coward · · Score: 0

    All these complaint about the book, and Alan Cooper's book essentially says the same thing. The inmates are running the asylum...amd posting on slashdot.

  90. Software sucks for only two reasons by swordgeek · · Score: 1

    1) Microsoft.
    2) Anti-Microsoft.

    Microsoft has come up with bad user paradigms and then carefully polished them. Over and over, they fail to create a good program, and instead create a marginally usable one after the user has been trained to think like the program.

    Then everyone else comes along and tries to write software which allows people to "break free of Microsoft;" but they do it by mimicking the software as closely as possible, because they forget that people are capable of learning something new. Once in a while, they come up with a new and different idea, but it usually sucks, because it's written by geeks for geeks.

    --

    "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
  91. Re:Flip my bit switch by Anonymous Coward · · Score: 0

    Binary assembly code is an oxymoron.

  92. Re:We already have an easily-enforced bill of righ by Anonymous Coward · · Score: 0

    Take that one step further, and we find that Debian has a Manifesto, a Constitution, a set of Debian Free Software Guidelines, and Debian Policy (which specifically limits what a package can, in specifies what it must, do). Combined with the packaging tools and conscientious developers and leadership, we get a distribution (and operating system) which says it puts the users first, and does.

    There's reasons those of us who've used it for years, and really understand the technical and social process, truly love it.

  93. Re: "Easy and Hard" for Programmer Vs. Mgr by TaoPhoenix · · Score: 1

    "It's easy to tell a computer what to do. The hard part of programming is figuring out what the hell the computer should be doing."

    My supervisor thinks it's easy to know what a computer should be doing. Then when it emerges that scores of little details have to be correctly linked, it drives him crazy.

    Scott Adams is a Minor Deity.

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  94. The definition of "suck" changes... by scottsk · · Score: 1

    In the main, software is so fluid that the definition of "suck" changes constantly, and is always a moving target. Software will always "suck" because no matter how good it is, someone can always imagine something better -- and we know it can be written with just a little more work. I've been doing research into computing in 1987, on DOS machines, and today's computers don't suck -- ie they're easier to use and more powerful -- but today's programs "suck" because we can always picture the next generation DWIM interface that will replace them. If you gave a Linux box with Open Office etc to a DOS user in 1987, and somehow got them on the Internet, they wouldn't think the banal trivialities (who cares where a Starbucks is?) "sucked" at all. My TRS-80 Color Computer 2 probably "sucked" too but I never noticed it when I was learning how it worked!

  95. Re:Bleat, bleat, bleat.... by dctoastman · · Score: 1

    If I write a book about how cars suck and that the people manufacturing cars in the factories should just make better cars because that is what people want. And then start waxing rhapsodic about how the public needs to come up with a standard for cars and put those damn manufacturers in their place.

    I hope to that I get called on it.

    Because the fault of shoddy software is not all from programmers, much like shoddy cars aren't the fault of the people actually building them. He sees a supposed problem (and ignores the wealth of great software out there, a lot which he probably didn't ever realize he was using) and then makes the mental leap that software has to be created by programmers at some level. They are the fundamental part of the chain. So it must be their fault. He ignores all of the other factors that contribute to software development and starts beating his chest at programmers like some goddamned ape.

    Software does not drop out of the sky in its final form. They are products developed at companies wishing to make a net profit from them in a fiercely competitive software market.

    And secondly, hyping up pre-conceived stereotypes and stroking a reader's ego does no one any favors. Not the audience or those the author is mocking.

    Anyway, his review wasn't for people who agreed with the book, so you really shouldn't be commenting on it according to your logic. After all, you aren't the target audience, you couldn't possibly appreciate his arguements.

  96. Abbreviated Review by dunsurfin · · Score: 1

    Why Software Sucks Book Sucks

  97. I thought by Anonymous Coward · · Score: 0

    Everyone supported frames these days?

  98. hammer on head by weierstrass · · Score: 1

    >Nobody cares *why* software sucks, except software developers*.

    Perhaps this is exactly the problem

    --
    my password really is 'stinkypants'
  99. Software is hateful. by Earle+Martin · · Score: 1

    If you don't believe me, ask the professionals. hates-software.com: the home of vitriol.

  100. I'll rather save $13.59 by JerryP · · Score: 1

    by not buying the book at all, thank you very much :-)

  101. Re:Bleat, bleat, bleat.... by rajpatel32 · · Score: 0

    If that is what you want, check out Robert Slade's book reviews: http://victoria.tc.ca/int-grps/books/techrev/mnbk. htm

    He hates all books! Well, almost all of them.

  102. I can tell you why software sucks by hey! · · Score: 1

    (1) Software is built by groups of people struggling with the unexpected.
    (2) Software embodies values
    (3) To be good, you have to be good at many things. To be bad you need just one.

    The first point is that software is created by, in effect, committees. Committees are necessary to scale up performance in some dimensions, but they are notoriously inflexible and slow to adapt. How often do you look at a group of people trying to work together and think, "these people work really well together"?

    The second point is that to get everybody working together, you have to instill some sense of what is important on the group. Is it being up to date with the latest technology? Is it design elegance? Is it selling like hotcakes? It it keeping support costs low? Visual attractiveness? While total failure out of the gate is not unheard of [note ironic use of understatement], I'd venture to say that most products that manage to get launched are wonderful -- until they get in the hands of users. The reason is a difference between what is valued by the developer and what is valued by the user.

    The third point is that the team itself has competing interests. Sales wants a product with whiz-bang "curb appeal" and which sells itself; the programmers want a product chock full of interesting technologies they can put on their resume; management wants a product which will ship on time; support just wants something that won't make their life a living hell. How often is a project undermined because one concern was allowed to completely override the rest, or because people fought a turf war over priorities and everybody won?

    Living with sucky software is like living with Original Sin: it's part of the human condition. The problem is us. We can't fix our software until we fix the organizations that build it; we can't fix the organizations until we fix the teams within the organizations. It would be very helpful if we could fix ourselves as individuals, but that is hardest of all; mostly we have to find ways of adapting teams to our shortcomings. Organizations need to choose the right individuals for new hires, and to educate those it has already hired.

    The "UI Snob" viewpoint is just one viewpoint among many that claims the ultimate importance. Yes, its very important to get right, as is maintenance and support, project management, and profitability. The problem I think with the UI snob viewpoint is that it leads to fixation on venial UI sins while missing mortal ones. Yes, every application has a few UI blunders; an awkward dialog here, a mystifying icon there. In total, enough of these can make an application unusable. But this is not the source of application suckiness.

    The biggest UI blunders aren't ones you can take a screenshot of, they are ones of fundamental logic where the application simply doesn't make what the user wants to do easy. The application may be impeccable on a micro scale. The real problem is that the organization doesn't value the same operations as the user. Technically this is a UI issue, but it doesn't fall exclusively within the realm of UI design. It is a cross functional organizational failure in which management, marketing and design all have a part. When a product is required to do more things, be shipped in less time, yet not create support issues, something has to be put on the back burner, and often thats the shmoe who has to use the thing.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  103. Re:Bleat, bleat, bleat.... by jc42 · · Score: 1

    To provide a book that passes muster with SW developers would be a blunder.

    Depends. You're right, if the only goal is to maximise the sales of the book. If you want to improve the quality of software, you're wrong, though. This book just got a "don't bother" review in a tech forum. So we computer geeks won't read it, and we won't know what (if any) useful suggestions he might have for us.

    Of course, you could take this as an example of the problem that he's describing, in the publishing industry. Like most commercial software, the book was "managed" by people whose main (and perhaps only) motive is to maximise sales. Such managers have little interest in what happens after the sale, except insofar as it might affect subsequent sales. In particular, neither software nor publishing managers are concerned with writing software or books that appeal to their fields' "geeks". They want the product out the door by a fixed date, and they want whatever gimmicks will increase sales to the masses.

    The result isn't all that difficult to understand. Especially if you've been involved in software and/or publishing, and seen firsthand the pressures that management puts on the authors.

    Of course, here and there you do find good managers, and sometimes they can help a quality product sneak through the process.

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  104. Re:Bleat, bleat, bleat.... by Un+pobre+guey · · Score: 1
    I agree, especially with your second paragraph. Stupid? Promotes even more crap? Cynical, greedy, and exploitative? Yes. Unfortunately, that's the driving force, and it is naive to think in more noble terms, as most of the other posters appear to have done.

    Business is business, and for its practitioners everything else is secondary.

  105. Re:Bleat, bleat, bleat.... by Un+pobre+guey · · Score: 1

    You have to admit, it's a topic he knows a thing or two about.

  106. Re:Bleat, bleat, bleat.... by mustafap · · Score: 0, Offtopic

    Thats great, thanks!

    --
    Open Source Drum Kit, LPLC deve board - mjhdesigns.com
  107. I don't believe Wikipedia either... by wild_berry · · Score: 1

    And if you conduct a search, you'll notice that Yahoo has adopted the colour scheme for its search results page of Google's search results page. I wondered if this was because they used Google's search technology, but the Wikipedia assures me that Yahoo uses its own crawler and database and has been doing so since their involvement in JFK's assasination.

  108. Re:Bleat, bleat, bleat.... by epee1221 · · Score: 1
    He did not focus on the target audience, he mentioned it briefly as a secondary issue.
    It kind of is a secondary issue: when the author's reasoning has so many gaps and leads to false conclusions, pretty much all audiences will find it useless.
    --
    "The use-mention distinction" is not "enforced here."
  109. nice review by testadicazzo · · Score: 1
    And by the way, if you think the previous sentence lacked supporting evidence, get used to it, because that's the level of research that is found (or not found) throughout Why Software Sucks.
    That's a great line.