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: