Skip to content
January 17, 2007 / Bob Black

The iPhone, and Why Software Sucks

iphone.jpg I was a little late catching on to all the buzz about the iPhone. I just watched the MacWorld keynote, and wowzers – that thing is snazzy-jazzy with a dash of uber-coolness. I want one right now -gimme gimme gimme!

So yeah, we all know Apple is a creative company, with some obviously talented people, but I dare say they wouldn’t be half as creative if their fearless leader (ol’ Steav-o) weren’t spearheading the show. I posit that in most organizations the iPhone would’ve shipped once the designers blessed it with that ginormous 3.5 inch screen, confident that anything extra (like that jaw-droppingly bodacious finger-scrolling action and so forth) would just be “fluff” not worth the extra time and money. Not that anyone can blame them. Building software is hard. I believe it was Steve McConnell that once said that software design problems are often such that we don’t even know what the question is until we get close to the answer.

But Apple seems to have developed quite a knack for the wow factor. Everyone’s initial reaction to the iPhone has been much more than just, “that’s neat”, or even “I’d like one of those”. Seriously though, why aren’t there more fantasticly wonderful products on the market, particularly considering the enormous technological advances made in just the last few years? The things Apple has included in the iPhone are not that technically difficult, per se. Touch-screens have been around for a while, and all the nifty finger-motion stuff you can do with the iPhone is indeed nifty, but not beyond the talent of a skilled (and dedicated) hobbiest programmer.

I just found a video of one of Scott Berkun’s presentations entitled Why Software Sucks (shown at the end of this post), which details some reasons why it’s so insanely difficult to build software. A few possible causes mentioned were “Lack of synthesis of diverse skills”, “Tactical mistakes”, and so forth, but the obvious reason is simply not paying attention to what the customer really wants. Or not listening well. Or whatever you want to call it. I ran into this dilemma with a recent project wherein, after repeated interviews with the (internal) customer, I was convinced I knew exactly what they wanted. I repeated to them verbally what I had learned, documented their request and sent followup emails, and so on, but when the feature was delivered it wasn’t what they expected. It was a simple thing to correct, but the root of the problem was that I didn’t have a clear understanding of what the customer really needed even though we both thought I did.

That’s just one of the many pitfalls of software development that perhaps explains why we don’t see more innovative products like the iPhone. Maybe once we get a product close to satisfying the majority of users we collapse on the figurative green hillside of success and breathe an enormous sigh of relief, surrounded by daisies blowing in the wind. Or something. Satisfying most customers on the first try is insanely difficult. Making a product that’s jaw-droppingly good is Developer Nirvana. Which is why the iPhone is so impressive. Apple is good. Very good.

Here is Scott’s nifty presentation entitled Why Software Sucks, which provides a lot more (in case you wanted it) “glass is half empty” talk about why software, well… sucks.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: