January 4th, 2008
by Tim Cull
Ok, just to prove that not every book I read is technical, here’s one about Sentences: The Life of MF Grimm by MF Grimm.
This book is a graphic novel (ie. a very long comic book) that’s an autobiography of a rapper named MF Grimm who grew up in the inner city, appeared on Sesame Street as a kid, and eventually ended up partially paralyzed and in jail from gun and drug dealing.
Unlike most of what you read about rap stars and growing up in the inner city, this story neither glorifies nor condemns anything about the life. It’s simply a matter-of-fact, first person description that leaves a pampered, yuppie whitey like me a little more aware of a culture that doesn’t resemble mine. As you might expect from a book of its format, it’s an easy read and well worth the small investment.
Posted in Book Review | No Comments »
January 4th, 2008
by Tim Cull
Anyone who has been paying attention to the news lately probably already knows the facts laid out in Al Gore’s An Inconvenient Truth. The book was published in 2006 and thanks to Gore’s tireless promotion its message has entered our consciousness.
What I did get new from reading the book was a real sense of urgency and shared purpose. Gore describes global warming in all seriousness as a planetary emergency–something that will be our generation’s greatest challenge on the level of (or exceeding) previous generations’ fights against global fascism, poverty, and communism. Facing its challenge will transcend anything else we’ve faced as a planet.
Gore mentions several times throughout the book that he has spent the last 20 years or so gathering its material and it shows. Just like a poem, every graphic, every example, and every page has an impact. This careful choice is important because the book is not at all dense and is a very easy and short read.
Posted in Book Review | No Comments »
November 1st, 2007
by Tim Cull
Jason Cohen has obviously spent a lot of time thinking about code review and his book, Best Kept Secrets of Peer Code Review, shows it. Partly marketing brochure, partly master’s thesis, and partly just a normal software book, the text does a better job than some other software books citing references and backing up opinions with facts and figures.
My interest in it ebbed and flowed; the beginning spends a lot of time talking about why Cohen thinks code review is a good thing but wasn’t terribly interesting. The middle of the book, though, was the meat I was looking for. It goes over different styles of code review and in particular compares and contrasts a more formal, meeting-intensive and laborious style with more lightweight, distributed and online style. Turns out, lightweight can be almost as good as heavyweight at finding defects; and when you factor in the cost of finding those defects then lightweight wins hands down.
The last part of the book is skim material that mostly talks about the code review software that Cohen’s company sells.
Some good tidbits I took away:
1) After about 60 minutes of looking at a pile of code, your performance finding defects in it trails off. This effect is the same no matter if the code is 20 lines or 20,000.
2) The optimum review rate is 250 – 400 lines of code per hour
3) #1 and #2 imply that the average code review should be around 400 lines of code.
4) Most defects are found when a single person sits down alone to look at code in concentration. Contrary to popular belief, the fewest are found by a group of people looking at code together and talking to each other while they’re doing it.
5) Even if all you ever do is make yourself review your own code after you’ve written it, you will find a decent number of defects.
One of the developers on my team recommended this book after we created a “stewardship” role on the team. Basically, the application had become too big for me to review all changes myself, so instead I gave the more senior guys on the team a particular area to be stewards for and they review code changed there. This kind of arrangement, incidentally, seems to have worked out well if you want to try it.
Posted in Book Review, Technology | No Comments »
October 25th, 2007
by Tim Cull
The head business analyst on my team read Why Software Sucks by David Platt and liked it so much he went out and bought five copies for the team. So I went into the book with high hopes.
They didn’t stay high for long, though. Platt did a good job keeping the discussion just technical enough to make sense, but not so technical that a non-programmer couldn’t follow along. But I thought that’s about all he did well. The rest of the book is inflammatory and curmudgeonly; he flings around labels like “idoit (sic)” and “marketingbozo” with abandon. He chooses arbitrary examples, and then evaluates them with all the depth of a reflecting pool.
Take an example he comes back to again and again. He likes the fact that when you go to google.com, it automagically knows what country you’re in based on your IP address and sets your locale accordingly and he blasts UPS.com for not doing the same thing and instead making the user pick a locale in its first step. He then goes on to call the programmers at UPS.com idiots and lazy. Well, I like google.com and dislike ups.com for the same reason, but they were created that way probably for far more complicated reasons than he’s admitting to. In particular, what he’s missing is the economic reality of software development, and in particular:
1) Not every company has world-class developers. By definition, the average company must have…average developers. Average developers often don’t know about things like IP address databases based on locales and have no idea how to get to them.
2) If a feature takes 1 day to implement “good enough” and only 1.25 days to implement “great” he would say it’s a crime not to spend the extra 2 hours to get to great. But he’s missing that if you spend that extra 25% on every task then…ding, ding, ding, your project is going to overrun by 25% (if your original estimates were even accurate in the first place. More likely you’ll be 125% late). On an 8-week project that’s an overrun of 2 weeks which is usually not acceptable.
3) Often times, developers want to spend that extra 2 hours to make a feature great, but they are told not to for various business reasons like not wanting to be 25% late.
So, I was disappointed in the book. I was hoping for a good, colloquial discussion of the challenges of developing good software. I was hoping for a book that would give me some good analogies and examples to use on my Mom. But I didn’t.
Posted in Book Review, Technology | No Comments »
June 17th, 2007
by Tim Cull
Software Estimation: Demystifying the Black Art is one of those books that came to me just in the nick of time. No sooner had I finished reading it than I had to do a bunch of estimation for a project I’m on. I managed to apply maybe 15% of what I learned in the book and found a nearly 100% improvement in the result.
Steve McConnell is also the author of Code Complete and Rapid Development, so it’s not like he has much to prove. That’s probably part of what allowed him to feel free to take decades of software research (which he thoroughly sited and gave very useful bibliographies to at the end of each chapter) and distill it to easy to understand snippets without any apparent loss of nuance.
Here are some of the gems I took away from the book:
- You really should get in the habit of differentiating among: estimates (how long it’s likely to take), targets (dates the business would really like to hit), and commitments (dates you commit to delivering, which sometimes don’t exactly jive with your estimates).
- Schedule in Months = 3.0 times the cube root of the Effort in Person Months—-this is apparently one of the “most replicated results in software engineering” research.
- Underestimation when you start a project has actually been proven to lead to increased effort for a whole variety of reasons, some of them obvious and some not.
- 40% of software errors are caused by stress, especially schedule stress.
- Projects experiencing schedule stress produce four times as many defects as those that aren’t
- estimates vs actuals can vary by surprising amounts depending on where they are in the Cone of Uncertainty
- There are many known multipliers to software estimation, and at the very top of the list are: the ability of your business analysts (2x), multi-site development (1.56x), required reliability of the software (1.54), and the list goes on.
- and my favorite one of all, one I managed to put to good use on my project: expected case estimate = (best case x (3 x most likely case) x (2 x worst case)) / 6
Posted in Book Review, Technology | No Comments »
May 11th, 2007
by Tim Cull
I’ve worked in the financial sector for most of my career, but I’ve never really worked on a fixed income system till the project I’m on now. Neither had most of the other developers on our team, so our business analyst bought a bunch of books for us to learn, one of which was The Bond Book.
For someone who knows very little about fixed income, The Bond Book is a fantastic introduction. It’s neither too basic nor too technical. It tells you about all the mechanics of treasuries, corporate bonds, and mortgages. It introduces all the basic terminology and explains the basic problems a fixed income investor is trying to solve. My biggest takeaway was that the biggest risk in bonds isn’t the risk of default by the issuer, but rather dramatic changes in interest rates.
My one complaint was that it’s written for the individual investor and I want to understand the market from the point of a big institutional investor like my employer. But now that I’ve read The Bond Book, I can more easily move on to more technical books.
Posted in Book Review | Comments Off
March 10th, 2006
by Tim Cull
I call this a review-let because it will be very, very short and full of sweeping generalizations. I’m still leaning on my 8-day-old daughter as an excuse.
I read all 260 pages of The Tipping Point in a day and a half (before my daughter was born), which will seem spectacular only if you know that in the last 6 months, I’ve only read about 250 pages of anything in total.
The book was written right in the middle of the dot-com era and it was interesting to see how either it was heavily effected by the buzz then, or it is what created the buzz then. Either way, now 5 years down the line we can see some of its ideas played out in various guerrilla marketing tactics like spray painting the IBM-ified Linux penguin on side walks, or super-targeted mailings and promotional campaigns, or political campaigns like Howard Dean’s.
Anyhow, I obviously found the book interesting enough to read it in one day, so I recommend it.
Posted in Book Review | Comments Off