IT Scene and Changing Trends from an Indian Perspective

Udayan Banerjee

Subscribe to Udayan Banerjee: eMailAlertsEmail Alerts
Get Udayan Banerjee: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Cloud Computing, Twitter on Ulitzer, Java Developer Magazine, Facebook on Ulitzer, Microsoft Developer, CIO/CTO Update

CIO/CTO Update: Article

Agile Development & Enterprise Architecture Practice – Can They Coexist?

Can organization do EA and Agile together?

Can an organization have an Enterprise Architecture practice and also implement Agile development methodologies?

Your reaction is probably one of the following:

  1. Why should it be a challenge?
  2. Co-existence would be impossible.
  3. There will be difficulties but it can be done.

Why should this be a challenge?
After all, EA is agnostic to software development methodologies. Irrespective of which EA definition is accepted, no direct link with any software development methodology exists. Therefore, you would argue, that there would be no conflict between any Enterprise Architecture practice and adoption of agile development methodology. (If you want a quick premier on what EA is then have a look at: A Comparison of the Top Four Enterprise-Architecture Methodologies).

If you are thinking along these lines then I think most Enterprise Architects will agree with you.

Co-existence would be impossible
EA and Agile comes from different mindset and different world view. The challenge of co-existence is nicely captured by Dave Nicolette. This is what he has to say about it (see this):

“…the mission, scope, tools, mentality, culture, and personality types of enterprise architects and agilists are so radically different …. not only is the nature of their work different, but the management styles, employment incentives, and career path options that work with one group don’t work with the other …”

In EA you start with a business goal and from the goal work out what needs to change (people, process, technology, application, data …). As the next step you spell out in complete detail, how the changed scenario will look like. This is to be followed by an implementation plan, execution of the plan and proper governance. The approach is top-down, structured and planned.

In Agile, though you have a business goal in sight, the approach is always evolutionary. You take one step at a time, delivering working solution and reorienting you plan as learning from that step. You create the environment for the team and empower them so that they can self-organize and be more productive.

If this was your answer then most agilists will agree with you.

There will be difficulties but it can be done
Since there happens to be a common ground – both EA and Agile believes that delivering business value is the key – it should be possible for them to co-exist. Not only can they co-exist, they can also complement each other. It is explained succinctly by Ronald van Luttikhuizen (see this):

“…enterprise architecture (top-down), works toward a long-range vision … (agile – bottom-up) addresses questions coming out of projects right now – questions that should be answered quickly … but if either the top-down or bottom-up architecture is missing, you’re not going to end up in the situation you want…”

As stated earlier, in EA you always start with a future business scenario work out what you need to do to achieve that. Similarly, the first two of the 12 principles of Agile Manifesto talks about “…delivery of valuable software…” and “…the customer’s competitive advantage…”.

If you are thinking like this then you are in the august company of Scot Ambler who is the Chief Methodologist for Agile and Lean within IBM Rational. Here is what he has to say (see this for detail)

“…when project teams work under the assumption that they can do anything that they want … chaos typically results … although each individual project may be very successful, as a portfolio they may have serious challenges…”

Now let me add a variant to this thought. I am sure I will invite the wrath of both enterprise architect community as well as the agile community for saying this but I think both EA and Agile have a UTOPIAN world view. In the real world you have to find a middle ground.

Neither emergence nor up-front design can be the right answer to all problems. A middle ground, a HYBRID approach is what is needed.

Imposed structure may be right in some situation; self-organizing team may perform better in other. It is important to be ADAPTABLE so that you can judge which way is better for a given team.

I am sure if you are a realist who understands the dynamics of a large enterprise, you will agree with me.

More Stories By Udayan Banerjee

Udayan Banerjee is CTO at NIIT Technologies Ltd, an IT industry veteran with more than 30 years' experience. He blogs at http://setandbma.wordpress.com.
The blog focuses on emerging technologies like cloud computing, mobile computing, social media aka web 2.0 etc. It also contains stuff about agile methodology and trends in architecture. It is a world view seen through the lens of a software service provider based out of Bangalore and serving clients across the world. The focus is mostly on...

  • Keep the hype out and project a realistic picture
  • Uncover trends not very apparent
  • Draw conclusion from real life experience
  • Point out fallacy & discrepancy when I see them
  • Talk about trends which I find interesting
Google