BPM & Enterprise Architecture
Building agile systems: Strive for simplicity, transparency
By Crystal Bedell, ebizQ Contributor
Agile systems may sound complicated, but the best ones are actually quite streamlined, experts say.
“If your systems exhibit elegant simplicity—and to some degree that’s in the eye of the beholder—then you’re on the right track,” says Michael Hugos
, an agile systems architect, principal at the Center for Systems Innovation
and the author of books on agility and other business IT topics. “It should look beautiful, almost literally, with good systems architecture and good algorithms.”
So what should business and IT professionals keep in mind as they plan 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,” says Johan den Haan, CTO of Mendix
, a provider of Platform as a Service (PaaS
) software. “This means a focus on working software, short feedback cycles, and close collaboration with all stakeholders.”
AGILE SYSTEMS: DEVELOPMENT OPTIONS
One agile development approach to consider: model-driven development. “We need to change the way we develop software to be able to be agile,” Haan says. “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.”
Of course, using Agile development
methods to build a system won’t, in itself, 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 says. “We need to involve stakeholders in this process. We need to capture their conversations, listen to their ideas and respond to their feedback.”
AGILE SYSTEMS: BUSINESS BUY-IN; DESIGN CONSIDERATIONS
W. Roy Schulte
, a Gartner Inc. vice president and distinguished analyst, also emphasizes the importance of engaging the business during the requirements-gathering process, especially when meeting the need for real-time information. When collecting business requirements on what a system should do, he says, 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 says. “It’s about getting the right information to the right people at the right time,” he says.
Certain design patterns are particularly useful for building systems that act faster, Schulte says. Straight-through processing automates all steps in the system so that users don’t have to be involved, he says
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 recommends.
Another road to faster systems: 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 explains. He recommends 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.
TRUE AGILITY REQUIRES TRANSPARENCY
Transparency is certainly a crucial component for agile business, Hugos says.
He offers an example from his own experience working for a paper-product company that maintained a long-term relationship with the Starbucks coffee chain, despite charging prices that were 2% above the market rate.
Hugos was on a team that helped build a scorecard system measuring his company’s performance
in terms of the accuracy of orders delivered. “To get a perfect order rate above 85% is extremely difficult in distribution and wholesale,” explains Hugos. “You have to do everything right or you just can’t win.” That includes sending a complete, accurate order, delivering it on time with no damaged goods and billing for it correctly.
The paper-goods company promised Starbucks a perfect order rate (POR) in the mid-90s level. By providing transparency into its failures and successes, the company was able to meet that service level agreement. Managers made the POR information available to both Starbucks and the company’s own business operating units to see how they stacked up against each other, Hugos says. That move generated a certain amount of peer pressure and healthy competition, which he says drove employees to work harder.
Similarly, Hugos’ team put in a system that compared the customer’s purchase order, the advance ship notice and the invoice. When all three elements match, you have the perfect order, explains Hugos. But, he adds: “It’s surprising how many times they don’t match.”
Hugos’ team established a real-time system that constantly matched those three items, flagging any combinations that included exceptions. That approach allowed the company’s employees to proactively alert Starbucks that, for instance, an incomplete shipment had been sent, but that they’d already resolved the problem and arranged to send the remaining items.
That capability ensured the company's success. "It was because we were agile,” Hugos says. “The notion is that in business agility, you’re continuously responding to your customers. And by that, I mean on a day-to-day, week-to-week, month-to-month basis—not just once a year.”
Do you consider your systems "inherently flexible and elegantly simple?" If so, can you share a few development tips for others interested in following suit? If not, what other steps or approaches have you taken to improve business agility? Contact ebizQ Site Editor Anne Stuart at firstname.lastname@example.org.