Monthly Archives: July 2014

Book Review: The Lean Startup by Eric Ries

The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful BusinessesThe Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses by Eric Ries

My rating: 4 of 5 stars

This main point of this book is the principle of “failing fast.” Since you don’t know everything (and a startup knows very little), it is most efficient to quickly create some data to base decisions on.

The distinction between “vanity metrics” and real, useful metrics is illuminating. A “vanity metric” shows something that looks positive, but does not answer the question you need answered. You need to decide at the beginning (before releasing your first release) what data you need. For example, a vanity metric would be total, accumulated downloads – guaranteed to never drop! A useful metric would be conversion rate to paying customers.

With a quick-and-dirty product (the “minimum viable product”), you can start gathering data. There can be three results:

  • Your idea is hopeless and should be abandoned. Next startup, please.
  • Your idea is seriously flawed. In this case you do a “pivot” where you change your product dramatically, release a new product and measure again.
  • Your idea is promising. In this case, you persevere, make some change you expect to improve your core metrics, release a new product and measure again.

The use of the word “lean” in the book is a bit of a misnomer. While the book keeps referring to manufacturing practices, it does not advocate elimination of waste as lean does. It only talks about elimination of waste in one dimension: Eliminating the waste of building something nobody wants.

View all my reviews

Arguing Facts and Fiction

I’ve been following the discussion on the new In-Memory option in the Oracle database. As far as I can see, it’s very easy for a developer to start using this feature, which will cost your company $23,000 per CPU at the next Oracle license audit.

But the most interesting part is actually not the cost – it’s the discussion. Oracle expert Kevin Closson stated that there was a problem and lot of people told him that he didn’t know what he was talking about. So he produced proof. That’s exactly what I wrote about in my previous blog post.

It seems strange that there are still people in IT who will start an argument based on opinion when the facts can easily be determined. If you want to have an argument, argue facts, not fiction.

Being Right and Proving It

One of the great things about working in IT is that you can often win an argument simply by being right. Not because of who you are or because you are more eloquent than others, but because the facts support your position. Almost every IT person I have ever met respects facts.

In order to win arguments this way, you of course need some facts to work with. And that’s where too many people fail. If the application is running slowly, the Java guys will blame the database and the database guys will blame the application Java code.  But if you don’t have any facts, you can argue until the cows come home without getting any closer to an answer.

The business doesn’t pay you for aimlessly fiddling around with various setting that might have a bearing on the problem. The business pays you to solve their problems. In order to do this effectively, you need to instrument your code properly so that facts are available when you need to troubleshoot something.

Take Self-Absorption to New Lengths

Observing tourists around me, I’ve noticed that the regular selfie doesn’t cut it anymore. The essential travel accessory for the modern self-absorbed traveller is a selfie stick:

Of course, the whole selfie concept is the opposite of a traditional tourist snapshot: Not “see what I saw,” but “see me”. But while you are at it, why not make yourself a spectacle while you take the picture. Hence, the selfie stick.

The picture is pretty much the same whether taken at arms length or at arms length plus two feet, but then a better picture is not the point of the selfie stick anyway. The point is to make people look at you – both on social media and while you are snapping the picture.

In the age of social media, people want to be seen and heard, and will go to ridiculous lengths (about two feet) to achieve that. Do your IT systems have social media features? If you don’t offer them, you are missing out on a lot of potential user engagement.

OK Watch, What’s the Time?

While we’re waiting for the mythical iWatch, Google has already released Android Wear, and the first two Android Wear watches are here.  And they’re ugly.

If I’m going to wear something like that on my wrist, I need a really compelling usecase. I’m not sure that getting even more notifications and reacting 0.8 seconds faster is what I’m looking for.

When my latest Nike FuelBand eventually dies (they seem to last about a year, which is possibly why Nike fired the entire FuelBand team), I think I’ll pick up a Withings Activate. It does activity tracking like my FuelBand and has a new, innovative user interface not seen on a smart watch before: It looks like a watch.

Debugging Faulty Assumptions

I wanted to install Oracle JDevelper 12.1.3 – a version that I had been eagerly awaiting. Since my primary machine is a MacBook, I wanted to install it on OS X 10.9.3.

I downloaded the generic installer and found that the install didn’t run. Since OS X had disappeared from the documentation, I assumed that I would have to fiddle around until I found a combination of JDK and OS X that worked. However, Shay Shmeltzer from Oracle assured me that OS X was indeed supported, and many friends and colleagues weighed in with OSX/Java combinations that worked for them.

I was pulling my few remaining hairs trying to get the thing running when Chris Muir helpfully provided a SHA checksum to validate my JAR file. And sure enough, the  download was corrupted. It’s been ages since I last had a download complete successfully and still be corrupted, but that doesn’t mean that it will never happen again. Just like it will sometimes be true that it’s a hardware problem.

Lessons learned:

  1. Don’t fall prey to false assumptions. Because the problem looked like something I knew (the JDeveloper/OSX/Java combo has historically been temperamental), I erroneously assumed this was an instance of a specific problem.
  2. Ask for help. Lots of people have contributed their running environments and suggestions, which pushed me out of the wrong direction I was looking.



Incompetence or Malice?

We’ve just had a leak of 900,000 national identifier numbers here in Denmark. That’s about 16% of the total population, so it’s pretty big. These numbers are unique identifiers for a person (similar to Social Security Numbers) and are a good starting point for identity theft.

Never ascribe to malice that which can adequately be explained by incompetence.

Napoleon Bonaparte


So how did these numbers leak? Through plain incompetence and lack of procedures. It seems that someone at “A global leader in providing technology enabled business solutions and services” was behind schedule, so they published an intermediate file that hadn’t been completely processed (the confidential personal identifiers had not been stripped out). And nobody cared to check the file before it was published.

Your problem might not be malicious insiders, but simply sloppy operators and poor procedures. Do you have manual, unverified workflows where one person can make your company the laughing-stock of a country?

They Took Away My Cloud

On Monday, a U.S. judge gave Microsoft control of 22 domains owned by domain hosting service Microsoft intended to filter out some domains used by malware, but promptly screwed up. The result was that millions of legitimate users could not access their servers.

This will happen again and again as infrastructure moves to centralized cloud providers. What do you think will happen if the server just above yours in the server rack is running malware? Do you think the cops will just take that one server down? No, they will take the whole rack, or the whole server room.

Cloud has new vulnerabilities, and you need to be prepared for the situation where over-zealous law enforcement grabs your server. Do you have a plan B?

Development Platform Disconnect

Each year at the annual Oracle ACE Director briefing, I look around at the laptops my fellow ACE Directors are carrying. More and more of them are MacBooks – I think we were up to around 50% last year.

That makes it all the more puzzling that the installation guide for the latest version of Oracle JDeveloper (12.1.3) does not mention OS X installs at all. The 12.1.2 version had sections on how to install JDeveloper on Windows, Linux and OS X, but the 12.1.3 version only talks about Windows and Linux.

Seems like an area where Oracle isn’t noticing what’s happening in the world outside Redwood Shores.