Understanding the business and technical reality of your software assets is imperative in order to align them with corporate priorities.
The ability to predict a body’s responses to environmental triggers can have significant therapeutic benefits. A researcher could analyze the “compliance” of your genes with standards to identify medical conditions that you are more likely to develop. For instance, you may carry a set of genes that are strongly associated with diabetes. Assessing this risk allows a doctor to prescribe a plan to minimize diabetes’ triggers.
This has a strong parallel with your business. Software automates the operations of every major organization. How your business responds to a customer demand or a competitive threat will be in large part determined by your applications’ “genetics.” That is, by the structure, logic and nature of your software assets.
Assessing Misalignments
Over time, these assets are refined and adapted to support shifts in business strategies. However, as complexities and pressures mount, this software tends to become misaligned with the goals of the business. Misalignment can be reflected in operational breakdowns, inflexibility, divergence from corporate standards and poorly allocated resources.
If these misalignments occurred in other asset categories, they would be quickly identified and corrected. For instance, an operations department would recognize excessive holdings of real estate or computer equipment. These assets might then be divested. In fact, every Fortune 500 company closely governs its physical assets to avoid gross misallocations of capital.
However, these same companies neglect to govern their operations in a similarly diligent fashion. Yet, few activities could be more important. Today’s competitive environment demands agility and efficiency. Businesses must ensure that the systems that “decide” for their business on a second-by-second basis actually execute as demanded.
Why Does It Matter?
The original business users, analysts and developers of your systems have often moved on to different roles — taking with them valuable insight into the structure and function of these systems. The constant evolution of these systems further complicates matters. New business processes are added, old ones discontinued and functionality modified. Often, business requirements were hurriedly resolved, leading to suboptimal code and processes and aberrations from intended standards and architectures.
However, these systems automate your company’s most critical operations. As a result, they cannot fall out of your control. This is important for multiple reasons:
- Improved governance and support for the business. To ensure that its operations are effective, organizations must establish standards. These policies balance needs such as security, efficiency, adaptability, compliance with regulations and support for business requirements, among others. However, as software ages, it often diverges from these standards, limiting its support for what matters most to your business.
These standards could be for a core-banking system to be consistently available to support client requests. Or the requirement could be for a claims processing system to be flexible enough to respond to a shifting regulatory regime. Weighing variances against the business value of the system and the risks of misalignment allows an organization to identify problems that could affect its profitability. The organization can then prescribe itself a treatment to realign software assets with business needs.
- Knowledge transfer between teams.Applications are often governed by shifting teams. New members are added, old members move on and applications are transferred between global teams. To avoid rework, slow work and disruptions, new team members must get “up to speed” quickly on the structure and function of their applications. However, documentation is seldom any help — as it has generally fallen so far out of date as to be irrelevant. This decline in business and technical knowledge can lead to rising cost and risk for change — a dangerous trend in today’s dynamic markets.
- Faster response to business initiatives (and reuse).Embedded within your existing applications is business logic that has been refined and adapted over the course of years or even decades. These competitive differentiators must be preserved and reused throughout the application portfolio. By identifying these elements, they can be adjusted more quickly. And by isolating them, they can be reused throughout the application portfolio. As a result, by understanding how the business behaves, you can more quickly adjust its behavior.
Understanding is also important because it enables you to act on the decisions made by management. Without a strong understanding of how your applications are structured and behave, it is difficult and risky to change. However, change is essential. If you want to ensure that your business can support new products, new ways of doing business, or other strategic initiatives, you must understand “where you stand.”
An Approach to Understanding
To address these challenges, and realign systems with business needs, you must understand how your software supports your business. This understanding should take two mutually supportive forms: business and technical understanding.
Understanding how software is structured is important to ensure that it can be modified rapidly. However, understanding how it supports the business is essential. That is, how aligned the software is with business standards and how it responds to “environmental triggers.”
Frameworks for Business Understanding
Establishing governance and management frameworks vastly improves your understanding of how your software supports your business. Doing so enables your team to identify where misalignments exist and determine priorities for rectifying these problems. Let’s look at the more critical frameworks:
- Business contexts. At the highest level, your organization governs its operations based on a series of business contexts. These contexts could stem from operational functions, like finance or claims processing. They could relate to business units like geographic regions, or external service providers. Or perhaps, general themes like security or regulatory compliance.
- Policy standards. What are the corporate requirements within each context? An organization may determine that uptime for the business function of claims processing is imperative. It should have an established set of protocols that must be adhered to in order to support this business need.
- Key performance indicators. How do you measure adherence to these standards? Clearly a set of metrics and benchmarks should be established to allow managers to spot and prioritize misalignments. Metrics should support key business goals based on the context of the measurement. For instance, architectural quality may be a key metric for measuring the flexibility of the core banking system.
Establishing business contexts enables your organization to focus on what matters most to the business. Therefore, organizations should map the contexts that are most meaningful onto their software asset portfolio. Doing so provides a scope for understanding, managing and governing applications to ensure that they conform to corporate priorities. It also limits unnecessary effort from being expended on analyzing or correcting deficiencies that are of limited importance to the business.
Technical Understanding of Software Assets
Application portfolios encompass a broad range of environments: from Cobol and PL/I (Programming Language One) to Visual Basic and Java. A business process may begin with an order entry on the web and end with processing on the mainframe. As a result, organizations must be able to assess diverse kinds of software. Commercially available tools can simplify this analysis process. However, organizations must be careful to select a solution that can analyze not only a broad array of environments, but also at a deep level.
Depth of analysis can take many forms. For instance, it could encompass visualizations of an application’s structure and flows of data and control within. It could mean the ability to probe an application to locate elements of interest — say, insecure or non-compliant structures. Organizations should look to solutions that can combine technical depth and breadth.
Technical understanding is made significantly more relevant by our earlier mapping of context onto our software assets. Now, users can focus technical analysis on areas that matter to the business. We can also abstract views from a technical level to a business level. This allows us to understand how software is architected to support business processes, and thus how processes are executed in reality. This enables us to more proactively adjust software assets to better address business requirements.
Critically, we can also better govern our assets by applying our corporate standards against these technical assets. Technical metrics regarding adherence to policies can be combined with data from other sources and filtered by context to identify misalignments that should be addressed. Managers, development professionals and other users can now invoke policies to uncover divergences from governance regime by business context.
Focused Business Understanding
One avenue to understanding could be to discover and organize the logic contained within your systems. Business rules, such as “approve 20 percent discount for gold customers,” control how your business behaves. Automated tools that uncover this logic exist on the market.
Once discovered, these rules should be documented and organized to reflect triggering relationships and order. This “rules repository” can help analysts to adapt, redevelop, or SOA (service-oriented architecture)-enable business processes — and for developers to understand how to change code to reflect altered business logic.
Uncovering logic across the entire software portfolio may be excessive. A more efficient approach is to identify priorities based on the contexts that have been placed onto the software assets, and proceeding to discover logic in those areas.
Prioritizing Actions
By understanding the genetics of your application portfolio, you are at a distinct advantage. You can better pinpoint where your operations have “mutated” away from corporate strategies or standards. Understanding allows you to prioritize actions that address these issues, to ensure a more responsive, lower risk and lower cost set of operations.
To do so requires that you take both a technical and a business-centric view into your applications. By combining the two views within governance frameworks, you can more quickly diagnose and correct misalignments between your business goals and operational reality of your software assets.
Charles Dickerson is senior vice president at Relativity Technologies, a provider of enterprise application modernization solutions. He has 20 years of product marketing and product management experience in the software industry.
Charles: Do you have any advice for small- and medium-sized businesses (SMBs) where these functions are typically overseen by either an outsourced IT consulting firm or a tiny in-house IT department? What’s most crucial for a network with 50-100 workstations and 2-3 servers?