Industrial XP -> Values and Practices

Values and Practices

 Author: Joshua Kerievsky, Industrial Logic, Inc.
Started: June 30, 2003
Updated: July 1, 2003

This page contains short descriptions of the values and practices in Industrial XP. If you'd like to discuss the ideas on this page, please consider joining our email list.

Continuous Risk Management

Software projects have all sorts of risks:

Continuous Risk Management is the practice of continuously learning what your risks are, discovering what to do about them and doing something about them.

One of the greatest risks in software development is building software that isn't needed or that has no chance of succeeding with its users. The Planning Game, Evolutionary Design and Continuous Learning aid in managing this risk.

Books that address the subject of Continuous Risk Management include Tom DeMarco and Tim Lister's Waltzing with Bears : Managing Risk on Software Projects and Rob Thomsett's Radical Project Management

Project Chartering

Project Chartering helps people answer questions like Like Refactoring, Project Chartering is an on-going endeavor. Writing and revising a charter helps establish a project's
  • Vision and mission
  • Project Community
  • Values
  • Committed resources
  • Measures of success
  • Boundaries and limits
  • Committed resources
  • Working agreements
Project Chartering does not take the place of Release and Iteration Planning; it merely provides direction for those adaptive planning activities.

Write your Project Charter on posters in big letters and place these posters in highly visible places.

Project Community

I've learned from my friends, David Schmaltz and Amy Schwab, that a Project Community is a population of people who effect a project or are affected by the project.

This population is often bigger than you think.

For example, some projects I've coached have not adequately involved building maintenance. And yet, establishing a comfortable working environment by configuring and re-configuring furniture and computers has been an important part of our project work. Without building maintenance membership in our Project Community, we've had to wait for changes or make unauthorized changes that upset people in the organization. What's the problem here? Building maintenance can help us do better project work so they must be members of our Project Community.

Human resources folks participate in our projects in unseen ways: for example, they assess project worker performance. Such assessments may influence the actions of project workers and managers. And yet, such assessments may be out of alignment with the nature and actions of the Project Community. One way to help improve the way we assess people's performance within the organization is to have human resources members in our Project Community.

Our hyper-efficient software development process is aimed at producing only what people value and need. To produce such software, we need members of our Project Community to include those who will use our software and thoroughly influence what we create for them.

If sales and marketing people have influence on what our software does and how it sells in the marketplace, they must be members of our Project Community.

If our competitors can influence our project work with press releases or product releases, how do we include them in our Project Community?

If people in the organization do not decide to participate in a pilot XP project, are they not part of the pilot's Project Community? I've found that by including them in the Project Community - by talking with them, giving them guided tours of the pilot project, listening to their concerns - I can more effectively help an organization grow XP over time.

Your Project Community is bigger than you think.

David Schmaltz, author of The Blind Men And The Elephant : Mastering Project Work, wrote:

A Project Community member's involvement need not be (and rarely is) defined by proximity. Each is defined, rather, by their influence and their ability to influence the outcome. Membership is neither voluntary nor conscripted, but more a matter of where the ball lies. Like in golf, the rough, sand traps, barriers, as well as the fairway, green, and pin are all influences on the achievement of the objective; each member brings their influence subtly and inexorably.

The primary issue facing every project is the lack of awareness of its own community-ness. That's why the first steps are well focused upon increasing this awareness within the community. The inclusionary mindset is a necessary precondition for the project manager. Her first responsibility to the project, after getting clear about her own purpose for engaging, is to help the others understand their influence and to help each find "their project within the project." This is a cute way of saying that she needs to fully acknowledge each individual's influence and to understand what they are using the project to pursue.
[Excerpted from message 233 on the IndustrialXP email list]

Test-Driven Management

by Joshua and III

How does a Project Community learn whether its project work is successful? The same way programmers learn whether their code works: tests.

Apple Computer had the following management test for their iTunes project:

Our new service will register at least 1 million song downloads during its first month in production.

1 million song downloads = $1 million for Apple. After 1 week in production, the new service passed Apple's management test. Project green bar!

Test-driven management directs the specification of management tests. A management test is a statement that indicates a measurable, time-limited goal, framed in a binary manner: We either achieve the management test or we fail. Good management tests are SMART: Specific, Measurable, Achievable, Relevant and Time-Based.

Management tests are statements about the world external to the project, treating the project as a boundary of responsibility and authority. They avoid specifying ways in which external effects (that is, things that occur outside the boundary of the project and the software) should be achieved. In other words, good management tests set a destination, but don’t specify how to get there.

Management tests are specified using spoken language, not software, and must be measurable and undebatable. The measure can be a hard number (50 organizations will have signed up to use our software by December 31st) or a perception number (by project end, survey of customers’ happiness shows a 20 percent increase on a scale of 1 to 10).

Management tests provide an excellent way for a Project Community to understand what unites them. This echoes Tom DeMarco and Timothy Lister’s observation that “The purpose of a team is not goal attainment, but goal alignment.” (Peopleware, Dorset House, 1999, second ed.). Management tests create goal alignment by delineating how and when success will be measured, enabling individuals to understand the effects of their own actions.

Management tests complement an XP project’s unit tests and storytests by adding a test layer around the project itself. While unit tests assert that small units of code meet programmer expectations, and storytests assert that system features meet customer expectations, management tests assert that organizational returns on investment meet management expectations.

Management tests should never state what system features must be completed by a given date, for that’s the job of Release Planning. The tests should also not create an environment in which people live in fear of their tests. Management tests are meant to form connective tissue within a Project Community, which implies that people must be comfortable in their willingness to commit to the achievement of the tests. It’s therefore best for a Project Community to formalize management tests with business managers prior to embarking upon Release Planning.

Management tests are part of a Project Charter. The tests are assessed at regular intervals, such as the end of each iteration. Tests may be updated or deleted as a Project Community learns whether its tests are helping drive it towards important organizational objectives. Management tests come in two flavors: external and internal.

External management tests are focused on the success of the host organization, measurable outside the project and software boundary, and critical to the organization’s Gold Owners.

Internal management tests are focused on the success of the development organization, measured at or within the project boundary, and critical only to development managers.

For more on Test-Driven Management, including sample management tests, please see Joshua and III's Software Developmemnt Magazine cover story, Right Game, Wrong Team.

Sustainable Pace

What is Sustainable Pace? It means working at a pace you can comfortably sustain and occasionally sprinting when you need to. Sustainable Pace is easy to define and harder to practice.

At the core of Sustainable Pace is the question, "How good are you when you're tired?"

I'm not good at all when I'm tired. While I can get things done when I'm tired, I don't work effectively or efficiently. I drag. I slog my way through work and my work isn't of high quality.

If I get accustomed to consistently working at an unsustainable pace, I spend a few non-productive hours per day getting little done. My attention drifts to a web page, a chat window, the phone, an email, a magazine. Yet such time isn't what Tom DeMarco would call Slack. Slack is healthy; it's a good thing. When I work too many hours, the time I spend drifting away from my work is my body and mind rebelling against an unsustainable pace.

In his keynote speech at the first Agile Software Development conference, Jerry Weinberg made one thing crystal clear: to be a professional, you must take care of yourself. "Taking care of yourself," Jerry went on to say, "means taking care of your whole self - body and mind."

Maybe that takes courage. If your organization values people who most definitely do not work at a sustainable pace, you'll probably need courage to work at a sustainable pace. You might loose your job. Or, you might be so productive that no one could question your dedication or your accomplishments.

When I work at a sustainable pace, I have energy to work efficiently and effectively, I have time to spend with my family and friends, time to work out, time to even reflect on my work and a genuine satisfaction with my productivity.

When I commit to working at a sustainable pace, I know that I must not dilly-dally during work hours, as I won't have evening hours to make up for lost time. Committing to this practice means focusing during work hours and for me, and many others, the easiest way to focus is to pair with other individuals on tasks. After numerous hours of pairing, I'm usually happy with my productivity and content to go home on time.

Sustainable Pace takes practice and experimentation to master. Give yourself time to learn this practice. Observe yourself as you experiment with it. You may just find that you're a better professional when your pace is sustainable.

Planning Game

description coming soon...

Storytelling

description coming soon...

Storytesting

description coming soon...

Frequent Releases

description coming soon...

Small Teams

description coming soon...

Sitting Together

description coming soon...

Continuous Learning

description coming soon...

Iterative Usability

description coming soon...

Evolutionary Design

description coming soon...

Story Test-Driven Development

description coming soon...

Refactoring

description coming soon...

Domain-Driven Design

description coming soon...

Pairing

description coming soon...

Continuous Integration

description coming soon...

Collective Ownership

description coming soon...

Coding Standard

description coming soon...

Retrospectives

description coming soon...

Industrial XP logo
 
Values & Practices
·
·
· Continuous Risk Management
· Project Chartering
· Project Community
· Test-Driven Management
· Sustainable Pace
· Planning Game
· Storytelling
· Storytesting
· Frequent Releases
· Small Teams
· Sitting Together
· Continuous Learning
· Iterative Usability
· Evolutionary Design
· Story Test-Driven Development
· Refactoring
· Domain-Driven Design
· Pairing
· Continuous Integration
· Collective Ownership
· Coding Standard
· Retrospectives



 
Send mail to webmaster@industriallogic.com with questions or comments about this web site.
Copyright © 2004 Industrial Logic, Inc. All Rights Reserved.