Dave Johnson on open web technologies, social software and software development
I'm sorry to say that I participated in the iPhone launch debacle yesterday. I wrote up the frustrating and somewhat embarrassing timeline for a buddy of mine. You might find it interesting, so here it is:
Friday, July 11, 2008
6:45AM I arrive at AT&T store at Triangle Town Center mall (Raleigh, NC)
7:50AM 33 people ahead of me, ~150 people behind me in line
7:55AM AT&T rep tells us that they have 15 iPhones, but they'll take orders
8:00AM I leave for Apple store at Crabtee Valley Mall
8:20AM I arrive at said store, line looks to be greater than 200 people
9:00AM The line moves and is making slow progress
10:00AM line stops moving for over an hour because "activation servers are down"
10:05AM I've got my laptop, so I sit down and start coding (w/free Apple WIFI)
11:30AM The line starts moving again. scoot, code, scoot, code...
12:50PM I stop coding because laptop battery power is dead
1:00PM I attend a half-hour meeting via telecon
1:40PM I finally get into store, Apple rep helps me
1:50PM Apple rep helps me, gets "IRU account not supported error message"
I call AT&T, they tell me that I have a special "flag" on my line and they are not allowed to remove it via phone, and I MUST to upgrade my iPhone at the AT&T store -- i.e. wait 5-7 days for delivery from AT&T.
So, I call AT&T again and get another rep who tells me that they CAN remove the flag over the phone, mumble, mumble and then my cell phone connection drops.
2:20PM Apple puts me in a special AT&T problem line
2:40PM Apple rep calls AT&T, gets them to remove flag
2:50PM Apple rep will hold my iPhone until AT&T calls me to confirm flag removal
2:55PM Cheers erupt as the customer who was 1st in line at 8AM finally gets activated
3:00PM I leave empty handed but with a promise that AT&T will call within 24 hours
I'm not going to try to analyze this; I'll leave that up to you, dear reader.
Update: Saturday, July 12, 2008
10:00AM Call AT&T to ask about status, they blame Apple for problem saying only Apple stores had problems yesterday.
10:25AM AT&T tells me they are now issuing a "billing ticket" to ensure that all flags were dropped from my account. They say I'll have to wait up to 4 hours before it has taken effect.
2:25PM Apple store won't test the activation process over the phone so I make the half-hour drive to store only to get the same "IRU account" error.
2:45PM Call AT&T from parking lot, they tell me sorry things are taking longer than expected, we'll call you ASAP. I drive home empty handed again.
5:00PM Call AT&T to complain to a manager about the broken 24 and 4 hour promises. He tells me problem is on Apple side and if I ordered a phone at the AT&T store everything would be fine (in 5-7 days). He says there is no telling when they'll finally clear the flag on my account, so just keep on waiting.
Update: Sunday, July 13, 2008
11:30AM Still no word from AT&T so I called them and they said the flag problem had been resolved. I asked how I could be compensated for all the wasted time they caused me, misdirection and multiple broken commitments they said "we're not offering any compensation for iPhone problems." The AT&T rep also blamed Apple for all problems and said I should have bought from the AT&T store
12:20PM Arrived at Apple store, got my phones
I took a trip up to Baltimore and back today to meet with a very important customer. It seems like a waste to fly to attend only a 2 hour meeting, but the trip was interesting and well worth the cost. As an added bonus, I remembered a trip of similar duration and a story I like to call the longest trip to the bathroom ever. I will now inflict that > 10 year old story upon you.One day I boarded a direct flight from Raleigh to New York's Laguardia airport. I arrived at Laguardia, walked outside and met a man holding high a sign that read "David Johnson." I stepped into the man's black limo for a 45 minute drive up to White Plains, NY. In White Plains, the man droppped me off at a non-descript three story office building and I went inside to sit down in a waiting room. After 10 minutes, a nurse called my name, handed me a small cup, and directed me to a bathroom. I closed the door, urinated in the cup, opened the door, and carefully handed the cup back to her. I walked outside, I met the man in the limo, we drove back to Laguardia, and I boarded a direct flight back to Raleigh.
Sam Ruby: Welcome to Raleigh, North Carolina, where the official snow removal strategy is "pray for sunshine".As I write this, the sun is coming out and I hear from the other room "oh no, the sun is coming out!"
Get a turkey. Get it out of the wrapper. Then get some spicy sauce. Then you get some peas and put them around the turkey on a plate. Take the turkey and put it on a pan and put it in the oven (a big fat one) at 4000 degrees. Cook the turkey for 5-7 minutes then take it out of the oven. Put it back on the plate that has the peas on it. Eat.
John Udell, InfoWorld: Programmer and author Dave Johnson shared an anecdote on his Weblog last year about what happened when his 5-year-old son walked up behind him while he was coding. "He saw the JUnit green bar on the screen," Johnson reports, "and said 'Dad, you did good.'" There's more to this touching father-and-son moment than meets the eye.
Scott Meyers: I hate anything that asks me to design on the spot. That's asking to demonstrate a skill rarely required on the job in a high-stress environment, where it is difficult for a candidate to accurately prove their abilities. I think it's fundamentally an unfair thing to request of a candidate.This one is a close second:
Bruce Eckel: I ask candidates to create an object model of a chicken.
I mean, how can you argue with Scott Meyers and how can you object to a chicken?Speaking of arguing with Scott Meyers... I worked at one of those phone company research labs back in the 90's and we had enough money to bring in Scott Meyers to teach us all about C++. Scott was explaining how you can overload operators and you can even overload the equals sign, when one student raised his hand. The student explained that there were some situations in telecommunications systems where A was equal to B, but B was not equal to A. Scott immediately objected, of course, but the student went off into some jargon-filled explanation of his particular problem domain. Scott let the student finish and then said, "if you were to overload the equals operator so that A was equal to B, but B was not equal to A, then I would want to kill you." That was the end of the argument.
I'm going to go out on a limb here and post for all to see my recently developed theory of commercial software quality and value vs. software price. Three disclaimers are necessary. First: I am a heads-down, propeller-head, bits-and-bytes, grunt-coder, who reads Slashdot for news - so what do I know. Second: my theory is based mostly on hearsay and second hand knowledge. And third: I believe that pretty much all software sucks. So, saying that PhotoShop or Dreamweaver "rocks" is somewhat disingenuous on my part. Anyhow, please bear with me and take a look at my whiteboard:
The basic idea here is that software quality and value goes up as the price of one installation of the software goes up until you get to around the $3K to $5K price range. After that, quality and value start to drop off and around $20K to $50K they fall right off the cliff.
From my graph you can see that I consider consumer software like Quicken, Office, and PhotoShop to be pretty good stuff, with good value and few major flaws. You can continue to get better quality and value as you get into the AutoCAD and Microsoft Visual Studio Enterprise price levels, but after that quality and value start to drop off. Once you get up around the $100K to $1M level you are in the painful world of systems integrators, e-Commerce consultants, and enterprise software. At this level, usability features that you take for granted in consumer products are often missing, installation instructions can run into the hundreds of pages, and teams of consultants are needed to do almost any customizations.
As a J2EE developer who works in the field of enterprise software, I want to do better - I want to learn how to make software suck less. But, enough about me. Let's talk about you. What do you think? Is there any truth to my theory? Am I totally wrong about this? Is there any insight here, or am I just being petty? Does the ROI of the big expensive enterprise software make it the most valuable of all, quality be damned?