Monday, September 27, 2010

Risk (a)version!

I have spent the last decade and beyond  developing, testing and overseeing the release of multiple versions of many software products on multiple technology stacks and seeing it succeed though its planned shelf life and lifecycle. This also came with an inherent self assurance that the next version of the software would be better than the current one and would solve all our (clients) problems. In those days, heroes were tagged to different releases. I even have a certificate at home from one of my past employer proclaiming me as one of the stars of the v2005 and v2006 releases! A close friend recently and quite suddenly asked me which version of facebook was i using. This question of his left me stumped but moments later sounded a wee bit rhetorical - did facebook ever had versioning?


I soon realized that it was not just facebook, most products from Google did not have versioning. The old order seemed to have changed suddenly. Developing and selling software through versioning with the accompanying hype and timed big bang releases is actually disappearing fast. Its being replaced by a method where the software actually resides on the internet or the cloud and is continuously updated as a result of which the user has the latest and greatest version or simply the current version! Unlike the older model of spending years adding new features to the products and then spending whatever dollars to advertise market and convince existing customers to upgrade or new ones to purchase. If you added up the maintenance hours and the costs associated with "supporting" older products all the while cramming newer features out of fear of losing out on features - isn't this software bloat? I also think this is a 'vicious' reinforcing loop that one gets into while the software becomes more complex and expensive to build over time and more complex to use. And are my users using more and newer features of the complex software i delivered? Probably not, a good ERP user needs to use about 20% of the features the best of the breed ERP vendor offers today!! ( you may question the 20% - but from my experience, i am convinced that it is pretty close). And, how many times have we seen anything ‘frozen’? But the time a new version of the product was ready for a release, many of the features would have been outdated while many more would be missing since the customer and his needs also evolved during the product development cycle.

I recently was introduced to a different revenue model in product software wherein the company wasn't charging a one time license fee but a monthly subscription or a rental fee. The best part of this model was subscribers also have the rights to the future enhancements. I am sure the revenue model and the transparency it brings drives these companies to constantly innovate. This would not only keep the maintenance revenues flowing, but also ensure better software quality. Product development finally seems to be heading the Agile/Rapid App development (RAD) model versus the traditional waterfall model. The new model would not only give the time to understand customer needs but also lets you build small incremental features and also,ofcourse- discard things that don't work. And who drives it - Product development is no longer marketing led development but engineering led.

Does this make life easier? at least you don't probably don't have to estimate for features ahead of time and sometimes these features may not even make it to the version. Just let the folks develop smaller pieces of code and publish it on the internet or cloud for your real users to ratify, They are your real 'user' group and who isn't happy without any productivity loss?

So is RAD effective? For one, it reduces the development time and reusability of components help to speed up development. All functions are modularized so it is easy to work with. The only expectation for large enterprise level products would be extreme commitment by the end customer and developer to complete the product in a fixed and an abbreviated time range.

No comments:

Post a Comment