Dan Appleman: Kibitzing and Commentary

My personal blog

Two Epic Failures – Sears Black-Friday and Motorola Cyber-Monday

In the past 48 hours I’ve witnessed two absolutely epic failures on the part of two different ecommerce sites. Both seemed like technology failures – except that they were not. They were failures in management.
The first was when a friend of mine ordered two new appliances from Sears.com, a refrigerator and a dishwasher. The initial order on the web site went fine, with next day delivery promised and scheduled. The first sign of trouble was when my friend got a call from the installers asking them to confirm that she is in Illinois for the dishwasher delivery. She is, in fact, in California, and it’s hard to imagine how this error occurred. As a result, she cancelled the dishwasher order.
She was at home when the delivery people for the refrigerator arrived. Unfortunately, as they drove up to the house they managed to hit a pole and take down some phone lines. Their reaction – to drive away, refusing to deliver the refrigerator and promising to reschedule for the next day. The next day, they didn’t arrive.
Upon calling Sears customer service, even the customer service agent was shocked by the notes on the account record, but still couldn’t promise timely delivery.
The end result – two cancelled orders. The business went to Home Depot. Worse, my friend, for whom Sears has always been the very first stop for appliance purchases, has sworn not only to never shop at Sears again, but is literally making friends promise to never shop at Sears again.
 
The second epic failure is great cyber-Monday Moto X fiasco. By all accounts, the Moto X phone is a great phone, just overpriced. So when Motorola announced a Cyber-Monday sale pricing it comparably to the Nexus 5, they got quite a bit of traffic. They must have lacked faith in their own phone because the site was clearly not able to handle the traffic – it effectively went down immediately at the time the promotion was expected to begin.
It stayed down for hours (and is still down as I write this), only briefly becoming available for developer edition phones that quickly sold out. During this time, Motorola’s only communication were two tweets and Facebook posts tell people what they already knew – that the site was down, with no additional information as to when it will be back up.
So what was appearing on the twitter feed? Numerous posts by frustrated potential customers, many who had spent hours waiting online to purchase a phone. Posts of those who decided give up and get a different phone. Several sponsored posts by LG for their LG2 phone. And to add insult to injury, posts by Motorola about tickets to a Wired party, that nobody seemed to care about, and many found offensive.
 
You may think these were both failures in technology, but they were not. They are failures in management.
Sears had numerous opportunities to make things right for my friend. They could have apologized and expedited delivery. They could have thrown in free delivery. They could have assigned someone to solve the problem and do whatever they could to ensure customer satisfaction. They did not, and lost a customer for life. Clearly their customer service people were not empowered or motivated to provide good customer service, and that comes from the top.
Motorola had a golden opportunity to build excitement for the Moto X. They could have solved the web site problem in minutes by simply promising to honor the pricing on all orders until midnight. That would have immediately reduced the load on their site, as the load would naturally distribute itself through the day. They could have communicated what they are doing and how they were planning to handle the situation. Instead, they focused on fixing their technology instead of helping and communicating with their customers.
Websites get overloaded. Technology has glitches – we all know that. The measure of a company is how they deal with these failures and deal with their customers. This is the true failure of both Sears and Motorola in these stories, and they are entirely failures in management and culture, not failures in technology.

Force.com is the next Visual Basic

I just came back from the Dreamforce conference with an epiphany – Force.com is the next Visual Basic. Some less experienced software developers might think that’s an insult, but those of us who have been around know that it’s not merely a compliment – it’s an observation that, if true, represents a potential tectonic shift to our industry.
To understand why, I need to take you back over 20 years.
When Visual Basic 1.0 came out (I participated in the original beta program), the reactions to the product fell into three categories:

  • Most professional C++ programmers dismissed it. VB was a “toy language” or a “glue language” for components – not for serious software development.
  • Increasing number of software engineers embraced the language because, to put it simply, when it came to desktop applications you could be an order of magnitude more productive in VB than in C++. It may not have had the stature and features of a “real” professional language, but it sure was profitable to work in it.
  • VB was easy enough for anyone to use, so everyone did. Doctors, lawyers, students – millions of VB developers sprang up out of nowhere and wrote a lot of code. Much of it was very bad code, but that’s what happens when a bunch of amateurs get in the game. Entire book, magazine and training industries grew up to help them get better, and many of them did and built entire careers around the platform.

By the time VB6 came around, it was the most popular software development language and platform in the world. Simply because it was easy, and it was productive.
Why was it productive? Because VB put an abstraction layer over the Windows API that was infinitely easier to use than coding to the native API or other available frameworks such as MFC or ATL. You couldn’t do everything in VB6, but you could do most of what you needed, and could call the API directly if you really needed to. Having a rich set of available components to purchase didn’t hurt either.
Microsoft did a lot of things right building the VB community. They had great developer and ISV relations. They supported several conferences. There were books, documentation, whitepapers and so on. They really set the standard on how to build a platform.
Then they created the .NET framework.
There was a lot of negative reaction from the original VB6 community towards VB .NET, some calling it “VB .NOT” or VB.Fred (coined by Bill Vaughn). Some programmers made the transition. Some switched to C#. But two things were clear. First, VB .NET was indeed a powerful, serious, professional language and platform for software developers. Personally, I love it, and still use it all the time. But it was equally clear that VB .NET is not easy. In fact, the entire .NET framework is robust, powerful, sophisticated and complex. It’s a great platform for software developers, but is it a platform that makes it easy for non-programmers to write line of business applications? Not even close.
Both VB .NET and C# are native languages to the .NET framework – the Windows API of today’s software. Missing was the magic of the original VB – that layer of abstraction that made it easy for anyone to write software.
I’ve been searching for that magic for a long time. I kept waiting for it to appear out of nowhere the way VB 1.0 did. I sure didn’t expect it to sneak up on me from behind.
(more…)

Specialization is for Insects

Recently, for a variety of reasons, I’ve been asked about my background. It’s a question that can take some time to answer. To answer why, allow me to share one of my favorite quotes by Robert A. Heinlein:

Specialization is for Insects
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.

I can only do about half of these myself, but I’ve always agreed with the sentiment. Back in college my advisors all explained why it is important in one’s career to specialize. But I’ve always chosen breadth over depth. My ideal has never been the specialist, but rather, the synergist – someone who can combine multiple skills and talents to come up with creative and unique solutions to problems.
Some would argue that when one tries to do many things, it becomes impossible to do any of them well. This is not true. What is true, is that if you do not specialize, it becomes impossible to be the very best at something. I know this, because for a time in my career I did specialize in a specific area of technology and became one of the best at it anywhere. Now, I can safely say that I am not the best at anything. But it does not mean I don’t do a lot of things very well.
What might Heinlein add to his list if he were writing for today’s technical society?

A human being should also be able start and run a company, speak in front of a group (any size), write a book, film and edit a video, plan an event, write and place an ad, teach a class, read or write a financial statement, manage investments, work with spreadsheets, write production quality code (on several platforms and in multiple languages), handle a TV or radio interview, mentor a kid, build a computer, wire a network, play an instrument, configure a firewall, architect a complex software system.

Ok, that might not be his list, but it is at least part of mine. It turns out that if you spend time doing a lot of different things over enough years, you can actually become surprisingly good at them. You can even find connections – ways different knowledge sets overlap – that a specialist might never see.
So if you are still early in your career, I encourage you to create your own list. Don’t limit yourself to the confines of what you are taught in school or at work, or what you think you are supposed to be learning. And please don’t limit yourself just to technology – there’s a lot more going on out there.
And if you’re visiting this site to gain some insight into my background, suffice to say – it’s a long story. I like to think that were it possible for me to meet Heinlein today, he would, after some conversation, judge me to be a human being. Coming from him, I would consider it the highest of compliments.

Putting a Machine to Rest

You’d think getting rid of an old computer would be easy.
Now, if it’s not a very old computer – say, a year or three, it’s easy: just restore the computer from its restore partition or backup DVDs, run a program like Eraser to overwrite the unused space with random data to make sure no personal information is left, and give it to a friend or donate it to a local organization.
But what if it’s a really old computer – say 10 years or so? In that case you have a much bigger problem. Disposing of the hardware itself won’t be hard – your local electronics recycler will be glad to take it off your hands. But that’s the easy part.
I know what you’re thinking. What am I doing with a 10 year old computer? Well, as you know, I run a software company. And we still occasionally get support calls on very old legacy software, which means we need to maintain the ability to debug or build some pretty ancient code. So when a new machine comes in, the previous machine remains frozen in time.
Now you may think you don’t have this problem, but let me ask you – how long have you had a computer? It may well be 10 years or longer. If so, you may have some old documents from back then that you’ve been carefully backing up or copying to your new machines each time you upgraded. But can you read them?
(more…)

This New Machine

About two years ago I wrote an entry titled “This Old Machine” in which I described my search for a travel laptop – something to use on casual trips when I didn’t need to lug around the full sized laptop I used for conferences. I had some specific requirements – it had to be small and light, and low stress – meaning that if it did get lost, broken or stolen, it wouldn’t be the end of the world. And while the goal was to use it primarily for Email, web access, and storage/editing of vacation photos, it had to have enough horsepower to handle serious applications in a pinch: Visual Studio, SQL Server Express, etc – the kinds of applications that a professional developer might need to use.
At the time, I ended up upgrading an old Thinkpad 240 – a machine that today would be called a Netbook, but that anticipated that class of machines by almost a decade. And it served tolerably well. It was slow enough to be annoying, and the battery life was worthless, but it was good enough.
This summer I wanted something better, and with all the talk about NetBooks I decided it was time to take a look and see if any of the new machines would serve my needs. After reviewing specifications and reviews, I ended up snagging an Asus Eee 1000HE PC.
Honestly, I did not have high hopes – laptops are almost by definition studies in compromise. But I ended up being blown away. This is a nice machine. You can read the full review in my gadget column. Suffice to say that with a 2GB memory upgrade, it has plenty of power for casual development work, is easily small enough to fit into a book bag or backpack, and at a hair over 3 pounds with over 7 hours of battery life is truly portable.
Oh yes, and I will never buy another laptop without a multi-touch touchpad.
Read my full review