Vous voulez voir cette page en français ? Cliquez ici.


or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Agile Software Development
 
See larger image
 

Agile Software Development [Paperback]

Alistair Cockburn
4.3 out of 5 stars  See all reviews (20 customer reviews)
Price: CDN$ 48.99 & this item ships for FREE with Super Saver Shipping. Details
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Usually ships within 5 to 10 days.
Ships from and sold by Amazon.ca. Gift-wrap available.
There is a newer edition of this item:
Agile Software Development: The Cooperative Game Agile Software Development: The Cooperative Game
CDN$ 39.68
In Stock.

Product Details


Product Description

Book Description

Agile Software Development- the shortest, simplest route to successful software development.
Not just a lightweight approach- highly scalable and completely customizable!
Sound advice for completing even the most complex and difficult projects -- without burnout.
Based on more than ten years of research with highly functional software development teams. Lightweight methodologies are exploding in popularity because their flexibility is ideal for todays fast-changing development environments. In Agile Software Development, legendary software expert Alistair Cockburn reviews the advantages and disadvantages of lightweight methods, synthesizing the fields key lessons into a simplified approach that allows developers to focus on building quality software rapidly, cost-effectively, and without burnout. Ideal for managers seeking to transcend yesterdays failed approaches, the agile movement views software development as a cooperative game. As players move throughout the game, they use markers and props to inform, remind, and inspire themselves and each other. The goal of the game- to deliver a working software system -- and to use the lessons of each project to build a new, smarter "game" for the next project. For every IT executive and manager, software developer, team leader, team member, and client concerned with building robust, cost-effective software.
Alistair Cockburn is consulting fellow at Humans and Technology, where he is responsible for helping clients succeed with object-oriented projects. He has more than 20 years of experience leading projects in hardware and software development in insurance, retail, and e-commerce, on behalf of large organizations ranging from IBM to Central Bank of Norway. His Addison-Wesley books include Surviving Object-Oriented Projects and the Productivity Award winning Writing Effective Use Cases.

From the Inside Flap

Is software development an art, a craft, science, engineering, or something else entirely? Does it even matter?

Yes, it does matter, and it matters to you. Your actions and their results will differ depending on which of those is more correct.

The main thing is this: You want your software out soon and defect free, but more than that, you need a way to examine how your team is doing along the way.

Purpose

It is time to reexamine the notions underlying software development.

The trouble is that as we look at projects, what we notice is constrained by what we know to notice. We learn to distinguish distinct and separable things in the extremely rich stream of experience flowing over us, and we pull those things out of the stream for examination. To the extent that we lack various key distinctions, we overlook things that are right in front of us.

We anchor the distinctions in our memories with words and use those words to reflect on our experiences. To the extent that we lack words to anchor the distinctions, we lack the ability to pull our memories into our conversations and the ability to construct meaningful strategies for dealing with the future.

In other words, to reexamine the notions that underlie software development, we have to reconsider the distinctions that we use to slice up our experience and the words we use to anchor our memories.

This is, of course, a tall order for any book. It means that some of the earlier parts of this book will be rather abstract. I see no way around it, though.

The last time people constructed a vocabulary for software development was in the late 1960s, when they coined the phrase software engineering, as both a wish and a direction for the future.

It is significant that at the same time the programming-should-be-engineering pronouncement was made, Gerald Weinberg was writing The Psychology of Computer Programming. In that book, software development doesn't look very much like an engineering discipline at all. It appears to be something very human-centric and communication-centric. Of the two, Weinberg's observations match what people have reported in the succeeding 30 years, and software engineering remains a wishful term.

In this book, I will

  • Build distinctions and vocabulary for talking about software development
  • Use that vocabulary to examine and anchor critical aspects of software projects that have been pushed to the sidelines too often
  • Work through the ideas and principles of methodologies as "rules of behavior"
  • Merge our need for these rules of behavior with the idea that each project is unique, and derive effective and self-evolving rules

    I hope that after reading this book, you will be able to use the new vocabulary to look around at your project, notice things you didn't notice before, and express those observations. As you gain facility, you should be able to

  • Discuss Extreme Programming, the Capability Maturity Model, the Personal Software Process, or your favorite process
  • Determine when each process is more or less applicable
  • Understand people who have differing opinions, abilities, and experience Audience

    Each person coming to this book does so with a different experience level, reading style, and role. Here's how you might read the book to use it to your greatest advantage: by experience, by reading style, or by role.

    By Experience

    This book is written for the more experienced audience. The book does not contain procedures to follow to develop software; in fact, core to the book is the concept that every technique has limitations. Therefore, it is impossible to name one best and correct way to develop software. Ideally, the book helps you reach that understanding and then leads you to constructive ideas about how to deal with this real-world situation.

    If you are an intermediate practitioner who has experience with software-development projects, and if you are now looking for the boundaries for the rules you have learned, you will find the following topics most helpful:

  • What sorts of methodologies fit what sorts of projects
  • Indices for selecting the appropriate methodology category for a project
  • The principles behind agile methodologies

    Being an intermediate practitioner, you will recognize that you must add your own judgement when applying these ideas.

    If you are an advanced practitioner, you already know that all recommendations vary in applicability. You may be looking for words to help you express that. You will find those words where the following topics are presented:

  • Managing the incompleteness of communication
  • Continuous methodology reinvention
  • The manifesto for agile software development

    A few topics should be new even to advanced software developers: the vocabulary for describing methodologies and the technique for just-in-time methodology tuning.

    By Reading Style

    The earlier chapters are more abstract than the later chapters.

    If you enjoy abstract material, read the book from beginning to end, watching the play of abstract topics to see the resolution of the impossible questions through the course of the book.

    If you want concrete materials in your hands as quickly as possible, you may want to skip over the early chapters on the first read and start with Chapter 4, "Methodologies." Return to the sections about "Cooperative Games" and "Convection Currents of Information" to get the key parts of the new vocabulary. Dip into the introduction and the chapters about individuals and teams to fill in the gaps.

    By Role

    People who sponsor software development can get from this book an understanding of how various organizational, behavioral, and funding structures affect the rate at which they receive value from their development teams. Project sponsors may pay less attention to the details of methodology construction than people who are directly involved in the projects. They should still understand the consequences of certain sorts of methodology decisions.

    Team leads and project managers can see how seating, teaming, and individuality affect their project's outcome. They can also learn what sorts of interventions are more likely to have better or worse consequences. They will need to understand the construction and consequences of their methodology and how to evolve their methodology--making it as light as possible, but still sufficient.

    Process and methodology designers can examine and argue with my choice of terms and principles for methodology design. The ensuing discussions should prove useful for the field.

    Software developers should come to know this material simply as part of being in the profession. In the normal progression from newcomers to leaders, they will have to notice what works and doesn't work on their projects. They will also have to learn how to adjust their environment to become more effective. "Our methodology" really means "the conventions we follow around here," and so it becomes every professional's responsibility to understand the basics of methodology construction.

    Organization of the Book

    The book is designed to set up two nearly impossible questions at the beginning and derive answers for those questions by the end of the book:

  • If communication is fundamentally impossible, how can people on a project manage to do it?
  • If all people and all projects are different, how can we create any rules for productive projects?

    To achieve that design, I wrote the book a bit in the "whodunit" style of a mystery. I start with the broadest and most philosophical discussions: "What is communication?" and "What is software development?"

    The discussion moves through still fairly abstract topics such as "What are the characteristics of a human?" and "What affects the movement of ideas within a team?"

    Eventually, it gets into more concrete territory with "What are the elements and principles of methodologies?" This is a good place for you to start if you are after concrete material early on.

    Finally, the discussion gets to the most concrete matter: "What does a light, sufficient, self-evolving methodology look like?" and "How does a group create a custom and agile methodology in time to do the project any good?"

    The two appendixes contain supporting material. The first contains the "Agile Software Development Manifesto," signed by 17 very experienced software developers and methodologists.

    The second appendix contains extracts from three pieces of writing that are not as widely read as they should be. I include them because they are core to the topics described in the book.

    Heritage of the Ideas in This Book

    The ideas in this book are based on 25 years of development experience and 10 years of investigating projects directly.

    The IBM Consulting Group asked me to design its first object-oriented methodology in 1991. I looked rather helplessly at the conflicting "methodology" books at the time. My boss, Kathy Ulisse, and I decided that I should debrief project teams to better understand how they really worked. What an eye-opener! The words they used had almost no overlap with the words in the books.

    The interviews keep being so valuable that I still visit projects with sufficiently interesting success stories to find out what they encountered, learned, and recommend. The crucial question I ask before the interview is, "And would you like to work the same way again?" When people describe their experiences in words that don't fit my vocabulary, it indicates new areas in which I lack distinctions and words.

    The reason for writing this book now is that the words and distinctions finally are correlating with descriptions of project life and project results. They are proving more valuable for diagnosis and intervention than any of the tools that I used previously.

    The ideas in this book have been through dozens of development teams, eight methodology designs, and a number of successful projects on which I participated.

    Agility

    I am not the only person who is using these ideas:

  • Kent Beck and Ward Cunningham worked through the late 1980s on what became called Extreme Programming (XP) in the late 1990s.
  • Jim Highsmith studied the language and business use of complex adaptive systems in the mid-1990s and wrote about the application of that language to software development in his Adaptive Software Development.
  • Ken Schwaber and Jeff Sutherland were constructing the Scrum method of development at about the same time, and many project leaders made similar attempts to describe similar ideas through the same years.

    When a group of us met in February 2001 to discuss our differences and similarities, we found we had a surprising number of things in common. We selected the word agile to describe our intent and wrote the Agile Software Development Manifesto (Appendix A).

    We are still formulating the principles that we share and are finding many other people who could have been at that meeting if they had known about it or if their schedules had permitted their presence.

    Core to agile software development is the use of light-but-sufficient rules of project behavior and the use of human- and communication-oriented rules.

    Agility implies maneuverability, a characteristic that is more important now than ever. Deploying software to the Web has intensified software competition further than before. Staying in business involves not only getting software out and reducing defects but tracking continually moving user and marketplace demands. Winning in business increasingly involves winning at the software-development game. Winning at the game depends on understanding the game being played.

    The best description I have found for agility in business comes from Goldman (1997):

    "Agility is dynamic, context-specific, aggressively change-embracing, and growth-oriented. It is not about improving efficiency, cutting costs, or battening down the business hatches to ride out fearsome competitive 'storms.' It is about succeeding and about winning: about succeeding in emerging competitive arenas, and about winning profits, market share, and customers in the very center of the competitive storms many companies now fear." The Agile Software Development Series

    Among the people concerned with agility in software development over the last decade, Jim Highsmith and I found so much in common that we joined efforts to bring to press an Agile Software Development Series based around relatively light, effective, human-powered software-development techniques.

    We base the series on these two core ideas:

  • Different projects need different processes or methodologies.
  • Focusing on skills, communication, and community allows the project to be more effective and more agile than focusing on processes.

    The series has these three main tracks:

  • Techniques to improve the effectiveness of a person who is doing a particular sort of job. This might be a person who is designing a user interface, gathering requirements, planning a project, designing, or testing. Whoever is performing such a job will want to know how the best people in the world do their jobs. Writing Effective Use Cases (Cockburn 2001c) and GUIs with Glue (Hohmann, forthcoming) are two individual technique books.
  • Techniques to improve the effectiveness of a group of people. These might include techniques for team building, project retrospectives, decision making, and the like. Improving Software Organizations (Mathiassen 2002) and Surviving Object-Oriented Projects (Cockburn 1998) are two group technique books.
  • Examples of particular, successful agile methodologies. Whoever is selecting a base methodology to tailor will want to find one that has already been used successfully in a similar situation. Modifying an existing methodology is easier than creating a new one and is more effective than using one that was designed for a different situation. Crystal Clear (Cockburn, forthcoming) is a sample methodology book. We look forward to identifying other examples to publish.

    Two books anchor the Agile Software Development Series:

  • This one expresses the thoughts about agile software development using my favorite vocabulary: that of software development as a cooperative game, methodology as conventions about coordination, and families of methodologies.
  • The second book is Highsmith's forthcoming one, Agile Software Development Ecosystems. It extends the discussion about problems in software development, common principles in the diverse recommendations of the people who signed the Agile Software Development Manifesto, and common agile practices. Highsmith's previous book, Adaptive Software Development, expresses his thoughts about software development using his favorite vocabulary, that of complex adaptive systems.

    You can find more about Crystal, Adaptive, and other agile methodologies on the Web. Specific sites and topics are included in the References at the back.


  • Tag this product

     (What's this?)
    Think of a tag as a keyword or label you consider is strongly related to this product.
    Tags will help all customers organize and find favorite items.
    Your tags: Add your first tag
     

     

    Customer Reviews

    20 Reviews
    5 star:
     (14)
    4 star:
     (3)
    3 star:
     (1)
    2 star:    (0)
    1 star:
     (2)
     
     
     
     
     
    Average Customer Review
    4.3 out of 5 stars (20 customer reviews)
     
     
     
     
    Share your thoughts with other customers:
    Most helpful customer reviews

    5.0 out of 5 stars A must read for anyone interesting in software development, Jan 10 2004
    By 
    Michel Cere (Mirabel, Quebec Canada) - See all my reviews
    This review is from: Agile Software Development (Paperback)
    This book is well written, "crystal clear" :) and I learned a lot. In fact, I learned more in this book than any other about software development. The reason is very simple, it tells you what's important and what is not. This book is about software development in general, not specially the "Agile Methodologie".

    If your looking for THE METHODOLOGIE, well, that aint the book you need (but read it anyway... you'll change your mind about searching for a "silver bullet". From my own experience: I made that mistake... And I'm so glad I made it). But if you need a comprehensive book about how software development works (or doesnt) this is it.

    This book start with the most important part of the software development: People.
    Naturally, with more than one person, you'll need: Communication.
    This book also talks about how communication can impact the software development.
    Finally, this book talks about methodologies and why you need agility and to be able to self-adapt.

    This book is truly a must read or a must read twice. To be able to fully appreciate this book, I strongly suggest that you familiarised yourself with a few methodology like XP, UP or any other.

    If you have bad experience in a software development team, this book might help you to found out what was wrong and specially how to correct the situation.

    If this review does not sell you this book, then don't take my word for it and buy it.

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No


    4.0 out of 5 stars Good agile overview, but a bit longer than it needs to be, Dec 24 2003
    By 
    Lars Bergstrom "LarsBerg" (Chicago, IL) - See all my reviews
    (REAL NAME)   
    This review is from: Agile Software Development (Paperback)
    The high points were all of the great attitude around how to tune a methodology to your specific team, project, and environment. It emphasizes a lot of the crucial points around the people differences that are critical to success.

    The downside is that a cover-to-cover reading will feel a bit belabored; the point could've been made in a bit less space. Especially noticiable were the places where sections had been copy/pasted from earlier sections of the book. I can see where it adds to random-search readability, but the third time I read the same anecdote, I was feeling a bit abused.

    Also, there was a very interesting framework around 'levels of criticality' that I was really interested in. However, he had one category that implied loss-of-life. Okay, I got that. Then, later in the book, he talks about categorizing a financial project (that nowhere involved mafia hitmen) as that level! I guess I understood the analysis process, but the labeling of the levels totally lead me down the wrong path. I was thinking space shuttle, and he went RC racer. Not necessarily a bad thing, but I left the book not too confident that I was as grounded in the categorization process as I could've been.

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No


    5.0 out of 5 stars Teaches you how to be successful, Dec 7 2003
    By 
    Paul G. Hughes (Melbourne, VIC Australia) - See all my reviews
    (REAL NAME)   
    This review is from: Agile Software Development (Paperback)
    In this book, Alistair Cockburn gives amazing insight into what successful software development is all about. It is an essential read for anyone involved in a software development project.

    The "successful" word is very important - I have read many books on software development that provide helpful techniques and methodologies, but don't really have much bearing on the success of your project. I have seen specific techniques and methodologies applied extremely successfully in some teams on some projects, and really poorly for others. Personally, I am interested in being very successful in every project I embark on, and Cockburn's book is the only one I have ever read that contains everything you need to know to be successful every time. It is the essence of software development.

    Over the years I've developed a good feel for how a great project runs, but have found it remarkably hard to communicate what it is that makes the difference between successful and failed projects. I was delighted to find that Alistair Cockburn has worked out how to articulate the difference and how to make sure that your projects are the successful ones.

    For anyone that has done the hard yards through real-world software development projects where time-to-market is a crucial factor, you will be overjoyed when reading this book. You will find you now have a vocabulary to use when talking to others about your projects. After every chapter you will find yourself bursting with excitement to tell someone about what you have learned. The book will change the way you look at your projects and will give you the key to being successful.

    For novices to software development, read this book and count yourself lucky that you found it right at the start of your career. The amount you will gain from Cockburn's insight is immeasurable.

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No

    Share your thoughts with other customers: Create your own review
    Want to see more reviews on this item?
     Go to Amazon.com to see all 28 reviews  4.4 out of 5 stars 
     
     
    Most recent customer reviews











    Only search this product's reviews



    Listmania!

    Create a Listmania! list

    Look for similar items by category


    Look for similar items by subject


    Feedback


    Amazon.ca Privacy Statement Amazon.ca Shipping Information Amazon.ca Returns & Exchanges