Manage Learn to apply best practices and optimize your operations.

Building smarter, faster systems for real-time benefits

By providing a right-now picture of the business environment, agile systems can provide organizations with true competitive advantage.

This article can also be found in the Premium Editorial Download: Business Agility Insights: BPMN 2.0: Assessing a year of change

The ability to respond faster to market changes has always been an imperative in a competitive marketplace. Today’s businesses have the advantage of technology to help deliver real-time information and automate processes—both keys to true business agility. However, IT systems themselves must also be smarter and faster, and the pressure is on IT to deliver.

“Business agility is the capability to adjust how the business works in response to change in the environment, such as customer needs, competitors’ actions and things that happen within the company itself,” said W. Roy Schulte, a vice president and distinguished analyst for Gartner Inc.

He defines two types of agility: process agility and instance agility. “Process agility is being able to change something in a business process because the process doesn’t work right,” Schulte said. Instance agility means that “you can change each instance of the business process, but the process doesn’t change.” An example of instance agility is in an automobile assembly line in which each car is different from the one before it. “You want both kinds of agility,” Schulte said.

Agility enables businesses to gain a competitive advantage, which translates to profitability. Agile systems architect Michael Hugos defines agility as “the ability for a company to earn the agility dividend. That dividend is to consistently earn 2% to 4% higher gross profits than the industry averages in their line of work,” he said.

“My feeling about agility is that it’s not about doing complex things fast,” said Hugos, principal at the Center for Systems Innovation and the author of books on agility, supply chain management and other IT topics. “It’s about doing simple things well. And agility isn’t necessarily ramming around at supersonic speed all day either. It just means you’re more responsive—and slightly more profitable—than your competitor.”

The role of systems in business agility

An organization’s ability to achieve the agility dividend depends in large part on the agility of its IT systems. “Since the level of automation in most enterprises is only increasing, almost every business change will lead to a change in the application landscape,” said Johan den Haan, CTO of Mendix, a provider of Platform as a Service (PaaS) software. “Hence, the role of IT is an important factor in enabling business agility. An enterprise needs apps that perfectly fit in the business.”

Often the systems that companies view as most important for supporting agility are those that deliver real-time information. “Real-time, in a general sense, means something that happens pretty much now or immediately,” Schulte said.

The real definition hinges on the answer to this question: “When something changes in the environment, are you able to respond to it quickly?”

Of course, being able to access information immediately—or at least as quickly as possible—was crucial for businesses even before computers existed. The faster you can detect that something has changed—say, a competitor has lowered its prices or a delivery truck has broken down—the faster you can react and the more you can optimize your response. In other words, real-time access to information gives your business a better chance of limiting the risk of a negative change and exploiting the benefits of a positive one, Schulte said.

That need for the ability to react swiftly to business changes typically requires modifying, or transforming, the underlying systems. “To be agile, you have to adjust what people do but also what the systems do as part of those processes,” Schulte said.

The availability of real-time data also drives further change in IT systems. “The fulfillment of the need for real-time data almost always results in more needs,” Haan said. “As people or systems learn from this data, new data is needed to further clarify things or to fulfill new requests. This process will happen at an ever-increasing speed. Software systems will need to adapt to be able to deliver all this data,” he said.

Characteristics of an agile system

What does an agile system look like? It’s inherently flexible. “It should be reusable and have adjustments built into it so that it doesn’t have to be reprogrammed for instance agility,” Schulte said.

“These apps need to have a short time to-market and have to be flexible to evolve along with the business,” Haan said. “This means the full lifecycle of an application—from the initial idea to first deployment and from that first deployment to long-term evolution—needs to be as agile as possible.” Among the critical components required for agility:

“Short feedback cycles and close collaboration with all stakeholders within a software project,” Haan said.

Agile systems are actually quite simple. “Complexity is a trap,” Hugos said. “In a world that is constantly changing, [complex systems] become harder and harder to change. If you come up with these kludgy systems, you’re toast. You’ll never catch up. You might keep up for the first six months, but after that the system’s a boat anchor,” he said.

“Your goal is elegant simplicity. If the systems exhibit elegant simplicity—and to some degree that’s in the eye of the beholder—then you’re on the right track. It should look beautiful, almost literally, with good systems architecture and good algorithms,” Hugos said.

How to build agile systems

The next logical question is how to build these inherently flexible and elegantly simple systems. “The only way to keep up with a fast-changing environment is to use an agile development approach. Again, this means a focus on working software, short feedback cycles, and close collaboration with all stakeholders,” Haan said.

One agile development approach that Haan recommends is model-driven development. “We need to change the way we develop software to be able to be agile,” he said. “Real short-feedback cycles are only possible if we can deliver more software value in a short time. In my opinion, we need to move to a model driven development approach to software development to keep up with the pace of change requested from the business,” Haan said.

Using Agile development methods alone to build a system won’t make a system agile. “We need to focus on the full application lifecycle, not just the development part of it. We need a smart way to capture requirements, harvest ideas and define iterations,” Haan said. “We need to involve stakeholders in this process. We need to capture their conversations, listen to their ideas and respond to their feedback,” he said.

Schulte also emphasized the importance of engaging the business during the requirements-gathering process, especially when meeting the need for real time information. When you’re collecting business requirements on what a system should do, one primary consideration should be how fast the system should do what’s needed. Business analysts should ask users, “In an ideal world, how fast should this happen?” Schulte said. “It’s about getting the right information to the right people at the right time,” Schulte said.

Design considerations

Certain design patterns are particularly useful for building systems that act faster, Schulte said. Straight-through processing automates all steps in the system so that users don’t have to be involved, he said. In many organizations, some functions such as order entry require user involvement to complete.

For example, an online order may be captured online by a Web system, but a person may need to rekey the data into another system. Or the process may require someone to view and take action on the order. “Take people out of the loop so that you can write it into the application, or use a rule engine to implement the policies that a person would have implemented,” Schulte said.
Another road to faster systems is running processes as they’re needed, rather than batching them. “Continuous feeding is a basic principle in straight-through processing, and it speeds things up,” Schulte said. He recommended defaulting to real-time processing unless you really need to do it in a batch—if, for example, you are waiting for information from another company.


About the Author

Crystal Bedell is a freelance writer specializing in technology coverage. She can be reached at cbedell@bedellcommunications.com.

This was last published in April 2012

Dig Deeper on Business process modeling and design

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

-ADS BY GOOGLE

SearchSoftwareQuality

SearchCloudApplications

SearchAWS

TheServerSide.com

SearchWinDevelopment

DevOpsAgenda

Close