NextGen System demands NextGen System Development Capability
I was quite intrigued by software systems depicted in ‘Minority Report’ featuring Tom Cruise. In 2002, the tech world was coming to terms with dot-com bust. In those days, movies were showcasing gesture computing, machine learning, analytics, etc., which were definitely ahead of their time. It had kindled my imagination that there will be days when software will be written, by plumbing the systems and assembling the components. Today, it seems to be a reality.
Fast-forward to August 2011 when Marc Andreessen wrote “Why Software Is Eating the World.” Since then we have witnessed unprecedented growth in software technology. If one carefully studies the hype cycle of the technology curve for the past 5-6 years, one would notice that introduction of new technology is happening quite rapidly and the shelf-life of technology relevance is shrinking. These technologies have impacted us in form of digital transformation, internet of things, self-learning machines and Industry 4.0. The introduction of these technologies has provided us with unique opportunities to eliminate entry barriers in industry. They have helped ‘born-in-the-cloud’ organizations catch-up with, and often catapult past, brick & mortar business models in less than a decade. They helped us to touch masses in a personalized way and enabled breakthrough improvement in operational effectiveness. They have provided foundation to create mass personalized, massively distributed and self-adapting system of systems.
On the back-drop of these technologies almost 90% of Global 2000 organizations have started digital transformation initiatives. The stark reality, however, is only 1 in 8 organizations is able to successfully implement the same.* Organizations look to achieve predictable business outcome by creating and deploying such initiatives. Hence success / failure of such an initiative is determined by the ability to deliver expected business outcome. Among many reasons for such abysmal success rate, a critical one is – organizations haven’t developed the capabilities to build and deploy multi-dimensional next generation systems.
Software development capability is an integrated approach to achieve anticipated results by aligning people competencies, capable processes and pertinent technologies. The majority of the current methods leveraged for software development were designed to address a few specific aspects of software development. E.g. Design Thinking focuses on personalized and innovative solutions delivered in viable manner. Agile is an emphasis on optimizing ‘time to value’ with acceptable quality. DevOps advocates establishing flow and continuous feedback across development, testing, deployment and operations, etc. Individually, each of these methodologies is able to optimize certain aspects of software development or system attributes. They approach the system optimization as ‘One Factor At a Time’, hence no single method is capable to deliver next generation systems in a predictable manner. If we need to create personalized, innovative, self-learning, always-on, complex system of systems with optimal time-to-market, robust quality and cost effective manner, we need to have a different development methodology.
In order to define ‘how’, one should understand ‘what’ one is creating. Common attributes of next generation systems are explained below:
System of Systems: NextGen system is built on top of existing systems leveraging software-defined architecture and API enabled integration. It aligns and integrates existing system to create business eco-system.
Consumerization & Personalized Experience: NextGen systems are focused on ‘power of one’. They are able to address the needs of specific personas and enable individuals to utilize the system as per his / her consumption needs. That means all interactions can be personalized based on data, processed securely across touch-points and delivered in an elegant user experience.
NextGen systems are developed for consumption on the move. The application, infrastructure and ways to engage are fundamentally designed for mobile users. Systems are designed to enable engagement, provide insights and create experiences for individuals. They help individuals to take context-rich decisions and find better ways to get the things done across eco-system. Such systems are deployed for global users, however, they also need to fulfill the data privacy requirements. Hence cloud platform based deployment.
Analytics, Intelligence & Machine learning: Remember HAL from 2001 : A Space Odyssey? That really explains NextGen systems and specifically Machine Learning; they are designed on the principles of self-learning, although hopefully not as scary as HAL. They recognize usage behavior patterns, establish correlation among the events and share insights with individual users for the given situational context. It also enables predictive analytics leading to reliable and repeatable decisions and results.
Having understood different attributes of ‘next generation system’, we can now define ‘how’ to create the same. So, in your opinion what are the constituents of next generation methodology? How should we create a nexus of these components to create ‘next generation system’?
Share your ideas and suggestion. Look forward to part-2 of the blog where we will be introducing ‘next generation methodology.’
* Forbes : Why Companies Fail at Digital
Image Credits: Minority Report