Sunday, September 2, 2012

Herculean task of developing a Software Product and Taj Mahal


Emperor Shahajahan constructed taj Mahal in the 17th century. The construction of the Taj Mahal was entrusted to a board of architects under imperial supervision, including Abd ul-Karim Ma'mur Khan, Makramat Khan, and Ustad Ahmad Lahauri. Lahauri is generally considered to be the principal designer (Refer: http://en.wikipedia.org/wiki/Taj_Mahal ).
When one tries to imagine how can such an awe inspiring monument could be created during those days with such primitive instruments, machines, processes and methodologies one realizes what an incredible job these guys have done. There are many more examples of such work spread around the world e.g. the pyramids, sphinx, Mayan temples, great wall of china, italy etc. and many more

Coming back to TajMahal since everything was made out of marble stones, carved painstakingly by 20,000 artisans they must have had to freeze the requirements well in advance before they started such an herculean task. Once decided on the blue print there must have been very less scope for changing requirements.

Definitely some type of modeling and prototyping must have been done so that the stakeholders could visualize what the end product would look like and through various proof of concepts all unknowns must have been thrashed out.

Imagine these same Architects, engineers and artisans today would have taken such a mammoth task in software product development today. If somehow the same people through time travel are beamed to todays time. It will be interesting to imagine whether they would have been able to pull of the same feat.

Today products have to be developed in internet time. Spending even more than a few months to develop your product or offering might be just too late. The requirements keep on changing by the day and the market almost quarterly. Stakeholders and customers are even more demanding than ever.

Also it is pretty ubiquitous to see customers especially in the service industry changing their requirements even after extensive deliberation and writing agreed upon requirements in detail.
There is a saying "Customer never exactly knows what he wants but surely knows what he does not want when he sees the end product"


No matter how commonsensical it sounds and you might have given the same advice to others it is difficult to restrain oneself from keep on adding features and continuously delay the launch of your product.

We ourselves after advising to all our service customers to launch the Minimum Viable Product (MVP) - http://en.wikipedia.org/wiki/Minimum_viable_product as soon as possible and take customer feedback as early as possible we too fell into the same trap while developing App42. For us App42 was no less than a Taj Mahal atleast in terms of scale. As a small startup to take on to such a humongous task of developing a complete cloud platform - PaaS (Platform as A Service) which  supported web, mobile, social, SaaS, Enterprise applications and TV apps and a full blown multiplayer Gaming Platform - AppWarp was a very daunting task. Two years since I quit my job and started developing App42. Everyday new requirements were coming in my mind and I kept on adding features. The market, environment, competition and customer perception was changing by the day, which added even more requirements. We were competing with one of the biggest cos in the industry and had to think of innovative features and wanted to be ahead of them when we launched. We also were working in stealth mode since we did not want to release something which would give away our product roadmap.

Today when I look in the hindsight, one realizes that I could have very well launched some part of the product line in the first year itself. Launching your product early results in multiple advantages.

- First and foremost you announce yourself to the world that you are entering this space
- Investors, Market Research companies, potential employees, Customers take notice of you.
- You get early feedback from your customers
- Your existing employees feel proud that they have delivered something and the success builds on their morale
- Credibility of your company goes high
- It helps you to forge alliances, since you have a tangible product to show.
- Easy to attract talent since they can see on what they will be working on
- Getting media attention early

Its not that not releasing early with less features can only amount to delay in the launch of product or loosing first movers advantage. Infact most often it can be fatal. There are plethora of examples both in startup as well as established big companies that products dont see the light of the day. Even if the get released the relevance of those products loose significance when they get launched.

Do read about the ship Vasa which went down in its maiden voyage. When Swedish Emperor Gustavus Adolphus put many requirements ( 70 meteres long, 300 Soldiers and two gun decks with mounting 64 heavy guns ) on the dutch Ship builder Henrik Hybertson which he could not push back. Since Sweden was at war with Poland at that time. He wanted to build the greatest ship with maximum no. of canons. On 10th August 1628 The Vasa went down just after only 120 meters  from the shore when it left the harbor for the first time.

Many entrepreneurs I have met always talk about Apple and how reliable they are and how great they look. When one says that release early does not mean that one compromises on quality. iPad's first release did not have front camera, usb port, support for flash etc. but yet the product was greatly appreciated. There were and in future new ones came in with far more features but are yet to break iPads hold in the market.

Compromise on requirements. Decide on the core features, which define your product and vision. Do it well, best in class and launch. Take nimble steps and be agile, be receptive to market and customer feedback and release often thereby incrementally building your product to its full potential.

Adding on too many features and trying to make your product picture perfect traps you in a endless loop from which it is difficult to get out. And the day one realizes it might be just too late.
Its every entrepreneurs dream to release a product which is light years ahead of its competition, but if you wait for so long and keep on building features and want it to be pixel perfect most often than not its a recipe for disaster.

Keep your long-term goal of building your TajMahal but in between release your product when it is completed to a logical level where it can start giving value to customers. It might not have all the features you want in your product in the first release or have more features than your competitors, nevertheless release it. Don’t try to build a TajMahal on your first release. It might very much be that the customers are expecting a different version of TajMahal than what you have envisaged.

No comments:

Post a Comment