Amazon’s Kindle glitch and the always-be-shipping-code mentality
We’ve gotten used to the cyberattacks by now: Apple, Microsoft, the New York Times, and the Wall Street Journal all have been hit. Today, add another to the list: Amazon customers. Hacked accidentally by, well, Amazon.
The company released an iOS Kindle update that had some users griping on iTunes that the software deregistered their accounts and wiped their entire book libraries and bookmarks. Amazon then issued a warning to users not to download its latest update because of a “known issue.” (If they knew, then... Never mind.)
Amazon’s glitch wasn’t nefarious, of course, but it could be the product of a frenzied, always-be-shipping culture in Silicon Valley where new code is expected fast and furiously, and that can be dangerous. Call it the Lean Startup approach, which celebrates shipping code in quick, small increments. The philosophy has become commonplace. And maybe it's even permeated a giant like Amazon. Of course, that's something only Amazon's employees know for sure. The company hasn't returned a request for comment.
Regardless, the tech industry as a whole has been moving in this code-like-the-wind direction for quite a while. For example, Firefox 4 took Mozilla a year and a half to push out, now the company does multiple updates more often. And at startups, the pace is much more feverish. So it sparks an interesting debate: Are developers under so much pressure to ship that the product suffers?
This isn't the first time a software update has resulted in backlash for a big company. Utter the words “Apple Maps” to a few engineers and executives in Cupertino and I’m sure a few of them still get a queasy feeling in their stomachs. The maps fiasco – wherein the company ditched Google Maps and unveiled its own embarrassingly bad product – was the result of a much-anticipated update, which had been in the making for a long time. Sure, the engineers may have been under pressure to get the product out sooner than later, but Apple’s case seemed to be less the result of the fast, constantly updating, coding machine, and more just bad overall execution.
Shara Tibken at CNET made a good point when reporting on the Amazon news this morning. The company issued a note on the app’s download screen in the App Store warning people not to download the version. But as Tibken says, it may have been overlooked: “Some apps are updated so frequently and changes are so minor that users don't even bother reading the details about what's included before they hit download.” That’s the crux of the debate.
The other day I covered a funding announcement by CircleCI, a PaaS that automates the code-testing process, so developers can spend less time running tests and more time coding. The CI stands for “continuous integration,” a principle in which developers are always integrating new or changed code into the existing pool of code. I called founder Paul Biggar today to get the opposite perspective.
He thinks the problem is that Amazon should have been shipping even faster, and in smaller units. Biggar does concede that developers are under a lot of pressure to ship, but he actually places the blame on Apple and its App Store operations, which he says forces developers to bundle more code together because its review process takes so long. Biggar argues that shipping more incrementally would have allowed the developers to parse out the updates more fluidly, and a large bug would have been caught sooner. That said, it's not like this bug causes your screen to freeze every once in a while, this is much more obvious. If there was a white board at the Kindle engineering offices, I'd imagine it would say, "DON'T WIPE OUT USERS' ENTIRE LIBRARIES."
Still, Apple didn’t write Amazon’s code and didn’t force Amazon to ship without following proper testing procedures. Biggar’s response: “Every piece of new code has the potential for bugs.” Being nimbler means the bugs that do go through often affect a smaller number of people because it can be corrected sooner.
While that’s true (indeed, Apple expedited its review process for Amazon today and the tainted version has been replaced by a new, fixed version), you could argue that it also raises the likelihood of similar mistakes occurring in the first place.
Giving developers more time to think might even mean products expand in unexpected ways -- ways that are revolutionary and not evolutionary, as it has been said so many times before. It could even allow them to go back to basics. In any case, Amazon has an array of books on the coding. Here's one for download, in case an engineer needs a primer. You might already have it. Unless you downloaded that Amazon update this morning. Then you'll need to download the book again.
[Image courtesy: kewl]