Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Amr Elssamadisy on Sep 05, 2007 06:00 AM
A report from the Cutter Consortium asks Are Agile Methods and Enterprise Architecture Compatible? and answers Yes, with Effort. The authors recommended specific techniques to allow Agile Methods and Enterprise Architecture to be mutually beneficial. Moreover, their observations, analysis, and recommendations are directly applicable to the meshing of Agile Methods and Service Oriented Architectures.
Enterprise Architecture (EA) and Agile Methods(AM) share the same goal - delivering software that aligns to business needs and responding to the inevitable change of those needs. EA and AM, however, go about attaining this goal in extremely different ways. In the report EA and AM are defined as follows:
EA deals with enterprise level issues such as:
Agile methods are concerned with the following ideas:
- Connecting business strategy to the IT system by providing an overall blueprint of the business process, which is mapped to architectural patterns, core services, and application capabilities
- Improving the consistency across the enterprise by maintaining an inventory of current data schemas, process flows, and service definitions
- Improving operational efficiencies by reducing redundancy between systems and identifying components and systems that can be consolidated
- Ensuring a flexible IT capability that can respond to changes in technology vendors and new/enhanced automation of business processes
- Supporting project costing and prioritization by maintaining an IT portfolio, current and target architectures, and a roadmap for the transition
- Providing a stable, reliable platform of infrastructure and common services for the ongoing operation and development of systems
- Improved efficiency by focusing on near-term issues that are developed with just enough capability to meet the current needs, allowing the design to emerge over time
- Improved manageability (project-visibility) by focusing on short, iterative development cycles that allow task completion to be meaningfully assessed
- Improved quality by providing a gestalt of processes that focus on extensive automated testing, addressing integration issues early and often, allowing multiple developers (hence broader experience) to work on the same code, and continuous feedback from the end user
- Improved maintainability (internal quality) by integrating into the above a continuous refactoring process
- Improved ability to handle change - whether it is a change in requirements, a clarifications, or a new prioritization of features - by incorporating customer feedback and planning into each iteration
- Improved communications through the use of implicit knowledge, shared team space, and a focus on a small part of the problem
The gap between EA and AM was then analyzed by examining AM from an EA perspective and vice versa. From an EA perspective:
From an AM perspective, EA doesn't quite make sense either:
The title of the report did say Yes, with Effort, so there is still hope, but both the EA group and the AM projects need to recognize each other's valuable contributions and make accommodations in the way their work. EA groups and AM teams can be of mutual benefit by:
InfoQ spoke with two of the authors of the report, Michael Rosen and Jim Watson, about the content of the article and their client-experiences that led to the recommended solutions. Jim Watson described the most common scenario:
Both Jim Watson and Michael Rosen told us that, with respect to the scope of this article, SOA can be seen as an instance of EA. Therefore, everything concerning the problems and solutions here are applicable to organizations adopting SOA that has existing AM teams. (Not surprisingly, there is considerable overlap between the InfoQ article SOA and Agile: Friends or Foes? )The experience of using both has largely been having a project that is using one and failing because of the lack of using the other. For example, an important document processing system can be developed with the best AM practices, but not be tuned into the EA needs of the system that span requirements, interfacing, operational issues, etc. Alternatively, a waterfall-ish project might have all of its EA ducks in a row, but not be able to show value to the customer early, or not be able to address risk issues through a means of iterations. So there the paper is mostly from the experiences of how did these projects get to the point where they ignored the other viable discipline, and what where the practical ways to fix it.
A more profound case would be starting a project with the balance of EA and AM….however, this turns out to be much harder and much less likely to occur, primarily because of the organizational issues and perspective of who is involved at which part of the process. You see this failure a lot when, for example, the architects write the requirements (with or, sadly, without the customers; but the development team is uninvolved), and then development team takes over with the architects AWOL.
The interaction of EA and AM does not depend on SOA, but it is worth noting that SOA provides some of the mutual interest and issues that allows for progress in using EA and AM together. For example, a project lead SOA initiative will probably have difficultly defining truly useful services at a business level; a EA lead SOA initiative without the benefit of AM development practices has produced lots of SOA shelfware because it is too hard to implement or only defines interfaces that are not truly needed.
One of the suggested solutions, that will stand out to an AM team is the inclusion of an Architect as a member of each team to act as a liaison to the EA group. When asked to clarify which type of architect was recommended, Architect Reloadus or Architect Oryzus (as defined by Martin Fowler in Who Needs an Architect? ), Michael Rosen suggested that neither is the case. In the largest organizations, those with significant EA groups, a typical IT group may have 20,000 employees with 500 architecturally significant projects and only 70 architects in the EA group. There are just not enough architects to go around so Architect Oryzus is not applicable. Architect Reloadus cannot work either because they cannot have enough context to be effective. An effective use of an architect is as a consultant to the individual AM teams. Therefore an architect, from the EA group, can be effective without being embedded in the teams.
So, in the end, for organizations that have both EA groups and AM teams it is not enough to live and let live. Although they have the same goals, their default mode of operations are at odds and can (and usually do) cause problems. Therefore these practices and others are useful to meet strategic enterprise goals and still deliver tactical software projects.
The full twenty-five page report can be downloaded from the Cutter site. Be sure to use the promotion code at the bottom of the page.
5 Ways to Ensure Application Performance
Open Source Middleware Reference Architecture Whitepaper
Open Sesame: Open Source Solutions for BI and Data Gain Acceptance
Would you enroll in an India Forex Group i.e http://www.indiaforex.com Groups?
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
1 comment
Watch Thread Reply