Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

Why Software Sucks 257

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.
This discussion has been archived. No new comments can be posted.

Why Software Sucks

Comments Filter:
  • by rlp ( 11898 ) on Wednesday October 04, 2006 @04:26PM (#16311149)
    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.
  • It's Easy... (Score:5, Interesting)

    by TheWoozle ( 984500 ) on Wednesday October 04, 2006 @04:33PM (#16311255)
    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.
  • by flibuste ( 523578 ) on Wednesday October 04, 2006 @04:40PM (#16311351)

    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

  • by edremy ( 36408 ) on Wednesday October 04, 2006 @05:07PM (#16311797) Journal
    "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.

  • by Animats ( 122034 ) on Wednesday October 04, 2006 @05:23PM (#16312083) Homepage

    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. [fordfuelinjection.com] You can even download the code [kvitek.com] 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.

  • Re:It's Easy... (Score:2, Interesting)

    by Magnusite ( 526038 ) on Wednesday October 04, 2006 @05:56PM (#16312639)
    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.
  • by indil ( 911425 ) on Wednesday October 04, 2006 @06:55PM (#16313519)
    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.

  • by xero314 ( 722674 ) on Wednesday October 04, 2006 @08:28PM (#16314791)
    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.

"Here's something to think about: How come you never see a headline like `Psychic Wins Lottery.'" -- Comedian Jay Leno

Working...