Join Books.org — it's free

Programming Methodology, General Software Engineering
Agile Software Development by Alistair Cockburn — book cover

Agile Software Development

by Alistair Cockburn
Write a review
Log in to track your reading progress.

Overview

"Coming of age for software developers means understanding that software is a cooperative effort, not something individuals do in isolation. This is a book that teams of software developers can thrive upon, full of sensible advice for a cooperative development approach."

--Tom DeMarco, The Atlantic Systems Guild

Software development paradigms are shifting. The development group's "team" ability, and the effects of the individual developer, become more important as organizations recognize that the traditional approach of increasing process pressure and overworking team members is not meeting getting the job done. The pioneers of Agile methodologies question the preconceived processes within which development teams work. Rather than adding to the burden of the individual developer, Agile asks "how can we change the process so that the team is more productive, while also improving quality?" The answer is in learning to play the "game."

Written for developers and project managers, Agile Software Development compares software development to a game. Team members play the game knowing that the ultimate goal is to win--always remembering what they have learned along the way, and always keeping in mind that they will never play the same way twice. Players must keep an open mind to different methodologies, and focus on the goal of developing quality software in a short cycle time.

Based on a decade's work and research, and interviews with software project teams, this book presents sound advice for bringing difficult projects to successful conclusion with a minimum of stress. It includes advice on:

  • The principals behind agilemethodologies
  • Which methodologies fit different projects--including appendixes to select the appropriate methodology on a project
  • New vocabulary for describing methodologies
  • Just-in-time methodology tuning
  • Managing the incompleteness of communication
  • Continuous methodology reinvention
  • The manifesto for agile software development

Today's software developers need to recognize that they have a number of methodologies to choose from. With this book as a guide, they can break free of nonproductive habits, move beyond old routines, and clear a new path to success.

About the Author, Alistair Cockburn

Alistair Cockburn is a recognized expert on use cases. He is consulting fellow at Humans and Technology, where he is responsible for helping clients succeed with object-oriented projects. He has more than twenty years of experience leading projects in hardware and software development in insurance, retail, and e-commerce companies and in large organizations such as the Central Bank of Norway and IBM.



0201699699AB07302002

Reviews

There are no reviews yet. Log in to write one.

Editorials

From Barnes & Noble

The Barnes & Noble Review
Today's most thoughtful programmers are engaged in some pretty deep thinking about software development nowadays. On first glance, some of it looks awfully abstract (but then, that's how most of us reacted to objects and patterns, first time we encountered them). On second glance, this stuff isn't "merely" profound: It can help you get your job done a whole lot better -- starting right now.

Take, for example, Agile Software Development by Alistair Cockburn, the codeveloper of IBM's first object-oriented methodology and creator of the well-respected Crystal family of methodologies. Cockburn, who's interviewed more real-life developers than just about anyone, begins this book about as abstractly as you can get: by proving the impossibility of accurate communication between human beings. (A category that even includes software customers, developers, and the writers of requirement specs!)

If we can't communicate, how can we build software that meets our goals? By "managing the incompleteness of communication." And by considering development as "a cooperative game of invention and communication." What, Cockburn asks, would software development be like if we weren't developing software? Maybe it would be like a community attempting to write epic poetry together: a team made up of both temperamental geniuses and average workers, facing difficult requirements, communications, and synchronization pressures. Or, perhaps, it would resemble a cooperative team of rock climbers facing real danger with limited resources, a careful plan, the flexibility to improvise, a clear goal (the summit), and a driving desire (to have fun on the journey).

Cockburn's metaphors prove extremely fruitful and lead toward a set of powerful insights that each of today's "agile methodologies" seems to be groping towards in its own way. For example, when you think of developers as participants in a cooperative game, you realize they're not the antisocial drudges they've been made out to be. They actually love to communicate, as long as you're talking about something that's technically relevant to them. (Which explains why pair programming is turning out to be far more popular than many pundits expected.)

A software development project is an ecosystem, says Cockburn, "in which physical structures, roles, and individuals with unique personalities all exert forces on each other." Since no two projects share the same collection of forces, no single methodology can possibly fit every project, and none will ever work "straight out of the box." (Which explains why so many attempts to impose a methodology fail so badly.)

"Lightness" is a blessing, but it's possible to be too light. Cockburn shows how to balance lightness against sufficiency, by introducing the "sweet spots" that naturally make software development easier, and helping you compensate where your projects don't quite fit the ideal. (For example, agile methods rely heavily on face-to-face communication, but when your development team is scattered across multiple time zones, how can they be adapted to provide sufficient documentation so that everyone can work together, without sidetracking developers from their primary responsibilities? How can agile methods transform "tacit" team knowledge into long-lasting organizational wisdom?)

Every chapter in this entertaining book ends with a "What Should I Do Tomorrow?" section -- and you really can do this stuff tomorrow, without jumping whole-hog into a specific agile methodology. (Reconsider your work products based on what you need to achieve your primary goal, and to protect the teams that'll follow you. Increase the use of mechanisms that draw on the strengths of the specific individuals on your team. Try arranging for daily visits between programmers and business experts. Give more thought to the bottlenecks that could impact your project, and invent ways to use excess capacity elsewhere in the organization.)

Cockburn concludes by introducing his own Crystal family of methodologies, designed specifically to address the limitations of communication, the centrality of human beings, and the need for diverse methodologies, even within a single project. But whatever methodologies you adopt or reject, this provocative book is likely to transform the way you manage and participate in software development. (Bill Camarda)

Bill Camarda is a consultant, writer, and web/multimedia content developer with nearly 20 years' experience in helping technology companies deploy and market advanced software, computing, and networking products and services. He served for nearly ten years as vice president of a New Jersey–based marketing company, where he supervised a wide range of graphics and web design projects. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks For Dummies®, Second Edition.

Book Details

Published
October 12, 2001
Publisher
Harlow : Addison-Wesley, 2001.
Pages
304
Format
Paperback
ISBN
9780201699692

More by Alistair Cockburn

Similar books