Agile methodologies are transforming software development, enabling organizations to build software that delivers business value more efficiently than ever before. While development processes have evolved, those associated with enterprise architecture have not, creating challenges for many IT organizations.
"When we hear 'enterprise architecture' and 'Agile,' we expect to hear the sound in the background to be a car crash," said Archie Roboostoff, Borland Solutions portfolio director of Rockville, Md.-based enterprise software provider Micro Focus.
"What happens is you've usually got organizations that have been developing software in Waterfall format; they're now buying into the hype of Agile, and that's where things come off the rails," Roboostoff said. "A lot of times, the notion of Agile is much harder to put into practice because companies have big, bloated processes, and they're hard to overcome."
Enterprise architecture boils down to making sure an organization's systems harmoniously work together to meet business objectives while cutting expenses, according to Matt Brasier, head of consulting at Worcestershire, England-based consultancy C2B2 Consulting Ltd. "At the highest level, enterprise architecture is about understanding what you have in the organization, where you want to go and how you're going to get there."
Incorporating architecture into software development "is definitely a struggle," said Fred Albert, senior director of enterprise architecture at Mitchell, a San Diego, Calif.-based provider of property and casualty claims management solutions. "But it's not a new problem that has occurred because of the introduction of Agile. The role of architects historically can be interpreted as being disruptive or slowing down the progress of engineering teams because they're driving toward a bigger vision. I don't believe that has changed."
The development process, however, has changed. "Agile is all about establishing your project and building software in a way that deals with changing requirements," Brasier said. "This is necessary because the modern environment is changing rapidly, and if a project is more than a small toy project, you'll find that by the time you finish, the environment in which you started has changed -- consumers and users have different expectations. Where you started isn't where you need to be when you finished."
Evolution of Agile and enterprise architecture
Archie RoboostoffBorland Solutions portfolio director, Micro Focus
Enterprise architecture has changed gears over the years. "When we talk about historical enterprise architecture," Roboostoff said, "we're talking about companies who were developing Windows desktop applications, customer relationship management systems, those things that have always been in place and had a longer product delivery cycle."
Today, organizations are delivering mobile applications and the requirements are changing. "Developers need to deliver more, faster, and the enterprise architecture needs to change to facilitate that," Roboostoff said.
Some architects are making a natural transition into an Agile role. "Architecture is starting to do that, and it changes the way architects engage in projects," Brasier explained. "You move away from delivering architecture and design in the early phase of the project to a constant set of evolving decisions as you go forward, and you need to reevaluate decisions as requirements change so there's a lot more work."
Albert agrees. "Agile has created a situation where you're empowering self-managed teams to make decisions rapidly for productivity, and if architects aren't embedded in those teams, it can be disruptive and create a lot of work."
How Agile and enterprise architecture can butt heads
Systems can go awry if proper protocol isn't followed. "Nonfunctional requirements get left behind or aren't structured properly," Brasier said. "It leaves architectural decisions in the hands of the developers and people implementing the system who might not have the proper input from people with the high-level view of where the architecture wants to go."
There are other scenarios, too, that can cause Agile and enterprise architecture not to get along. "[Agile and architecture] can clash if there isn't tight alignment with the architectural movement and the product vision," Albert said. "If there are drivers, particularly time to market, those things as real business problems take a greater weight in the decision making than architectural guidelines."
The organization may, for example, plan on expanding its user base tenfold over the next five years. "That stuff gets lost, because the focus is on user-driven features rather than nonfunctional requirements," Brasier said.
Where Agile and enterprise architecture fit together is still something that is still being worked out. "We have not found anyone who has disagreed with the need to have this up-front leading vision of where the projects and architecture are going and what is intended," Albert said. "The trick is how to do that so it's not over engineered, but just enough so that Agile teams can keep moving at their rapid pace."