Sunday, April 10, 2005

Architecture Frameworks, how they relate to each other, and which one to use

· Extreme Programming: Managing change, fast, effectively... but wait!!
· SEI/CMM: Well planned processes, knowledge flows so well... at what cost?
· Zachman Framework: WYSIWYG for all participants... well almost!
· Model-driven architecture: Design and build separately... can it be done?
· Rational Unified Process: Develop in Stages, each role knows its roles and deliverables... do they!!

These frameworks are all well known and each come with their advantages and issues. So which one should you use?

There is no one correct answer. If there was the others would have vanished by now. So here are some tips to help you drive successful projects.

1. The reality is that you will use some combination of these frameworks for your projects.
2. The best idea is to make one framework as your primary basis, but take good practices from the other frameworks.
3. Different projects will have different needs, so some Frameworks will be less effective than others.
4. Keep the developers involved in the Architecture decisions, so the architecture principles are applied in the project!
5. Learn from Experience: Use the framework for a small application, to see if it translates well to the Organization's reality.
6. Diagrams are good, but nothing substitues the written text. Ensure that desciptions accompan y the design artifacts.
7. To some extent these frameworks address some different aspects of Software Architecture and development. CMM is repeatable process driven. RUP focuses on stages of Iterative software development. XP models good practices for Iterative projects. Zachman focuses on all project stages(concept to delivery) and artifacts applicable for different roles(Management, Business, Architect, developer). MDD Approaches modeling that separates the specification of system functionality from the specification of its implementation on a specific technology platform

Applications suited for the various frameworks(Q&A format):

1. I have an Application that is being developed by a Outsourcing Vendor. The Application has 3 phases, and will be built in 10 months. The Outsourcing vendor is based out of California, and has development facilities in California, India and China. Which framework is best suited for my Application? My first reaction will be that the Outsourcing Vendor already has a framework that they are using. The most applicable framework for this application is CMM, with some elements of RUP and Zachman. But Why CMM?
Well, firstly because the actual owers have the least amount of control over the day-to-day operations of the application. So the least they will require is a process that is well documented, so issues can be addressed early. Secondly, the application will take 9 months to build. Its enough time to forget most of the decisions that are made during inception.
Caution: Count some buffer for the overhead of building and reviewing the tons of documentation produced.
Tip: Carefully manage how much documentation you require, and how mature a process the Vendor has. I have seen many instances where vendors have a great CMM story on paper, but most of the artifacts they build are "Fluff".

2. I am building a website for my organization. They need to get something up very quickly, but want to extend the site to be a world-class site. So what should I use for this? Aha!! XP is your Nirvana. Get up to speed quickly. Build a set of key diagrams on white-board and paper, to support that World-class site (JUST ON PAPER FOR NOW :-)). Mkae sure you have that top-class architect(with some additional help from someone). Build for change. Caution: Be prepared to rebuild the first couple of Iterations of the project, and learn from the initial mistakes, to develop a modular, loosely coupled infrastructure that supports Change, Reusabilty and Iterative development.

3. We need to build a Workflow application that will change the way the organization does business. Today we have multiple applications that work independently, but don't interact with each other. Our employees are not the happiest users. Our customers are patient!! Help ? Use the 3 letter Acronym(RUP) or its matured brother (UP). Why? Firstly, the Plan, Prototype, Build(Iteratively) and Transition Cycles are most appropriate for this style of application. Secondly, RUP delivers a excellent framework of best practices for teams needing the right balance of control(of processes) and speed(of project development).

What about the other frameworks? Well, Zachman and MDA in my experience are "helper" framework(s) which give certain useful aspects for the project team. Zachman has some excellent concepts for the Scope and business stages of the application. These are visibly missing from RUP.
MDD concepts are critical in building Specifications and Products. They are also applied in building loosely coupled and extensible Applications.

In Summary, each Architecture Framework has strengths and weaknesses, and address different aspects of Architecture. Typically, use one framework as the basis for the project, and use applicable artifacts from the other frameworks.

1 Comments:

At 19/1/07 2:48 AM, Anonymous Anonymous said...

Iwebresources: Looking for some IT projects.


Interactive Web Resources is an outsourcing company focused on serving the needs of Small Medium & Large size Businesses in the U.K, Australia, U.S, Europe, Canada & English speaking countries.

Interactive Web Resources as your outsourcing partner help's you to increase your profits, reduce business risk and create breakout value with new services and revenue streams.

IT Out sourcing Is Our Business
We are a Delhi based IT out sourcing company. Providing quality IT related services have been our focus ever since May 2004. From web site designing to web support, we deliver cost effective and reliable systems.There is no doubt that IT out sourcing is a most effective way to stretch your budget.

Whether you need any type of IT related services we have what you need at prices you can afford At Interactive Web Resources, our goal is to provide you with courteous, expedient, professional service of the highest caliber. Browse our Web site for more information about Interactive Web Resources. At Interactive Web Resources, the customer always comes first. We serve you Better.

Our Focus
Our focus is to serve the most professionally managed Overseas companies / Leading IT Companies / MNC's and Any type of company, who demands IT related services of highest standard & wants to avail the same with a difference.

We provide professional services in: -
* Data Entry & Copy Writing
* Web Designing & Web Promotions
* Content Writing
* Graphic Designing
* E-Commerce Solutions
* Web Support
* 24/7 Live Support
* You Name A Service & We Render It.

Email: sharad@iwebresources.com
URL: http://www.iwebresources.com

 

Post a Comment

<< Home