Archive

Forgive and Remember

You’re recovering from a major operation—which nursing unit do you choose? One that reports an error once every 500 patient days, or one that reports an error once every 50 days?

What if I were to tell you that in the first unit, which on the face of things makes 10 times fewer mistakes, nurses don’t report errors because they’re concerned that “heads will roll.” Would that change how you feel? How many errors are being swept under the carpet? Do you think that they’re likely to be learning from their mistakes or repeating them over and over again? (This example comes from Hard Facts, Dangerous Half-Truths & Total Nonsense by Jeffrey Pfeffer and Robert I. Sutton, Harvard Business School Press, ISBN: 1-59139-862-2.)

In software, we have our own name for mistakes—we call them bugs. And every bug is an opportunity to learn.

To read the rest of this article, take a look at Issue 6 of PragPub magazine

Dropbox: What MobileMe should have been

MobileMe has always been something of a disappointment to me. It’s so close to great, and yet falls short:

  • Push e-mail to my iPhone is great, but not without spam filtering or rule support.
  • iDisk should be a great way to keep the files that I’m working on in sync between my various Macs, but it’s just too clunky.

I’m working around the first issue by switching to Gmail, but haven’t found a satisfactory solution to the second. Until now.

This morning, I discovered Dropbox. It’s extremely easy to install, works seamlessly, gives me transparent duplication between my various computers (including Windows and Linux), provides me with access to my files when I’m offline and integrates with my iPhone. It’s very rare for me to get excited about a piece of software, but I’m genuinely impressed.

Oh – one final bit of trivia. If, like me, you’ve been relying on Mongrel to deploy your Ruby on Rails applications, you might be interested to know that Zed is a member of the Dropbox team.

Debug It! Sample Code

Debug It!

Sample source for section 10.3 “Resource Leaks and Exception Handling” is online here.

It’s setup to run in Visual C++ 2008, but should be relatively easy to port to other environments.

Any questions, you know where I am!

Ted Neward reviews Debug It!

Debug It!

Ted Neward has just published a review of Debug It! on his blog.

His summary is:

Overall, this book is going to be a huge win, and I think it’s a worthy successor to the Release It! reputation. Development managers and team leads should get a copy for the junior developers on their team as a Christmas gift, but only after the senior developers have read through it as well. (Senior devs, don’t despair—at 190 pages, you can rip through this in a single night, and I can almost guarantee that you’ll learn a few ideas you can put into practice the next morning to boot.)

Debug It! reviewed on devlicio.us

Debug It!

Krzysztof Koźmic has just published a review of Debug It! on devlicio.us:

http://devlicio.us/blogs/krzysztof_kozmic/archive/2009/08/30/book-review-debug-it-find-repair-and-prevent-bugs-in-your-code.aspx

Within the review, he says:

I know that this book influenced the way I work now, and there aren’t many books I could say something like this about.

Which is the best compliment I can imagine as an author. Very many thanks, Krzysztof.

First reviews of Debug It!

Debug It!

The first couple of reviews of Debug It! have recently been published:

Book Review: Debug It!

Debug it! A Book on Software Debugging

Help, this is driving me mad!

The Pragmatic Programmers have just started publishing an online magazine: PragPub. Among other things, it contains a quiz which in this issue tests your knowledge of programming languages.

I consider myself a bit of a languages geek, so I thought that I’d have no trouble with it. But it’s driving me mad!

The quiz consists of little snippets of code in different languages. The first letters of each language then spell out the name of another language.

I can get 5 of the 6, but one of them has me completely stumped. Even though I’m 99% sure what letter it’s name must start with.

Warning: Spoilers follow!

Continue reading ‘Help, this is driving me mad!’

Debug It! in beta

Debug It!

As you may know, I’ve been working on a book. It’s been a long process, but the finishing line is finally in sight – as of today, it’s available as a “Beta Book” from The Pragmatic Bookshelf:

http://pragprog.com/titles/pbdp/debug-it

This means that it’s available for purchase and download as a PDF and ebook, and the paper version can be pre-ordered. :-)

Update

See Debug It! Review Roundup.

Blink versus The Decisive Moment

If, like me, you found Malcolm Gladwell’s Blink unsatisfying, I suggest that you take a look at The Decisive Moment by Jonah Lehrer.

Like Gladwell’s book, Lehrer gives several examples of instances where trusting our subconscious provides better results than thinking things through methodically and logically. And examples of the opposite, where our subconscious can be fooled and we need to be on our guard. So far, they have a great deal in common.

Where the books differ is that Lehrer delivers on the promise to tell you when to use one mode and when to use the other.

The iPhone 3G and Big Bangs

This article originally appeared upon on texperts.com

So the new 3G iPhone is here (for those of us lucky enough to win the O2 website lottery or patient enough to queue up on Friday morning, at least).

Although I’ve not yet had a chance to play with the 3G version, I’ve been very impressed with the version 2.0 software (apart from an annoying pause it seems to have introduced whenever I view my contacts).

But I am amazed! at the shambles that the launch has become.

One of the key insights of modern agile development methodologies (like Scrum, Extreme Programming and Crystal Clear) is that “big bang” releases are never a good idea. Instead, they use iterative, incremental releases. What Apple tried with the iPhone launch was the biggest of big bangs imaginable!

In one day, they tried to:

  • Release a new version of a handset globally
  • Release a new version of the desktop (Mac or PC) software which interfaces with that handset
  • Release a new version of the software running on existing handsets
  • Release a new version of the back-end server technology (MobileMe) supporting all the above

The upshot of all of this? Nobody could upgrade their handsets when O2′s systems collapsed under the load. Then people’s iPhones became bricks when upgrading to version 2.0. Then MobileMe was down for maintenance for much longer than intended and is still only limping along.

Anyone who has ever been involved in large software/IT projects could have worked out that this was guaranteed to happen. Big bangs don’t work. Why was Apple unable to forsee this?

The iPhone is a lovely device. But Apple have badly tarnished their reputation in my eyes.