Yet another webapp that is going to change the way we do …

Let us say we have this problem at hand:

There are seven stacks of 100 coins each. Each coin weighs exactly 10g. But we think in one of the stacks the coins (all 100 of them) weigh 11g each. We have here a very accurate and expensive electronic balance. How will you find the stack of abnormal coins?

Let us see how the three different generations of software engineers will solve this.

c/c++ Engineer:
Look at 7 stacks as 7 bits. Let us say, if the bit is 1 then it has 11g coins else it is 10g coins. So we simply need a weight to turn the respective bit to 1 if the stack it represents has 11g coins.

You pick 20, 21,22,…,26 coins respectively from each stack, weigh them once. A moment’s reflection will convince you this works not just for one abnormal stack but any number of them. All this with just 1 weighing.

Agile Java Engineer:
Let us separate the interface from the implementation. Let us also recognize that we only need to solve today’s problem of one coin stack being abnormal and not tomorrow’s problem of any number of stacks being abnormal.

The simple implementation we will provide will pick 1,2,…,7 coins respectively from each stack and weigh them once. If a stack has 11g coins, then you can find it easily from the weight difference. One weighing will still do.
Say, tomorrow the product manager changes the requirements to find more than one stack? We simply provide a new implementation for the interface. Codes using the same interface need not change one bit.

Webapp Ninja:
I will have this scale hosted as a web service with REST API. It will take one coin at a time and will return the weight. You implement the client code to pass coins from stacks 1 through 7 to find the abnormal stack.

This works not just for one stack but for any number of stacks. Yes it takes 7 weighing, but we are in the age of utility computing. Computing cycles and bandwidth are cheap.

Why bother with complex algorithm when resources are in abundance? Besides, what will those two guys do when there are not 100 coins per stack?

Oh, we will provide our own browser based client as well, complete with Fail Whale page and ShareThis buttons.
Actually, we were coding while you were talking and lready have this up and running at coin.ly (or weighify). This is a ridiculously easy tool to weigh coins.

We will price this using Freemium model,

Free: 1000 coins per month
Pro: 10,000 coins per month
Unlimited: Unlimited coins per month
Now go away, I am busy designing the pricing page.

No wait, we are building a platform. We are only beginning to scratch the surface.

Note1: Yes, I understand it is not possible to pass a coin through an API or enter it in a website. But let us not let that interfere with the story.
Note2: At least the webapp Ninja is thinking about monetization.
Note3: Surprised by this post? I have software in my upbringing, having written c/c++/java code for embedded real-time systems and as senior software manager I led a team that developed CDMA Radio Basestations.

(Photo courtesy of Flickr user Rodrigo Amorim )

Cloudy With a Chance of Free Business Model

There is a children book called Cloudy With A  Chance of Meatballs which is  a great story about a town where food was in abundance, because it rained food three times a day. It rained breakfast, lunch and dinner. In this scenario, there is such thing called free lunch. In fact the town hired sanitation crew just to cleanup the excess food from the streets and keep them clear. I bet no one in the town went hungry and there was no need to save food for the rainy day (pun intended). There is a page in the book that shows a restaurant with people eating inside. One notable aspect about that restaurant is there was no roof. Waiters simply caught “the rain” and served their customers. The marginal cost of food is zero for the restaurant.

That brings us to free as a business model that Mr. Chris Anderson talks about. Mr. Anderson says how free is the future for digital goods and services because their marginal cost approaches $0.  The meatballs book  applies Mr. Anderson’s argument about marginal cost to physical goods. Abundance of one component simply makes it irrelevant in pricing because a marketer cannot make a value proposition based on that component. The business model shifts to other components that deliver value.

  1. Since the marginal cost of food is zero, should the restaurant serve its customers for free?: No. The marginal cost is irrelevant. The restaurant should charge the customers for the convenience  (someone else catching the raining and serving) and experience. The fact that marginal cost is $0 for food only changes the product/service that is being sold.
  2. If the restaurant simply serves the rain that people can do it for themselves, why would anyone go to any restaurant?: Same answer as above.
  3. How would one restaurant differentiate itself from others?: Better service, live entertainment,  complements like wine that is not part of the rain.
  4. What role do chefs have to play in such a town? If the food from the rain is bland or flavorless then chefs role could be to improve its flavor. They could also specialize in plating the dishes in an attractive manner.

Pricing is about capturing a share of that delivered value. Since  “free” does not capture value it cannot be a business model.