|
|
|
Average Customer Review
Share your thoughts with other customers
|
|
|
The most helpful favorable review
The most helpful critical review
41 of 42 people found the following review helpful:
People over Process, Interactions over Tools
Every fifteen years or so, a great book pops up that describes what projects are really like. There was Brooks, then DeMarco and Lister, and now there's Cockburn. Why is there such a gap between these great books? Possibly because the message they contain isn't the easy-to-digest dictate: "run your project this way and everything will be fine."...
Published on November 18, 2001 by Dave Thomas
|
› See more 5 star, 4 star reviews |
 |
38 of 49 people found the following review helpful:
Good, But Way Up In the Ivory Tower
This is a good book to read if you are thinking about going into business as a software design methodology consultant. But it may not be so good if you want to know the 'what' and 'why' of agile processes. Much of the book is very abstract, which the author acknowledges in his introduction, and very 'touchy-feely'. I view several of its insights as cliches--"Software...
Published on June 20, 2002 by David C. Veeneman
|
› See more 3 star, 2 star, 1 star reviews |
|
|
41 of 42 people found the following review helpful:
People over Process, Interactions over Tools, November 18, 2001
This review is from: Agile Software Development (Paperback)
Every fifteen years or so, a great book pops up that describes what projects are really like. There was Brooks, then DeMarco and Lister, and now there's Cockburn.Why is there such a gap between these great books? Possibly because the message they contain isn't the easy-to-digest dictate: "run your project this way and everything will be fine." Instead these books all focus on the fundamentals of projects: people and the way they work together. These books treat people as people, and not replaceable parts in a process. The books accept people's foibles and inconsistencies, and work out how to work with them, rather than how to try to stamp them out. The books ask: how can we help these funky people work better together to produce great software? Agile Software Development has some great answers, which makes it a significant book. It deals with the issue that programming is essentially communicating. It looks at the success factors of individuals, and how to help align the project with these. It discusses practical ways to reduce the latency of communication (do you know how much each extra minute taken finding things out costs on a 12 person project? How do you line your walls with information radiators?) The book mines the metaphor of development as a cooperative team game, and looks at development organizations as a community, where good citizenship pays. So how _do_ you organize all these people, these team players, these citizens? The answer is with methodologies. But not with something you buy off-the-shelf. Cockburn argues that teams should work to define, and then refine, their own methodologies, bringing in standard ones where they fit. To help the teams, he has a wonderful section describing what methodologies _are_, and how to build them. This is good, solid, practical advice. He talks about when it's good to be light, and when you need to be heavier, when laissez-faire works, and when you need ceremony to reduce risks. Then, not content with helping you create a methodology, Cockburn explains how to adapt what you have to a changing world. If you work in or with a team developing software, then you owe it to yourself (and your team) to read this book. You'll come away with a far clearer understanding of the dynamic at work in your team, and with lots of ideas for improving it. And that's the whole point.
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
49 of 55 people found the following review helpful:
The Articulation of Higher Awareness, December 2, 2001
By A Customer
This review is from: Agile Software Development (Paperback)
In Agile Software Development, Alistair Cockburn has quietly authored a masterpiece. With extraordinary insightfulness and encompassing perspective, Cockburn writes of fundamental truths around the business of software development, the people and teams involved, and the nature of methodology.This book will give you vocabulary and concepts to communicate what you experience on your projects: what software development is all about, the importance of people and their motivations and traits, the adequacy of communication within your team community, and the appropriateness of your methodology for your context. The first in a series based on the idea that different projects need different methodologies, and that focusing on communication and community is more relevant than focusing on process, the book is primarily concerned with what *is* methodology - and what identifies agile methodology, in particular. Cockburn begins with the premise that communication is never perfect or complete - and therefore one task of your methodology, which amounts to the set of conventions your team follows, is to ensure that communications are optimal for the purposes at hand. But what are the purposes at hand? Cockburn adeptly uses the metaphor of game theory to accurately characterize software development as "a cooperative game of invention and communication", whose primary goal is to deliver useful, working software, and whose secondary goal is to prepare for continued play. In so doing he reflects thoughtfully on the characterization of software as engineering, and derides the characterization of software as model-building - observing, thankfully, that building models is not the purpose of the game. The purpose of the game is delivering software. This characterization frames the book's discussion, which builds in well-considered progression from people, to teams, to methodology, to agility. In a chapter about people, Cockburn stands upon the shoulders, and extends the vision, of giants such as Weinberg, and DeMarco and Lister, finding that people factors predict project outcome much more reliably than choice of process or technology. His treatment of people's motivations, in particular, is the most enlightened to be found outside the leadership literature. That people participate in teams leads to the next chapter's thorough analysis of communication within teams, and examination of teams as communities. Cockburn implies that a project's rate of progress is a function of how long it takes information to get from one person's mind to another. Through comparison of different seating arrangements and communication modalities, he substantiates the implication and raises the issue of the permanence of communication. To the extent that the people on a team pull in the same direction, they form an effective community defined by "amicability" and "citizenship" - words and definitions provided by Cockburn that are a welcome addition to our vocabulary. Coordinating a team's activity is the task of a methodology, which is subject of the book's final three chapters. The first of the three lays out a conceptual model of what methodology *is*, in terms of elements of methodology and relationships between elements. It goes on to define the scope of a methodology, and to put forth terms, such as "weight" and "tolerance", that can be used to describe a methodology. It addresses how to publish a methodology. Then Cockburn discusses a number of principles involved in the design of methodologies, and consequences of those principles. Of particular interest is a model for characterizing projects, on which to base the selection of a methodology for a project. This chapter concludes with an examination of Extreme Programming in light of the vocabulary and concepts Cockburn develops. The second of the three methodology chapters discusses agile methodologies, and what identifies them. Included are recommendations for documentation, an interesting contrast of open-source development to commercial development (it's a different kind of game), and a prescriptive technique for selecting and adapting a methodology on a project. Along the way Cockburn suggests a good definition of software development project success (at least, from a methodological perspective), and thankfully debunks some of the broken thinking that is prevalent in our industry today -specifically, around outsourced overseas development. The last of the three methodology chapters introduces Cockburn's own family of methodologies, the Crystal Methodologies, each of which corresponds to a particular space within the project characterization model. Three appendices are included, of such significant content that they can hardly be considered an afterthought. The first discusses The Agile Software Development Manifesto, a product of seventeen advocates of "lightweight" development processes who gathered in early 2001 to discuss what they might have in common. Cockburn was party to the meeting and the manifesto, and in the first appendix provides his own report on the meeting and interpretation of the group's values and principles. The second appendix excerpts and annotates earlier works, of other authors, that are significantly germane to Cockburn's arguments. One of these is by Peter Naur (of Backus-Naur Form), titled "Programming as Theory Building". In the vein of communication, Cockburn writes that "Using Naur's ideas, the designer's job is not to pass along the design, but to pass along the theories driving the design. The latter goal is more useful and more appropriate." Another excerpt is from The Book of Five Rings by Miyamoto Musashi, a 17th-century Japanese samurai who never wrote software, but whose words apply as equally to software development methodology and tool schools today as they did to martial arts schools in 17th-century Japan. The third and final appendix is a bibliography of 65 entries. Taken as a whole, the chapters and appendices form a seminal book on methodology that promises to have significant influence within our industry. Agile Software Development is an epiphany for the field of software development. Buy it. Read it. Use it. Urge the people on your teams to do likewise, that you may discuss methodology with higher awareness, and adjust yours to be appropriately agile. For, as Alistair writes, "software developers should come to know this material simply as part of being in the profession". Randy Stafford Chief Architect IQNavigator
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
34 of 37 people found the following review helpful:
This book has changed my mind - to some extend..., May 6, 2002
This review is from: Agile Software Development (Paperback)
When I started reading this book I was not a fan of XP, but certainly in favour of lighter methodologies. The book is unusual (amongst IT books) in the sense that it starts off with patterns of human communication. In fact the first three chapters - which analyses game-play, individual communication modes, and team cooperation - covers about 40% of the book. However, it was this section of the book that won me over and convinced me about the basis of the "methodologies" such as XP.But for me personally the most practical and relevant chapter was Chapter 5: "Agile and self-adapting". In this chapter Cockburn covers issues such as how much documentation, team structures, and most importantly: a methodology growing technique. This chapter is closely followed in importance by chapter 4: "Methodologies". In this chapter Cockburn covers methodology concepts and design principles, including how to publish and introduce (role out) a methodology (before going on to dissect XP). Chapter 6: "The crystal methodologies" consolidates these ideas. Cockburn takes you along while describing and shaping his family of Crystal methodologies. The book is rounded of with the agile software development manifesto, a formal proposal drawn up by several software authors; and philosophical contributions from other authors. Many good references can be found in the appendix. Cockburn acknowledges that the chosen methodology must fit issues such as the project and team size and environment. And although I can see the benefits of many aspects of the agile philosophy, there are other aspects I am still cynical about. However, my review is not about XP, but about this book. And the book is well written, well argued, sensible, with plenty of stories and examples, which makes it easy to read. In my case, Cockburn was NOT preaching to the converted, and I gained much value from reading the book. It helped me to question some of my preconceived ideas and long-held views.
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
18 of 18 people found the following review helpful:
Best book on "light" software development methodology, February 4, 2003
This review is from: Agile Software Development (Paperback)
Excellent book on software development, but this book is not for everyone. As Cockburn mentions in the preface and the introduction chapter, the book is for "level 2 and 3" people who already have some experience managing software projects, who can think from a higher level and can better appreciate the whole eco-system of software development. This book does not talk about detail implementation of software development methodologies, but rather focuses mostly on the people dynamics of software projects. From that Cockburn presents his agile methodologies and how we can adopt them for different types of projects. A central theme of agile software development is the focus on people's communication and skill rather than procedure and documentation. "Discipline, skills, and understanding counter process, formality, and documentation," as Cockburn puts it. Although the first 4 chapters are fairly high level, chapter 5 "Agile and Self-Adaption" summarizes the principles and offer concrete steps on how to put everything to use in actual projects. I found it extremely helpful.I think the book is especially applicable to small teams (up to ~20 people) working on in-house development (so that the users are close) in organizations with light hierarchy. The book shows us the best way to improve a team is to improve the communication and environment, rather than to impose rules and procedures. However, there are at least two potential problems when deploying these methods. First, in some sense, Cockburn states the obvious: if we have a good team of people in a room with good communication, we will achieve the most efficient development. The problem is it's very hard to have a good team of people in the first place. Also, because of culture differences, this kind of 'light' methodology might not earn good results outside the US, where some people actually prefer heavy procedures and are less proactive in communication. Second, it is very hard to change the mind-set of senior management with little software development experience. Cockburn rightly points out that rules and procedures come out of the insecurity of the upper managers who don't know what's going on in the development team. It's quite hard for them to appreciate an environment that builds on trust and understanding. Cockburn didn't directly address this problem. One suggestion regarding efficient documentation that I think is extremely useful is to the use of digital camera and video camcorder to record meetings. It's so obvious yet I never thought about it! A related book I highly recommend is "The Mythical Month" by Brooks, a true classic on software engineering.
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
27 of 30 people found the following review helpful:
Treating a software team as an art commune, April 4, 2002
This review is from: Agile Software Development (Paperback)
There is a lot of sensible advice in this book, the most important of which is "if you have a system that works, use it." I have read many books on software development over the years and have slowly been moving towards a conclusion that is inconsistent with current development strategies. Namely, software development will never advance to the highest levels until the principle of software engineering is dropped. Using that phrase, we try to make people interchangeable parts and think of development as a process similar to changing to a thicker steel beam or adding a few more inches of concrete to a wall based on the examination of formulas. That is nonsense, people are spontaneous, imaginative and creative at irregular and largely unpredictable intervals. Software development is much more like the writing of novels than it is the building of a bridge, so we should plan our development that way. Set down a general story line, but let each individual page and paragraph be crafted with only the general story in mind. It is this theme that endeared me to this book. Over and over, the authors talk about "funky people", those contradictory but productive creatures that can thrive in one environment but have their creativity shrivel in others. As I read the book, my impressions were that the authors were describing the management of a communal colony of artists, commissioned to create a series of artworks. Soft communication is the order of the day, and each participant naturally gravitates to their area of expertise. They use the metaphor of how heat radiates from an air duct to describe how project information naturally flows to and through the members of the team. As a participant in far too many of the meetings where information transfer was hard in more ways than one, I definitely vote for their techniques. Agile software development is more than just a mechanism for making software so that you have the ability to make changes rapidly. It is also designed to treat people as individuals and a software project as a form of art. Many of the rigid tenets so beloved by some practitioners of software engineering and methodology madness are rejected in favor of more sensible approaches. I strongly recommend that this book be part of your reading over the next month if you are in the first stages of a software project. Quite frankly, if you are in the later stages of one, reading it might depress you.
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
23 of 27 people found the following review helpful:
A signficant achievement, December 20, 2001
This review is from: Agile Software Development (Paperback)
The consensus is that this work is a masterpiece. I, as a real-time, embedded software development manager have tried a variety of "heavy" methodologies. Experience has shown me that the lighter techniques have a better chance of success.I would like to mention Cockburn's reference to Wittgenstein. Wittgenstein started out with a little masterwork usually known as the 'Tractatus Logico-Philosophicus' in English. This book can be viewed as relating the real world to a LOGICAL model. Wittgenstein later realized that this does not necessarily hold and came up with the idea of 'language games.' The 'heavy' methodologies (B-method, RUP, MIL-STD-498, etc.) try to build a conceptual machine that accepts an input and reliably delivers the desired output. The 'language game' is top-heavy and frequently irrelevant, not to mention, expensive. The 'light' methodologies use the minimalist principle of Musashi (quoted in the book): "Do not do anything useless." I could rave on. Try this book out--it is one of the most intelligent software books I have read in years!
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
12 of 13 people found the following review helpful:
Individuals and interactions over processes and tools, October 24, 2002
This review is from: Agile Software Development (Paperback)
This book is often compared with "The Mythincal Man-Month" by Brooks or "Peopleware" by DeMarko and Lister. While Brooks mostly emphasize that the term "man-month" can't be applied to software development, DeMarko and Lister focus to productive environment and jelled teams, Alistair Cockburn with the book "Agile Software Development" covers much wider area, including the choice of the right methodology, problems of individuals and aspects of communication. The author has found the common denominator among all "agile" methodologies like Extreme Programming, SCRUM, Crystal Clear, Responsibility-Driven Design and Adaptive Software Development. That common denominator is individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; responding to change over following a plan. The book describes how to accomplish that, not only describing the problems and encouraging to put some attention into that, but gives some advices that can be found valuable. The author recommends that each project should have its own methodology, that fit its best. The author have methodologies to recommend for large and very large projects as well. I recommend "Extreme Programming" by Kent Beck and "Adaptive Software Development" by James A. Highsmith in addition to this book.
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
8 of 8 people found the following review helpful:
Agile Methods Dissected, August 24, 2002
This review is from: Agile Software Development (Paperback)
Review Summary : the broad sweep of the human psychological team element classifies this book as useful beyond software in understanding teams and peoples motivations. Review: Agile Software Development is a highly stimulating and rich book. The author has a deep background and gives us a tour de force of the emerging agile methods. He is neutral, in spite of being the developer of agile methods himself. He gives a large number of interesting case studies from his own practice. He is practical not academic and never boring. He is systematic but keeps it simple. He keeps reminding us of the human element, in great depth. And to top it off he offers an appendix by Musashi, a 17th Century samurai who never wrote software. This book, while focussed on the programming activity, has a great deal of systems engineering insights about how people work together and various types of human communication. His international experience is a relief from the USA-centric view of too much of our technical literature. I can heartily recommend this book to my friends. Tom@Gilb.com, August 24 2002
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
11 of 12 people found the following review helpful:
Worth buying. Gets to the root of the development process., February 1, 2002
By A Customer
This review is from: Agile Software Development (Paperback)
This is one of the best books I've read in quite a while. While many books talk about the nuts and bolts of XP, Scrum, RUP or the like, Cockburn talks about why these methods work or don't work. He uses the metaphore of a goal-oriented, non competetive game when describing development and extends the metaphore to exaplain the root purpose of software development methods.This book fills the niche between cookbook approaches to process and zen-like handwaving books. It WILL help you understand the principles behind process and be able to pick the concrete parts of processes that make the most sense for the problem at hand.
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
10 of 11 people found the following review helpful:
The most important book since "The Mythical Man-Month", July 15, 2002
This review is from: Agile Software Development (Paperback)
"Agile Software Development" is easily the most important book on software development since Brooks' "The Mythical Man-Month". Cockburn's insights on the nature of software development are invaluable in understanding why the software industry faces project failure rates of 50% (or greater) and what can be done to turn this around.Cockburn sees software development as more art than science. "A Cooperative Game of Communication and Invention" where the individuals on a team and the dynamics within a team influence the success or failure of a project far more than any specific process. The singular, often paradoxical imperfectness of people - what Cockburn refers to as "Failure Modes" - drives software development. A key premise running throughout Cockburn's book is that people make mistakes - often at the worst possible times - and are often inconsistent in the most frustrating of ways. Yet paradoxically, they are also creatures of habit - both good and bad. They are predictable most times, but unpredictable others (and you never know which times). Most importantly, Cockburn writes, people are different. They think differently; solve problems in different ways; relate to each other differently. Some are emotional while some are stoic. The diversity is breathtaking. Yet most of the tenets of "software engineering" (and the myriad of "formal" processes emenating from these tenets) simply ignore the imperfection of people and the uniqueness of individuals. And we've paid the price for the last 25+ years. This is not a book for those looking for a step-by-step recipe for success. How could a single approach work anyway? Instead it is a book that sheds a penetrating light on the mistakes of the past and what we can do to correct most of these mistakes. A must read for any person who has a stake in software development - from senior executive footing the bill to individual developers currenty involved on projects.
Help other customers find the most helpful reviews
Was this review helpful to you?
|
|
|
|
|
|
|
|