Slashdot Mirror


Why Does Software Cost So Much?

David Kennedy writes with a review of Tom DeMarco's older Dorset House title, Why does software cost so much? (sub-title: And Other Puzzles of the Information Age.) Sounds like something to put in the same section of your library as Frederick Brooks Jr.'s The Mythical Man Month . Why Does Software Cost So Much? And other Puzzles of The Information Age author Tom DeMarco pages 230 publisher Dorset House rating 7 reviewer David Kennedy ISBN 093263334X summary An older collection of essays, some good, some bad, from one of the most respected names in the software management field.

Summary: An older collection of essays, some good, some bad, from one of the most respected names in the software management field. An interesting read, not least because of the amusement to be gained from how things have, and haven't, changed. Worth reading if you have the time, but not as essential as some of his other titles.

Check your sources. Tom DeMarco is an established industry figure who occupies that rarest of market niches - he's a management consultant/guru who has the respect of technical people. He's the co-author (with Tom Lister) of the classic "Peopleware" (which I suggest you rush out and read), and it's on the strength of that title that I read his work. I normally lack even the slightest interest in management titles, on the basis that Sturgeon's Law seems to be especially strict in that genre. For example, both my copies of "The 7 Habits of Highly Effective People" and "The Monk Who Sold His Ferrari" ended up in the bin. (If it helps, I have a library of about 5K books [mainly novels], and have only ever thrown out 4.)

What's this book about? This is a 1995 title, and as such is interesting for historical value. The blurb states:
"Drawing together several essays published previously, plus ten all-new papers never seen beyond his circle of colleagues, Tom DeMarco tackles a multitude of tough subjects and wrestles fresh insight out of them. Here's a compact, compelling edition of this acclaimed consultant's views of managing the software process."

What you get is 230 pages of essays or opinion pieces. There are 24 pieces, ranging from a couple of pages to a couple of dozen pages. A smattering of titles:

  • Why does software cost so much?
  • Management-aided software engineering
  • Lean and mean
  • If we did only one thing to improve...
  • Software development: State of the art vs State of the practice
  • Software productivity: The Covert Agenda

As the titles suggest, the focus is on software projects specifically, although much of the discussion re managing the effort could apply to many technical disciplines. All pieces which refer to surveys don't use numbers pulled from a hat, they use numbers pulled from the bibliography at the back.

Target audience It's a mix. Most of the pieces seem aimed at management, from team leader to project manager, but the discussion will be of interest to most programmers, especially those suffering from the Bad Management Blues, or who are thinking of taking a step sideways into a team lead role.

What's good? Quite a lot. This isn't a long book, and it's not going to revolutionize your life, but it makes for a decent couple of hours reading. The author can certainly write, with a chatty style obviously honed by a career based on presentations. All the pieces are easily digested, and usually contain a nugget of something interesting.

There are a few nice points in here re how and why you should manage your software project, but for me, the interesting thing about this older title is that it's a very different world he's talking about! For example, one piece, from 1989, talks about the difference between programmers working on identical tasks. They show nice charts and I was amazed to see PASCAL and BASIC in there. I expected to see COBOL of course, but the small size of the C wedge was shocking. Of course, there was no wedge for C++, let alone Java or Perl.

As with any older title, there are technological fossils like this to be marveled over in several essays, but it's quite interesting how the author pronouncements are generally, well, reasonable and right. He's not Nostradamus, and doesn't predict specifics, but there is a nice discussion on language uptake (he rails against FORTRAN and COBOL in a world of Modula-2, Oberon and SmallTalk! I suspect more people now now use the either of the former languages than all the latter languages put together). In this essay, he talks about how some of the third generation languages are wonderful, but suffer from inadequate or confusing libraries. He suggests that only wide and deep libraries really make people change languages in the real world. I know (from reading his new title, "Slack", review coming) that he's much further from the code now, but I wonder what he makes of Perl or Java? (Certainly the thing that lured me from C++ to Java was the libraries. Well, I missed the STL which makes the Collections API look like a child's homework.)

Other essays talk about the Microsoft anti-trust trial, or the fate of IBM. In both cases he seems to be more-or-less on the money, simply by being slightly cynical and not making any mad assumptions. Of course, by the same token, nothing he predicts is particularly startling, but still, of interest when reading.

There are a quite a few pages devoted to things which don't relate to technology specifically, and hence, don't appear dated now. These generally concern scheduling, or people management, and generally are as good as people expect this author to be. When he's good, he's very good. I want to work with a manager like him someday, just to see what it's like! However, even in these people-skills sections, I can't help but wonder what he'd revise in the light of the whole dot-con debacle.

What's bad? Well, this is a fix-up title, and some of the essays are, to be frank, crap. I doubt any but his most ardently completist fans want to read an essay on his experiences trying to work with desktop video for example. A couple of the essays just struck me as, well, rather pointless. Sometimes funny, but pointless. These tended to be the "Not previously published" ones, and I think there's a reason for that.

Alternate titles Oh, sure. There's a shelf full of titles like this in your nearest bookshop. I don't generally like any of them though, so I'll just recommend his earlier Peopleware and his latest, Slack.

You can purchase Why Does Software Cost So Much? from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

6 of 264 comments (clear)

  1. Cost of software by TyZone · · Score: 5, Insightful
    I've heard it said that there are three adjectives to choose from in software development:

    Good, cheap, fast. Pick *two*.

    There's always terrific pressure from Marketing to make the product RIGHT NOW, if not sooner!

    Someone always insists that it has to actually *work*, too.

    Okay, that's fast and good. It isn't going to be cheap.

    --
    TyZone
  2. Because 'good is dumb'... by (H)elix1 · · Score: 5, Insightful

    Most shops out there look at the price tag of software and equate that to "worth". Here is a personal example. I wrote some bioinformatics software in the early 90's that I used in my research. When others were looking for the same thing, I added the creature comfort features that I did not need, plus documentation. I _could_ give it away (under the radar), but for shops who had to buy software, no one would touch it if it was free. I stuck a $200 price tag, no nibbles - feedback was they were expecting shareware grade product at that price. Had a custom box made, charged $5,000 - and sold several!

    Anyhow, point being it does not matter how much jboss rocks if those with the checkbook think webxxx is worth the .2-1M. Sometimes you have to charge a punitive amount to make them feel like they are getting something. They are not evil, just missing the point.

  3. I know why mine does by r_j_prahad · · Score: 5, Interesting

    I am a developer. In fact, I being the only developer on this project. I have two project managers that I report to, and the clients. Doing the daily status reports, the weekly status report, the monthly status report, the half-day meetings several times each week, the countless hours I spend backing out stupid ideas the client came up with that my two managers were too brain-dead to say no to,....

    Well, you are getting the idea. The actual coding going into this effort is going to be worth about $10000 but our accounting says the client is going to have to pay $125000 for us to not lose money. That is being one hell of an overhead, folks. All that money to train managers, wasted.

  4. Re:Chicken or the Egg? by Christopher+Thomas · · Score: 5, Insightful
    Many argue that the reason software costs are the way they are is to make up for the revinue lost do to Software Piracy. In order to make up for the money lost do to those who run as much "acquired" software as possible.

    Conversly, those that run "acquired" software, say that they do so because they cannot afford the cost of the software.

    Given that, which happened first, and caused the other?


    The correct answer is probably "neither". I strongly believe that the (relatively) high cost of software stems from two factors:

    • Firstly, software costs a lot to develop, with very uncertain return.

      Any product worth putting on the shelves will take anywhere from 1 to 20 man-years to develop (minimum). Multiply this by a developer's annual salary (and add salaries for marketing, finance, and administration), and you start to see where the costs come in. The number of people who buy your product is very subject to market whims. Try to increase it through aggressive marketing, and you just up the stakes (marketing costs money too).

      So, if you've paid to develop a product, you generally end up charging what the market will bear to be as sure as possible of recouping your expenses. If you're trying to amortize over several projects (i.e. use your successful projects to finance your unsuccessful experiments), it's even worse.

    • Secondly, a company that beats the odds and has a successful product has no incentive to reduce the price.

      If a product is pulling in money left and right, a company would be very stupid to cut the revenue stream by lowering the sale price. Make a lower-end offering, sure. Lower the price of the old version when the new version comes out, sure (if they're confident they won't compete with themselves). But companies are intrinsically selfish (they're _supposed_ to maximize revenue). A for-profit company won't just start giving away its product once development costs have been recouped.



    In conclusion, I think that high prices would exist with or without software piracy. Software piracy is just another marketing angle to spin to justify the price.
  5. What I'd like to know... by Junior+J.+Junior+III · · Score: 5, Interesting

    Why do companies develop TWO versions of a program (one lite/crappy, a la MS Works and one high end/professional version a la MS Office) and then sell the high end for several hundred dollars and the lite version for under $100?

    You'd think that the cost of developing two separate versions would outweigh the benefits of having the "professional" version available to everyone, at reduced price to reflect the economies of scale that come in to selling to a broader market.

    Spending EXTRA money to develop a crappy version of your software that you can sell to millions of people for cheap, just to protect the giant inflated prices of the high end stuff that you might only sell a few thousand licenses of, just doesn't make any sense.

    Why not just sell the full version to EVERYONE and reap the benefits of economies of scale? Customers get better product, cheaper, you get more customers and more revenue. Everyone wins.

    --
    You see? You see? Your stupid minds! Stupid! Stupid!
  6. Hey, read the title essay, folks ... by jc42 · · Score: 5, Informative

    A lot of the replies here make it obvious that people haven't bothered to read DeMarco's title essay in this book. If you had, you wouldn't be trying to explain it all for the readers.

    His basic thesis is that software is in fact very cheap, compared to the alternatives. The complaint that software is expensive is really just a negotiating tool to try to get the price even lower. His description of how this works is pretty funny.

    Part of the story is why software is always late. He explains that this is also a management tool to get the most work out of programmers, and programmers train their managers to set the schedule so that it can't be met.

    Since reading his essay years ago, I've noticed exactly the process he describes over and over.

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.