Slashdot Mirror


Organizational Patterns of Agile Software Development

Paul S. R. Chisholm writes "What makes a software development project succeed? It's not language or tools or process. It's not a simple as people; even great programmers sometimes find themselves associated with disasters. In some sense, a successful project is the same thing as a successful organization; but what makes those? We need an anti-Dilbert. In Organizational Patterns of Agile Software Development, James O. Coplien and Neil B. Harrison lay out the results of their research on the subject; what they found, helps." Chisholm also offers this disclaimer: "Full disclosure: I was a member of one of the organizations studied, and I contributed to one of the patterns in the book. I know both the authors; one is a long-time friend and mentor. This review reflects my opinion of the book, not of the authors. I paid for my copy of the book." Read on for the rest. Organizational Patterns of Agile Software Development author Coplien, Harrison pages 419 publisher Prentice Hall rating 9 reviewer Paul S. R. Chisholm ISBN 0131467409 summary Practical and theoretical ends meet in this opinionated but open-minded approach to implementing agile software projects, including very large-scale ones.

Organizational Patterns of Agile Software Development starts by describing the foundations of the authors' research. There are definitions of a "pattern" (but "your intuition about the meaning of the term will take you far") and of a "pattern language" (read the book), the history of their research, and some information about how the book is laid out. The authors recommend you read this section, and so do I; but if it's too dry for you, by all means move on.

The meat of this book is four pattern languages: how to manage a project, how to grow it over time, what can make up an organization's "style" (I'd use the word "culture"), and how the people fulfill their roles and interact with each other. These are not prescriptions or algorithms; they're elements of how successful organizations have worked.

Each pattern describes one aspect of some effective software development organizations. Some patterns are found in more than one pattern language; "Community of Trust" is common to all. Others are less general; "Moderate Truck Number" applies only to the "piecemeal growth" pattern language.

How valuable are the patterns? Some (such as "Get On With It", proceeding with an effort before the planning is considered complete) are common sense. Others (for example, "Don't Interrupt an Interrupt") are things you probably know, but might need to be reminded of ... or might need to remind your boss of. More than a few (my favorite is "Architect Also Implements") might help you understand how something could or should work. Finally, there are some patterns here (such as the "Day Care" pattern for training new members) that might be new to you.

The rest of the book puts the patterns and pattern languages into perspective. There are chapters on organizational principals and (seriously) anthropological foundations of this work. Then there are two case studies of very successful projects. On one, "[about one] million lines of code were written over a period of 31 months by about eight people (that's about 1,000 lines of code per person per week) -- that doesn't include code in the [two] prototypes." It's easy to crank out code at that rate for small bursts, or on small projects. To stay at that pace constantly for over two and half years is nothing short of astounding. The resulting product was released to great reviews. (It then did poorly in the marketplace when it went head-to-head with a directly competing product from Microsoft. Sound dissatisfying? Consider how very long people waited impatiently for Mozilla and its successors such as Firefox. More directly, look at Robert Glass's assertion of the "disconnect between managers and their programmers" as to what projects are seen as successful; it's Fact 13 in Glass's book reviewed August 30th on Slashdot.)

What's imperfect about this book? A couple of things.

First, sometimes the language gets too academic for easy reading. Example: "We have also seen a lighter though almost equally destructive form of this phenomenon, which we describe as schismogenesis.... Symmetrical schismogenesis occurs when two factions each rise in power (or in fear or distrust of each other) and form cliques or splinter groups that tend to focus inward rather than resolve issues in the dialogue with each other." Clear enough if you work on it, but a little intimidating.

Second, the book is surprisingly partisan on some subjects. The book is not kind either to ISO 9000 or Extreme Programming; it could serve as a sort of litmus test, delighting critics and coming across to supporters as unfairly harsh.

What's good about this book? It's a collection of good information, well presented, with information on how to apply it, on a topic where not much knowledge has been accumulated. For some specific circumstances, this book sometimes points out different likely alternatives, with information on when each is applicable. Don't expect Organizational Patterns for the Complete Dummy; then again, don't expect anything useful to be superficial.

How could Coplien and Harrison's work apply to open source development? For starters, they point out the value of people working physically together, and of individual code ownership; these aren't easily applied to open source, but at least it points out forces that need to be resolved somehow. On the other hand, some patterns here are hugely relevant to open source: "Work Queue," "Informal Labor Plan," "Self-Selecting Team," and "Team Pride" come to mind.

Organizational Patterns of Agile Software Development is no panacea. If your organizational practices are the opposite of what's found to be effective, you may find this book frustrating. A book can't take your organization where it needs to go; but Coplien and Harrison have put up some road signs.

You can purchase Organizational Patterns of Agile Software Development from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

5 of 128 comments (clear)

  1. Re:PIST FROST by Anonymous Coward · · Score: -1, Troll

    Use line breaks, retard.

  2. Re:OMG have u seen the new hl2 traielr??? by Anonymous Coward · · Score: -1, Troll

    Coach Your Staff to Succeed
    A football team needs a good quarterback, but he doesn't win the game by himself. Every coach needs a good offensive line, running backs, and receivers. In short, teamwork wins.

    That same concept works in business. Our culture often lavishes praise and rewards on the individual entrepreneur. But to be a success, a business needs to build a strong team that gives it efficiency, speed and flexibility.

    As the leader of your company, you are the coach and you need to set up a system that nurtures camaraderie and teaches your staff that teamwork is essential.

    Among the elements that help you train your staff to work together are:

    *
    Building trust.
    *
    Sharing the company's vision with everyone.
    *
    Training everyone in the rules of the game.
    *
    Rewarding teamwork over individual action.
    *
    Providing everyone equal access to the same information.

    These steps put everyone on the same level, empower the team to act, and let each member feel free to offer ideas. Camaraderie fosters commitment to your company's success.
    Copyright 2004 BizActions, LLC.

    Crimes and Clues: Background Checks Count
    Surely you don't want to hire a bookkeeper who's been convicted of embezzlement. And you don't want to send an employee with a history of violence into customers' homes.

    Every company is vulnerable to recruiting people who are dishonest, create fake educational backgrounds, or have been convicted of crimes. And hiring these people boosts the chances you'll wind
    up in legal hot water.

    To minimize your legal exposure, conduct background checks that show you did your best to hire trustworthy people in case a problem occurs. Lawsuits based on lax due diligence can cost you thousands in legal costs and damages.

    Background checks can run around $200 and investigators generally examine:

    1. Criminal records.
    2. Academic credentials.
    3. Previous employers and professional licensing.
    4. Motor vehicle records.
    5. Gaps in resumes.
    6. Evidence of significant debt or trouble handling money.

    Keep in mind: Background checks often turn up positive results and can confirm that the person you want to hire is the perfect fit.
    Copyright 2004 BizActions, LLC.

  3. THIS ARTICLE Is pwn3d! by Anonymous Coward · · Score: -1, Troll

    LOL! NO DIALOUGUE ON THIS FUCKER!LOL! NO DIALOUGUE ON THIS FUCKER!LOL! NO DIALOUGUE ON THIS FUCKER!LOL! NO DIALOUGUE ON THIS FUCKER!

    Crimes and Clues: Background Checks Count
    Surely you don't want to hire a bookkeeper who's been convicted of embezzlement. And you don't want to send an employee with a history of violence into customers' homes.

    Every company is vulnerable to recruiting people who are dishonest, create fake educational backgrounds, or have been convicted of crimes. And hiring these people boosts the chances you'll wind
    up in legal hot water.

    To minimize your legal exposure, conduct background checks that show you did your best to hire trustworthy people in case a problem occurs. Lawsuits based on lax due diligence can cost you thousands in legal costs and damages.

    Background checks can run around $200 and investigators generally examine:

    1. Criminal records.
    2. Academic credentials.
    3. Previous employers and professional licensing.
    4. Motor vehicle records.
    5. Gaps in resumes.
    6. Evidence of significant debt or trouble handling money.

    Keep in mind: Background checks often turn up positive results and can confirm that the person you want to hire is the perfect fit.
    Copyright 2004 BizActions, LLC.

    Sell Yourself to Job Applicants
    Interviewing potential hires is a two way street: The applicant wants a job and you may be anxious for the person to take the position.

    But if applicants aren't sure they want the job, you need to start using your sales skills. Here's what to
    tell them in your sales pitch:

    * Your unique qualities. Explain what your company does, how it differs from the competition and is why it is better.
    * Outline your structure: Describe your company's history, departments, profitability, sales and goals for the future. Give a picture of how the applicant would fit into your corporate strategy.
    * Review the position. Outline the responsibilities and work hours. Provide some biographies on department heads and discuss what others like and dislike about working in the department.
    * Give a tour. Take the applicant around the business and introduce prospective co-workers. Give the applicants some private time with staff members to ask questions.
    * Discuss finances. Consider being up front and saying whether the pay scale or salary is negotiable. Emphasize your benefits package.

    Warning: Don't exaggerate. People who take a job based on misrepresented job features or benefits may become bitter and quit soon after. If you are honest, new hires are less likely to stumble across surprises and more likely to find long-lasting job satisfaction.
    Copyright 2004 BizActions, LLC.

  4. Pure faggotry by Anonymous Coward · · Score: -1, Troll

    Is what I infer by reading this summary.

  5. This FP for GN7AA by Anonymous Coward · · Score: -1, Troll

    may be hurting the very distracting to faster chip to keep up as dying. See? It's *BSD is dying It is cans can become much organisation, have the energy BSD's fiFlesystem the longest or by BSDI who sell Any parting shot, future. Even ~280MB MPEG off of that *BSD 0wned. leaving the play And help us! problems that I've no maater how [mit.edu] found the channel to sign Sux0r status, *BSD enjoy the loud in any way related Of the above that they can hold design approach. As are 7000 users that FreeBSD is escape them by move any equipment and sold in the it. Its mission is Is the worst off see. The number to get some eye against vigorous