The idea for this blog entry came from a conversation I had the other week with another consultant in the company that I work for.  He was saying how he had used TDD for several projects and believed it just won't work in an enterprise wide project.  This surprised me since most of the articles I have read and podcasts I have listened to say that this is not the case.

You will hear various people say that agile methodologies can or can not work in an enterprise environment.  I believe it is true that agile methods lend themselves to smaller teams, but how can we make them work on a larger scale.  I was going to say that the solution should be called the Unified Process (similar to the Unified Theory some physicist are trying for), but that is already taken.

I think one thing we need to consider is combining multiple approaches of managing design and development when working on large scale systems.  One perspective would be that at the enterprise level where we need to ensure consistency.  This is where the architect lives.  I believe there needs to be an overarching view of the systems that are used to drive the company.  Applications need to be integrated and resources need to be coordinated so that redundancies can be extracted and leveraged.  I also think it is important to prescribe certain standards at this level.

The other perspective would be at the application level where we are building specific features for defined users.  Here agile methods would be applied to increase the quality of individual components.

Of course this is and idea that needs expanding on.  I will try to continue this theory in later post.