A recent conversation with a few colleagues turned to the fact that technology is so central to our lives that it will soon be common to find everyone writing code—and I mean everyone, including carpenters and plumbers. In 2011, when Marc Andreessen said that software is eating the worldi , it is doubtful if even he could have imagined how quickly it would happen. Admittedly, today it does take considerable expertise to write a mobile app for a disruptive idea, an Alexa skill or the lines of code required to automate a claim. This won’t stay true for long. The day when engineering is democratized, allowing everyone to write cool stuff, isn’t too far.
The idea is building steam. From apparel to airlines, everyone wants to become a technology business. Two years ago, ING CEO Ralph Hamers captured this sentiment when he famously said, “We want to portray ourselves as a tech company with a banking license.”ii Reason: Software is becoming malleable and provides incomparable business flexibility and agility. So, if software is the ‘secret sauce’, why isn’t every business building software? The catch is that engineering has become complex.
Earlier, software was being delivered in an extremely deterministic setting. It was always clear who would use the software, the user environment was well defined, the requirements were definitive and development timelines were etched in stone. This has changed with the internet. Today, software can be accessed by anyone, anywhere. In addition, product roadmaps are fuzzy and development cycles are shorter.
Non-functional aspects such as the environment in which the software will be used could change overnight. Building top quality, well-architected modern applications has become an uphill task.
The pace of innovation in development and engineering is complicating things further. New technologies and techniques are discovered every day, challenging existing patterns and best practices. The resulting opportunities for innovation have turned design, development and deployment of software into a sophisticated, ever-changing science.
Complexity is eating software
Less than a decade ago, a desktop application that runs transactions and meets the business requirements of its time could have been developed in a few weeks by a single developer. A similar application to satisfy current-day digital business needs (such as elastic scalability, security, agility and adaptability) would need multiple disciplines to come together. We would need a team of UX engineers, programmers, architects, database engineers, QA engineers, DevOps engineers and Site Reliability Engineers (SREs) that would take a few sprints before the product could reach even a modest v1.0.
With multiple core repos, microservices, interdisciplinary teams, scrum of scrums, never-ending backlogs and A/B deployments, such development will probably take a product life cycle approach with continuous development for many years to come. In short, while software is eating the world, complexity is eating software.
Fortunately, there is a subtle shift already underway. As we speak, Crowd and Cloud have disrupted the way we think about talent and platforms. APIs and Microservices have changed the way we think of architecture, as well as, how we build the software of tomorrow. Autonomy, unbundling and decentralization as powerful principles driving the evolution of software development coupled with crowd, cloud, APIs and Microservices are defining how we can custom stitch applications faster and better.
It’s the ecosystem!
Dr. Bruce Lipton, post his ground-breaking work on cell biology stated, “When the cultured cells you are studying are ailing, you look first to the cells environment and not the cell itself.” Organizations are like organisms in every way and hence we believe that these words of wisdom apply as much in the context of enterprises as to cell biology. Let’s first examine why modern application engineering efforts fail. Using the word ‘fail’ is probably harsh, but we do recognize that modern projects are so complex that they often go over budget, don’t deliver what they promised, and become operational nightmares. Most businesses have thousands of applications. Literally hundreds could be in active development at any given time. We have teams of engineers with varying backgrounds, working with different kinds of business stakeholders, consultants and technology providers; we have a legacy-filled landscape to contend with; and tomorrow’s users have unpredictable needs.
As you dig deeper, there are many more questions you encounter: How can software become even easier to build? Are engineers empowered enough? How can every industry have citizen developers who don’t need coding expertise? What will ensure that carpenters and plumbers can one day rig applications with a swipe? In other words, what should the playbook of application engineering contain so that it can handle scale, variety and variability?
Applying such a playbook at enterprise scale is not a trivial task. This is because the enterprise engineering ecosystem lacks the right set of methods, techniques, practices and talent that enables engineers to counter ever-increasing complexity. So, what prevents us from setting this right? Is it possible to empower and enable the engineering ecosystem to address these challenges? We think so—and we call it #democratizeEngineering. This philosophy should work for any business that wants to allow a reasonably trained engineer to build state-of-the-art modern applications at the same level as the most innovative companies of the world.
The components that enable building such an ecosystem are exciting and interesting. Watch out for more on this topic and to understand what it takes to #democratizeEngineering.
i Why Software is Eating the World, Marc Andreessen, Aug 20, 2011:
ii ‘We want to be a tech company with a banking license’ – Ralph Hamers, Aug 8, 2017:
Arun Kumar Melkote
Vice President – Wipro Digital
A renowned speaker at industry forums with deep industry and technology experience that spans across traditional and digital businesses. Over two decades, Arun played various strategic business roles at Wipro including practice leadership, unit strategy planning, service delivery, talent leadership & development and client relationship management.
Aravind Ajad Yarra
Fellow - Distinguished Member of Technical Staff, Wipro Ltd.
Aravind is a chief architect and architecture practice leader focusing on emerging technologies and digital architectures. With over 22 years’ experience in the IT services industry, Aravind helps clients adopt emerging technologies to build smart applications leveraging Cloud Computing and Mobility. In his previous roles, he worked as a solution architect for several complex transformational programs across banking, capital markets and insurance verticals.