Home arrow News arrow Articles arrow A Framework for Agile
A Framework for Agile PDF Print E-mail
User Rating: / 2
PoorBest 
Written by Bob Aiello   
Tuesday, 10 June 2008
june08frameworkbigThis month I had the opportunity to teach a class at a government contractor on the West Coast.These folks were responsible for writing mission critical software that had to work correctly or else very bad things could happen. I quickly saw that the class was composed of bright and experienced software engineers who worked through about four and half days material in less than three days. We even had time to talk about CM patterns and release management.  With such a great class, I naturally asked them if they were using Agile practices. They were not. I spoke about the benefits of continuous integration which was well received but overall they were used to a very disciplined software development framework that was most definitely not Agile. What frustrated me most is that I did not have a solid framework to point them to in order to really get them interested in Agile.

Why do we need a framework?
Last month I suggested that one way to meet the need for a comprehensive framework is to use existing standards and frameworks - for example mapping and harmonizing Agile practices into the well thought out IEEE 12207 life cycle standard. I have been including Agile practices in a framework that I am writing for a Quality Management effort and I certainly see value in that approach. It's true that Agile has its own way of thinking and approaching software development and that has many benefits for successful development efforts. It's also true that developers need a better place to start in their quest to understand what Agile is all about. I propose that Agile needs a comprehensive framework that can aid as a tool in its adoption and use by development teams. That may mean that the extra documentation may run counter to the Agile approach, but Agile needs to mature into its rightful position in the Software Development world and right now it is just too hard for the average developer or software manager to really understand and manage the entire Agile approach to development.

How do other frameworks approach this?
I am also knee deep in studying and applying both ISACA Cobit 4.1 and ITIL v3. The Cobit 4.1 framework uses a simple structure to organize 34 controls:
  1. Plan and Organize
  2. Acquire and Implement
  3. Deliver and Support
  4. Monitor and Evaluate
The ITIL v3 framework is organized into:
  1. Service Strategy
  2. Service Design
  3. Service Transition
  4. Service Operation
  5. Continual Service Improvement

Most of the CM and Release Management practices are in the Service Transition volume, but the entire framework is needed if you are going to implement the extremely popular Configuration Management Database (CMDB). There is a lot of reading material to wade through in ITIL v 3 although it is very accessible and easy to understand. Whenever I take a deep dive it is easy to step back and see where I am in relation to the overall model. I don’t have that same experience when I read Agile.

Alistair Cockburn does talk about methodologies in his text entitled “Agile Software Development – The Cooperative Game”. He also refers to methodologies as a straight jacket that people choose to use. Dr. Cockburn talks about the size of the methodology and the amount of “ceremony” – which is an indication of the rigidity of the process. “The amount of ceremony in a methodology depends on how life critical the system will be and on the fears and wishes of the methodology author..”, p. 157.

A framework would, of course, operate at a slightly higher level with the value of providing one-stop shopping to be able to understand and select the best methodology based upon the application team requirements and intrinsic characteristics.

Organizing Agile practices into a comprehensive framework
I would like to suggest that the Agile community needs to organize Agile practices into a comprehensive framework that can help make Agile wisdom more accessible to developers and development managers who would like to adopt Agile practices and, of course, become more Agile in the process. One way to do this would be to start with a Waterfall life cycle and simply show how Agile practices map to each stage. I suspect that there are better ways to represent this and I invite our readers to send me their own suggestions on how this could be approached.  One area that I would like to start with is looking at how to map requirements management.

Requirements should be "right-sized" based upon risk. It is just not enough to say that we value working software over volumes of out-of-date documentation. Sure we all agree with this principle, but still the missile guided software or the real time trading system still needs documentation AND we also need the software to work. Rightsizing the documentation, based upon risk, might very well be the best approach to deciding just how much documentation is needed. Test Driven Development can also help by producing some Test Scripts that can be used to document requirements as well. I have always advocated that every defect reported should always result in a new test case being written and that is implicitly useful requirements documentation.

Agile is here to stay and continues to provide wisdom and best practices that can help improve any software development effort. Developing a comprehensive framework would improve accessibility and speed adoption - while still allowing Agile to maintain its core character and value! I would love to hear your input on how this effort could be approached!


About the Author

Bob Aiello is the Editor-in-Chief for CM Crossroads and an independent consultant specializing in Software Process Improvement including Software Configuration and Release Management. Mr. Aiello has over 25 years experience as a technical manager in several top NYC Financial Services firms where he had had company-wide responsibility for CM, often providing hands-on technical support for enterprise Source Code Management tools, SOX/Cobit compliance, build engineering, continuous integration and automated application deployment. Bob is a long standing member of the Steering Committee of the NYC Software Process Improvement Network (CitySPIN), where he serves as the chair of the CM SIG. Mr. Aiello holds a Masters in Industrial Psychology from NYU and a B.S. in Computer Science and Math from Hofstra University. You may contact Mr. Aiello at This e-mail address is being protected from spam bots, you need JavaScript enabled to view it   or link with him at http://www.linkedin.com/in/bobaiello.

Comments (5)add feed
steveatootac: ...
I like the tohoughts, BUT.
Firstly, mention is made of TDD (which I assume means Test-Driven Development; if it doesn't, ignore the next couple of sentences and read on; sort of Agile really!) in the 'same breath' as XP, DSDM and Scrum. TDD is NOT a method or framework or a methodology; it is 'just' a technique (albeit an extremely important one).

So to Agile Frameworks. What do we actually mean by 'framework'? In physical terms it is a 'skeleton' that we 'cover in something'; that something may be different using the same framework ie a timber-framed house could be covered by more timber or brick to make the outside walls and plasterboard or plywood for the inner walls. Similarly we may produce a wire framework in a recognisable shape to grow a bush around and 'train' to the shape (topiary).
But what does framework mean in terms of software development? Is the waterfall 'process' of create Requirements Spec then create Functional Spec then create Design Spec then create Source Code then Test really just a framework that we hang the different detail of these 'documents' on?
Or is the framework a toolbox of techniques that we pick and choose from depending on the project needs?
I think that it would be v difficult to map Agile to Waterfall and come up with anything meaningful
I use and teach a 'generic' Agile lifecycle applicable at all levels of timeboxing that applies to DSDM, Scrum, XP, Lean and FDD along with a toolbox of techniques drawn from all the 'named' 'methods' (which I consider to be frameworks not methods); my generic lifecycle/toolbox also includes governance aspects (something that all ut DSDM ignore!).
I have pondered the idea of 'publishing' these ideas but I think that even if it was taken on, some groups would do it the XP way, some the DSDM way and it could be used in a waterfall way; there would then emerge different 'flavours' of the Framework which someone would name and we would probably be back where we are!
I think the main problem facing Agile at he moment is the 'richness' of the vocabulary; using the same word to mean different things and different words to mean the same thing ie Increment, Iteration and Sprint all mean 'the time during which high-level requirements are developed into working software'. A move to a common vocabulary would be a good first start toward common understanding
1

August 21, 2008
Murray: ...
I think an agile process framework would be great and I would be happy to contribute to developing it if there isn't one. IF there is one please point me to it!

I suggest one of the keys to success is an agile process tailoring process. So that the agile framework can be used as is or tailored for needs.

2

June 23, 2008
RT Carpenter: ...
Bob, I think one way you could achieve your goal of establishing a consolidated framework might be by defining "discovery paths" through the available Agile content suich as TDD, DSDM, XP.
Each practitioner will approach the learning curve based on relating new information to what they already know. So, a framework that starts with "choose your current discpline", and then "choose your current methodology and toolset(s)" can lead the reader through a series of comparison exercises based on the (standard) activites and tasks they already perform and how they are differnet in a given Agile methodology.
You know what I mean... statements like "today when want to accomplish "X" you do "Y"; if you were using XP, instead you would do "Z". Now, it's an oversimplificaiton, because there is no 1-to-1 mapping. But it is a way to gain perspective on the differences.
At a higher level, maybe you could use a similar context-oriented approach by identifying the "goals - stragey - tactics" inherent in the way the established standards address the concerns of software production and usage, and for each, provide a comparison to how a given agile methodology will identify the "goasl - strategies - tactics". For example, to address the requiremetn compliance concer, a traditional approach will use a tracability matrix. But an Agile approach will use a story with prioritized features.
I know what you mean about the struggle... The Cobit, ITIL, IEEE, ISO, make things seem so clear; But I would have to say that the lifecycle model itself is now a bit dated; IMHO systems are viewed in Agile more as organic entities with a very long lifecycle rather than phased, closed-end products.
Fundamentally it's a problem of comfort zones... People I have worked with who are trained in the structured methodologies just cannot mentally accept that not all requirements will be defined before the work starts, or that defining some elements of the architecture will be deferred to later iterations. Again, one relly has to go through a project to understand how these things are "finessed".
Personally, I have found that the Sashimi model is the most effective transitional methodology for helping people bridge that gap and gain some confidence that there really is a methodology there, not just "wishful thinking"!
I'll be interested to see what you come up with. I know there are some of these structured Agile Frameworks out there, but unfortunately it seems like many of them are minor adaptations to the tradiotinal SDLC rather than frameworks in their own right.
3

June 14, 2008
BobAiello: ...
You make a really good point here and when I wrote this article I really struggled with how to present the idea of a consolidated framework for Agile. My point is that development managers need help in figuring out whether their project would benefit from XP or Scrum or DSDM or TDD. With other frameworks (e.g. Cobit 4.1 and ITIL v3) - I have a place to start and I also have a lifecycle that is simply an aide to understanding the material. I would like to see the Agile Journal foster a way for technology professionals to come learn about Agile practices. I am certainly not an expert in Agile. I am an expert in CM and overall process improvement. So I value your input in seeing how we can add value by providing the tools and process we need in order to spread the wisdom of Agile best practices!
4

June 13, 2008
RT Carpenter: ...
Rob, please consider that "Agile" (slippery a term as it is) is fundamentally an attempt to liberate human problem-solving creativity from the constraints implicit in a structured process methodology which, of necessity, will isolate the concerns of distinct disciplines.
The fundamental flaw is this: Advancements in software development tooling will always compress the disciplines closer together. For example, consider unit testing frameworks, or "FIT". The antecedent, non-integrated processes, activities, and tasks are of course still relevent. This history and it's accumulated expertise informs the creational act of establishing tests and tests frameworks. This is "Moore's law" applied to I.T.: value will always beincreased by integrating manual practices and skills into tools which automate such activities and tasks.

The ultimate evolution of software tooling will be for one well-informed person who understands the system objective and requirements to perform actions using tools that will simultaneously instantiate test cases, code, deployment, and verification mechanisms.

All that is to say, that any attempt to reconcile traditional and agile methodologies in a documentation format will have very short-lived value, because the clever folks writing tools will always be one step ahead of the analysts observing the evolving use of tools and practices.

I'm not saying the exercise has no value - as you point out, communicating meaningfully between groups that speak different "method lanugages" is essential to maintain a coherent industry. My point is that this communicaiton is more of a practial matter of "seeing and doing" to gain understanding. An analyst translating method terminology into verbiage, and then the act of a reader interpreting a document loses so much of the essential nature of the practices that it's a very difficult task indeed.

Changing the way one thinks requires that one change the actions one performs... I'ts like Montessori... you have to invoke "cell-memory" to transform the individual's perspective and cultivate deep knowledge.

I guess I;m suggesting more of a workshop format than a document.
5

June 13, 2008
Write comment


Write the displayed characters


busy
Tags:
Click to add your tags...,
 
< Prev   Next >






Lost Password?
No account yet? Register

Video News

 
Copyright © 2006 - 2008 CMC Media, Inc. All rights reserved. All marks are trademarks of CMC Media Reproduction in whole or in part in any form or medium without the express written permission of CMC Media, Inc. is prohibited  
 
 CM Yellow Pages | ALM Expo | CM Today | Configuration Management Journal | CM Crossroads