CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

David Hayden [MVP C#]

         .NET Tutorials, Patterns, and Practices

Objections to Agile Development White Paper Rocks!

I had a chance to read the Objections to Agile Development White Paper by Jim Highsmith, and it is absolutely awesome.  Below are just a few of the points I found interesting:

 

On Ad Hoc Development

Jim coins a new term for me, called Ad Hoc Development, which is essentially the practice by some developers to get out of all design, documentation, modeling, etc. and label it Agile Development.

“There is still a contingent of people who believe that agile development is an excuse to be ad hoc and undisciplined. However, technical excellence is a tenet of all agile approaches. When a code base has automated tests, is refined to maintain quality as the project proceeds, is continuously integrated, and so on, it is very difficult to label the results as poor quality.“ - Jim Highsmith

 

On Architectural and Design Excellence

“Agile approaches actually encourage — in fact, demand — architectural and design excellence. Technical excellence is a fundamental principle of agile development. Technical excellence is obtained through the application of four key practices: ruthless testing, refactoring, simple design, and continuous integration. These four practices work together to ensure that the design is always simple, robust, and adaptable; that the code is constantly of high quality because of extensive automated testing; that the designs are constantly upgraded through refactoring as new functionality is added; and that the entire system is constantly integrated and reviewed by customers and technical staffs. All software goes though these cycles; agile developers just do them constantly in short iterations. These cycle practices keep the cost of change (iteration cost) down, in turn allowing emergent design processes to work effectively.“ - Jim Highsmith

 

On Iterative Design

“Iterative design (or architecture) therefore isn’t lack of design, it’s different design — and, in fact, iterative design often yields much better designs because the designs are subjected to reality testing and copious feedback. The key to this design approach is low-cost iteration, which agile software development strives for.” - Jim Highsmith

 

On Documentation

“Agile methods advocate simple, effective, low-ceremony, barely sufficient, less-formal documentation — but that’s a far cry from no documentation. Maybe some people don’t consider story cards, whiteboard sketches, or flipchart drawings to be documentation. If so, they are missing the essence of what documentation can accomplish.” - Jim Highsmith

“I’ve never met a manager who didn’t profess the need for documentation for maintenance and enhancements, and I’ve never talked to a programmer who used much more than the existing code. That doesn’t mean that some high-level documentation isn’t useful; it just means that most organizations have been very ineffective with the money they have spent on documentation.” - Jim Highsmith

 

On Modeling

“Agile developers aren’t antimodeling, but they are anticompliance modeling. Modeling that directly contributes to delivering working software will be used by agile developers.“ - Jim Highsmith

 

Conclusion

Phenomenal white paper.  Download it here.  Thanks, Jim.

 

Additional Resources

 

DrinkingGreen Peony Green Tea

Listening To: It's My Life by No Doubt

 



Check out Devlicio.us!

This Blog

Syndication

News

CodeBetter.Com Home