We have 5096 guests and 6 members online

Video Spotlight

Home > Articles > Columns > Featured Books > FEATURED BOOK: Agile Software Development, The Cooperative Game by Alistair Cockburn

FEATURED BOOK: Agile Software Development, The Cooperative Game by Alistair Cockburn

E-mail
Written by Liz Barnett   
Monday, 13 November 2006 03:39

lbbookreview1106-1

I have always found Alistair Cockburn's Crystal family of agile methodologies to be among the most pragmatic approaches to software development. [1] Cockburn advocates that teams should adopt a specific instance of a methodology based on risk and scale factors for their projects. In the second edition to his book, Agile Software Development (with new subtitle "The Cooperative Game"), Cockburn updates his ideas on software development, with particular emphasis on "the cooperative game of invention and communication."

The first three chapters of the book discuss theories for treating software development as a cooperative game of delivering software and then setting up for the following game; considering "funky" people and the ways that they contribute to project success; and the costs and benefits associated with team communication. Cockburn's anecdotes clearly bring home his recommendations that organizations need to improve the flow of information and the cultural barriers among teams and their members.

In chapter four, Cockburn presents seven principles that he feels are important to designing and evaluating methodologies, and the resulting consequences:

  1. Interactive, face-to-face communication is the cheapest and fastest channel for exchanging information.

  2. Excess methodology weight is costly.

  3. Larger teams need heavier methodologies.

  4. Greater ceremony is appropriate for projects with greater criticality.

  5. Increasing feedback and communication reduces the need for intermediate deliverables.

  6. Discipline, skills, and understanding counter process, formality, and documentation.

  7. Efficiency is expendable in non-bottleneck activities.

One of the most interesting concepts in the book (chapter 5) is the discussion about "becoming self-adapting." This lies at the core of a successful agile project: the ability to recognize and reflect upon what your team is doing and adapt to improve success for future (and likely different) projects. Cockburn provides a framework for teams to determine how agile they are, to introduce agile processes into an organization, and to use agile approaches outside software development, such as for project portfolio management, customer relations, and contracts.

Cockburn concludes the book by demonstrating how his family of Crystal Methodologies address these needs of communication, people-centric project teams, and the need for multiple approaches to different project requirements. By using examples from projects that have implemented Crystal Clear, Crystal Orange, and Crystal Orange Web methodologies, Cockburn shares how projects have addressed challenges of business-criticality, large team sizes, and lack of experienced staff.

No single process will satisfy the needs of an organization's project portfolio. Individual project teams will always need to tailor a process to fit specific project criteria. That said, teams within a development organization must try to achieve some level of consistency of terminology, metrics, and approaches across projects, if they are to remain productive resources to the company. Regardless of the specific Agile process that you choose, Cockburn's Crystal framework presents a useful model from which to tailor your process, while maintaining some consistency across all projects.


[1] For more information on the Crystal Family of Methodologies, see http://alistair.cockburn.us/index.php/Crystal_methodologies_main_foyer.

Comments (0)Add Comment


Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Tuesday, 10 November 2009 10:42
 

Agile Marketplace - Announcements and Special Offers

Webcast:  Moving Build and Code Quality Upstream
This interactive panel discussion moderated by Bob Aiello, Editor-in-Chief fo the CM Journal brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.
Register Now!

Collabnet -TeamForge 5.3
CollabNet TeamForge 5.3 includes Dynamic Planning—providing flexibility to model release scope and timeline in a single view. Now, you can easily manipulate/adjust release data.
Download Your Free Trial

Requirements-based testing (RBT) can help to ensure comprehensive test coverage, reducing the risk of failure and improving software quality. This white paper details how application lifecycle management can be used to more effectively implement RBT processes, offering greater collaboration, traceability and control.can help you increase efficiency, reduce project risk, and improve overall software quality. Learn how MKS Integrity for application lifecycle management enables RBT, delivering full lifecycle traceability to help ensure that project requirements have complete test planning and execution coverage.
Download the Requirements-Based Testing whitepaper

PureCM –SCM for Agile Teams
PureCM helps you to manage development in short iterations: keeping track of changes, supporting automated builds and preserving frequent snapshots of your projects.
Get the free trial now