Today’s enterprises are dependent on business applications (software) running on hardware that includes computer systems as well as networks. This can be represented as a stack with hardware and networks at the lowest level, operating systems and platforms at the next level, and enterprise and business applications at the top, as shown in Figure 1. One can visually represent the stack in more than one way, but essentially business applications run on top of hardware.
The cycle time for developing an application and deploying it in production environments may not be in sync with changes happening in the marketplace. In order to stay relevant and in tune with industry, CIOs have to ensure that business applications not only are up to date, but also ready for tomorrow’s challenges. Service providers (whether internal or external) constantly have to explore opportunities for continuous improvement and innovation in business applications.
This Advisor proposes a five-“I” framework for carrying out a discovery process to uncover opportunities for innovation and continuous improvement in business applications. These five “I” terms are:
Inherent opportunities (within the application)
Interfaces with adjacent applications (downstream and upstream)
Internal and external tools
Application development and support teams can use this framework for running continuous improvements using collaborating innovation and proactively address the evolving needs of business.
Collaborative Innovation: Context and Background
In general, applications are built and managed by a minimum of three sets of teams: developers, testers, and maintainers (application support engineers). Each of these teams has its own deliverables, timelines, and success factors (see Figure 2).
This approach of dedicated focus is time-tested and already works well in many organizations. However, it does lead to silos between developers, testers, and support engineers, resulting in the application becoming out of sync with the evolving needs of the business. The IT organization is consequently seen as reactive and found waiting for change instructions from the business.
Another contributor to silos is the geographic distance of teams between cities, states, and often countries. It is possible that developers and application owners may be operating from the US while the testing and support services may take place in India or Europe.
Of course, Agile methodologies and DevOps have changed the way applications are built and run in production environments. However, it is important to take a big-picture view of the entire application, along with its ecosystem, which requires orchestration of different teams’ views and experiences with the application.
How do we leverage the collective knowledge of developers, testers, and support engineers to come up with innovative ideas that help in keeping the application ahead of the business? We must be proactive and not wait for business to ask for improvements.
In the following sections, we look at each of the five “I” terms in detail and put together a framework that can be used for implementing collaborative innovation in application teams. One can build an Excel spreadsheet or a questionnaire and circulate it among stakeholders and use it for capturing inputs. Stakeholders who participate in this exercise include application developers, testers, support engineers, application owners, and architects.
Inherent Opportunities (Within the Application)
In this stage of the framework, we ask stakeholders to list out opportunities within the application (inherent) to improve its performance. Here are a few examples:
What features can be added to the enhance end-users’ experience?
How can we improve the performance of the application?
What are the opportunities to reduce deployment time and meantime between failures?
Teams can add many more questions specific to their application.
Interfaces with Adjacent Applications (Downstream and Upstream)
In this stage, we look at flow of data between applications and explore opportunities to improve it. When the workflow between applications is not smooth, it often leads to failures. Troubleshooting interapplication data flow issues is complicated and needs expertise (at least exposure) of both apps. Here are a few examples:
Does this application exchange data with any third-party application?
Can a malfunction in another app bring this app down? If yes, what are the vulnerabilities?
Is there an overlapping functionality with another app? If yes, is it possible to rationalize and reduce overlapping?
Internal and External Tools
Here we consider whether there are any tools that can be used with this application to make it function better or to automate some of the tasks related to this application. The tasks could be related to development, testing, or supporting the application. The objective is to push application teams to think in terms of tools that can be deployed to make it stronger, faster, and smoother.
Internal tools are those that are developed within the organization. External ones are from market and are to be considered based on long-term returns on investment.
Here are a few examples of questions to ask:
Are there any new performance optimizer tools that can help in boosting performance of this app?
What new tools are available for deployment of this app and make it seamless in user environments?
What are possible automation opportunities in this application?
Implementable Practices for Improving Collaboration
This stage is about people practices (inter-team and intra-team). Here we look at how people can collaborate better, share knowledge, and reduce gaps between teams and leverage each other’s expertise and experience with reference to the application in specific and IT systems in general. Examples of questions include:
What are the best practices that you can adopt from other teams?
How do you reduce/remove dependencies on individuals so that work does not suffer in their absence?
Are there any areas where work is unevenly distributed or getting held up due to inefficient processes?
This stage deals with regulatory requirements and industry standards with which the application must comply. It includes data security–related aspects as well. A simple example to be considered is the General Data Protection Regulation (GDPR) in the EU. The GDPR necessitates data pertaining to individuals belonging to the EU to stay within the EU. Likewise, there are industry-specific (such as oil and gas, banking, healthcare, etc.), as well as country or geo-specific standards and regulations that need to be considered by application teams. Here are a few examples of questions to reflect on:
What are the regulatory requirements that this application needs to meet?
What is the mechanism to track changes in industry standards and incorporate them in the design?
How is data security ensured and complied with?
Sharpen Ideas and Propose to Business
The five sections described above, along with sample questions, provide a high-level overview of the framework. It can be used to design a specific tool by adding more questions to each section specific to the application. Each team can run brainstorming sessions using the tool, capture inputs, and feed them into a central dashboard that integrates all ideas. Once inputs are captured from all constituent teams working on the same application, the next step is to group those ideas, prioritize them, and come up with a roadmap. It may be necessary to run several iterative discussions before arriving at a sharply defined, implementable innovation idea, but the effort is worthwhile because it is proactive and brings all the teams together under a shared objective.
Signoff and Implement
After sharing the benefits with business, the next step is to get sponsorship and signoff. Innovation ideas have to make sense to business leaders for them to invest money and resources in implementation.
In summary, collaborative innovation as an approach leverages collective wisdom available within large distributed teams, brings them under one virtual family, and produces proactive ideas that help the business to be ahead in the marketplace.