Whenever something new looms over the technology or industry horizon, experts are quick to make forecasts. One such forecast that is doing rounds regarding IT trends is that with the explosive growth of customizable third-party apps, business users with little programming skills can assemble applications by themselves and don’t have to depend on their IT departments. IT departments in turn, will not have any work to outsource to their Indian vendors. And the Indian IT industry, therefore is doomed unless they reinvent themselves. This article dissects this doom forecast by taking a closer look at the role of IT departments, the dependence of business on IT departments, and skills needed for assembling larger business applications using smart apps.
To quote Vivek Wadhwa, an IT trends observer, he says “With the advent of tablets, apps, and cloud computing, users have direct access to better technology than their IT departments can provide them. They can download cheap, elegant, and powerful apps on their IPads that make their corporate systems look primitive. These modern-day apps don’t require internal teams of people doing software development and maintenance—they are user-customizable and can be built by anyone with basic programming skills.” in a LinkedIn post titled Why I have become pessimistic about Indian IT. Does this generalization hold water? Can the explosive growth of apps render software developers redundant? I am afraid not. There are 3 main reasons as to why users will not be able to do it by themselves and replace IT departments.
1. Rich availability of apps can make programming easier, but IT is lot more than programming: Information Technology is not just programming which is made easy using reusable apps. Identifying the information flowing through a system, breaking them into logical chunks, relating the chunks into a model, identifying the business rules to process information flow and envisaging the whole model as a set of input-process-output is essentially what Information Technology is all about. In other words, any non-trivial application development goes through a software development life cycle that consists of requirements specification, analysis, design, coding and testing. All life cycle models including agile models have these phases, but different life cycle models vary in the extent to which and the sequence in which the life cycle phases are pursued. In this life cycle model coding and unit testing constitutes roughly 30- 40% of the effort and availability of smart, easy-to-use apps can only reduce the effort involved in programming and unit testing to some extent and not the effort for other phases. Effort needed to be spent on other phases would not be reduced significantly as shown in the diagram below.
The diagram illustrates that for an application that requires 100 units of effort, the effort required for coding and unit testing reduces from 35 units to 10 units, but effort for other phases remain as-is. It should be noted that the numbers are approximations based on industry averages and there can be variations in specific instances. The critical-to-success skills of IT lies in these non-programming phases, that is, analyzing and modeling customer requirements and designing the software. These non-programming part of IT development skills continue to be necessary both in quantity and quality, and can only be provided by professionals who work full time. Not that non-IT professionals cannot do it. But, they have to invest full time efforts into learning and performing this activity and if they invest that much of time and effort, they in turn become IT professionals whose place is in IT departments.
2. Skills needed for assembling apps with programming the glue code is non-trivial: While I have dealt with large enterprise applications having many lakhs of lines of code, I have also dealt with small software houses developing applications for small businesses with few thousand lines of code. Building dynamic websites for small businesses using customizable frameworks such as Joomla or WordPress has become evermore easier. And yet, believe me, learning Joomla and WordPress is non-trivial to say the least. And it is not a one-time job. One has to spend months of effort to learn not only the framework, but also the innumerable plugins and at least one programming language to write additional code to become competent. And one has to then, continue to keep updating him self or her self by learning features of new releases and latest plugins. It takes months to master these skills and a business user working in some other area of core competency such as an insurance, real estate, inventory or shop floor simply cannot afford this learning curve as an add-on. It requires a full-time effort investment to learn these skills, become proficient and stay updated. Therefore, this do-it-yourself software gadgets may lower the entry bar for a non IT-professional to become an IT Professional; but will not render IT professionals redundant.
3. App explosion, may in fact, lead to increasing the size of pie rather than taking away from it: Let’s take an example of content management systems. Customizing Enterprise Content Management Systems such as OpenText or EMC to specific business requirements demand thorough software development skills whereas customizing small business CMS solutions such as WordPress or Joomla demand relatively less skills. This does not mean that the lower skill level requirement has resulted in WordPress / Joomla eating into the market share of Enterprise CMS products thus rendering the software professionals in ECMS jobless. Rather, they have created a new market in the small business segment and are growing independently. According to a research report, ECM market is expected to grow from US $ 5.1 Billion in 2013 to US $ 9.3 Billion in 2017. Attributes of ‘ease’ and ‘economy’ associated with open-source apps actually help creating new markets rather than replacing existing ones.
In summary, how the Indian IT industry will grow in the next couple of decades depends on a number of factors. But, explosion of easy-to-use-and-customize apps doesn’t necessarily pose a threat of IT departments being displaced and replaced by business users turning into part-time developers. And in that sense, Indian IT industry doesn’t face a significant business threat from explosion of open source apps.
What do you think? Do you find any flaw in the argument? Do you have alternate points to emphasize the same conclusion? Do share your opinion in the comments.