Here's a book you should avoid. Geekonomics: The Real Cost of Insecure Software and how it supposedly gives you the idea that software is like any other commodity out there.
I recently obtained a free copy of this book and thought "wow, I like free stuff, I might as well give it a read". Well, after a few nights of reading it, I came to the conclusion that this book was meant for those who don't develop software and for someone who only wants to understand how most of their life is ruled by how bad software works within their own lives.
My first reaction was "apparently, we don't test 'our' software enough". This wasn't the author's take, instead he was relating it directly to negative economic and business impacts (which are still true for bad software).
The analogy's used were nicely told; the one story that sticks out in my mind was about how cement/concrete was standardized. Basically, the moral of the cement standardization was that testing was rigorous and people held to that standard for testing it. However, where the author goes awry is when he says the same style of standardization should be applied to software development. I disagree with this statement because software if infinitely more complex than concrete or automobile manufacturing.
The moral of the story is that poor quality controls leads to a economic loss, which in turn hits the bottom line.
Also, don't be fooled by the title, its not that geeky. This is geeky.