Friday, 28 March 2014

The apocalypse for the COTS software developers and ISVs

I used to work in an business vertical area which focused on developing proprietary middleware and application frameworks in the telecom industry. The challenge at that time were:

  1. The target hardware were many, from x86 or Sparc servers to ARM, MIPS, PowerPC on the embedded side.
  2. The OS for which to develop was equally fragmented, from multiple flavours of Unix (& Linux) to RTOS like VxWorks, pSoS, threadX, etc.
  3. The open source revolution was just starting out and open-source quality was relatively immature when we consider the demands of carrier grade commercial software.  FOSS was not upto the mark of COTS.
  4. Their was also no clear strategy in organisations to adopt & contribute to open source and share software infrastructure (not business logic) like components (libraries), platforms & frameworks.
  5. Standards were more important for interoperability than reference implementations. A consequence of the pre-Agile world in my opinion.

The open source revolution was largely driven on Linux/x86 and ports were available in some cases for some general purpose OS like Unix and Windows. And these ports were just ports as a proof of concept rather than optimised software. It was rare to find open source ports for RTOS. In such  a case if I could write high quality communication & networking software which is portable and adaptable to multiple hardware and OS platforms, then I have a highly reusable IP which saves development costs and creates competitive advantage for the product using this software (on the basis of quality). Infact it spawned a small ecosystem for ISVs (Trillium, Hughes, Radvision, etc) who were practically gun-running the communication software wars and OEMs trying their best to develop things in-house to save licensing costs of ISV software while maintaining high quality.

However in the previous 5-7 years the above 3 challenges faced disruptive trends

  1. The target hardware tended to consolidate around ARM for Clients and x86 for servers and network gear. Maybe I have over-simplified this, but it is true that the number of hardware platform to develop for drastically decreased.
  2. Linux became so ubiquitous that it spawned clients/terminals (Android) tor Servers and Pipe equipment. It displaced UNIXes from server side and increasingly is eliminating RTOS on embedded side
  3. Open source increased in poularity, the community of *skilled* developers supporting it increased and so did the usage. The result was the quality improved in all respects (functionality, performance, reliability, scalability, etc). Optimal use of multicore, improving compilers and tools all contributed to make this happen. Now FOSS became a serious challenger to COTS. And it was "FREE".
  4. Organisations became more aware about the benfots of open source adoption in their commercial products, infrastructure took backseat to business logic and therefore their was more eagerness to adopt open source. Value was seen in contributing back and any policy obstacles were done away with.
  5. People developing standards (especially corporates who wanted to make their work a standard for the business segment) for interoperability started putting more focus on developing reference implementations, open sourcing & licensing it free of cost to other players, rather than writing bulky specification documents and then letting other players struggle to develop an implementaion and then bring their product in the market. It was agile as it shortened time to market and drive rapid prototyping & adoption.

So now we have come 180 degrees. From a position where people were relucantant to use FOSS, we are in an environment which embraces FOSS. The value of COTS diminished. A lot of closed-source ISVs disappeared or diversified into other businesses. A small industry was killed, but mankind benefitted.

For a platform developer this makes little difference. Where he was writing closed, proprietary software, he is using the same skills acquired to contribute to open source projects. Only new skill that he needs to develop is to quickly read, browse, evaluate and modify somebody else's work, rather than do everything himself from scratch. Components, Stacks, Platforms & Frameworks are still there, just they are open source and the development teams are massive (community). For those who diversified into writing applications, they know have to master teh sills of selcting, using & supporting open source in their products rather than their own or 3rd party ISV components. Not so much difference either.

Depending on how you look at it, the cheese has moved (or not moved) !!!


No comments:

Post a Comment