coauthor Tim Lister calls you an endgame veteran and hails your proven,
practical advice. What exactly is the endgame? When does it begin and end?
Galen: I consider the endgame as the period
starting when a software project is first released for external testing, and ending
when it's available to your customer. External testing in this case probably implies
release to a non-development testing group. It's a period primarily focused on
requirement validation, testing, defect repairs, software change negotiation,
and iterative releases.
DHQ: You say in your
new book, Software Endgames, that very little work has been done on triage
and endgame management practices. Why do you think that is?
Galen: There's been much more focus on how software is structured
and built rather than on how it actually gets finished and released. I think people
have this "beginning focus" because software structure and methods may seem more
glamorous or interesting. While beginnings are important, I consider it an art
and a challenge to actually finish what you've started. The endgame is the more
practically focused and workmanlike part of building software. Anyone can start,
but finishing what you started -- successfully -- is much more difficult.
You describe your initial impression of the endgame as a chaotic, reactive period.
How did you find an orderly way to manage the endgame?
I don't think you really manage it per se. What I try to present is a set of practical
tools and techniques that essentially guide teams through the chaos, so they can
make sound decisions and take the right steps to winnow down change as they stabilize
a product for customer release. You donŐt manage or plan your way through an endgame.
Rather, you firmly and decisively guide your way through it -- making decisions
that map to the core requirements for the project.
What exactly is defect triage -- and does it involve doctors and stretchers?
Galen: It doesn't involve doctors or stretchers,
but you're close. I borrow the term "triage" from the medical profession -- it's
the decision process doctors use when faced with more than one patient in need
of emergency care. Doctors are required to triage injuries into categories of
criticality before deciding who needs treatment first. The same categorization
and action-taking steps can be applied to the prioritization of software defects
-- particularly when you've got lots of the little buggers. Triage decision-making
concepts map quite well to the endgame.
state that triage and change management are vital to a successful exit from the
endgame. Why is that so?
Galen: It's all
about deciding what to fix or add and what not to, as you approach release. You
typically get hundreds of defects and many enhancement requests -- many more than
most teams can implement while delivering the software in a meaningful timeframe.
Selecting which features to deliver and guiding the team toward fewer and fewer
changes over time are crucial skills in stabilizing any software project and readying
the software for release. I've seen so many teams struggle with either doing too
much or too little, only to miss the overarching goals of their projects.
What are the worst things people do during the endgame?
I'd break "people" up in this case into two categories -- the team members proper
and then the management team. From a team member point-of-view, I think the worst
thing you can do is too much. Try to deliver too much, repair too much, work too
much. I use the term "youthful enthusiasm" to indicate this tendency I've seen
within teams. It's much better to drive toward realistic goals that map to the
historical capabilities of the team. From a management perspective, I focus on
two potentially terrible patterns. First is driving blaming or other dysfunctional
behaviors within the team if things aren't going right. I consider it management's
job, or a key leadership responsibility, to keep a level head no matter what is
going on. The other major mistake is driving too much overtime. Overtime is considered
unavoidable in the endgame, yet it's probably the single biggest cause of failure.
DHQ: You state that the endgame is a microcosm of
the overall development process. How so?
If you think about it, in the endgame you are managing iterations of the complete
development process -- requirements; construction and repair; testing and deployment.
Granted, you are only working on small defects or enhancements or delivering late
bits of functionality. Nonetheless, all of the standard software development methods
and phases are there. It's a wonderful opportunity to observe your processes in
the "small and urgent" arena of the endgame. And since it repeats so frequently,
it's a good place for making small adjustments -- checking for what works in your
corporate and project contexts.
DHQ: Tell us about
the importance of attendance and punctuality at meetings.
Galen: I've always been a stickler for well-run meetings, whether
endgame-focused or not. I guess it's the practical side of me that doesn't want
to waste everyone's time, and the efficiency expert side who wants to maximize
focus and effort. I think it's just plain rude to be late for a meeting where
you are a key contributor. That lack of professionalism and focus then cascades
over every endgame activity.
DHQ: What rules of
thumb can you give us for prioritizing change requests in the endgame?
Galen: The only rule of thumb is to create a project rule of
thumb to guide your prioritization. Each company has different needs and drivers
for their prioritization scheme. In a Web portal project, performance would probably
be very important, while in medical systems, safety issues would take precedence.
What is important is for the team to determine their release criteria and the
defect and enhancement prioritization rules -- in advance of the project. That
way, when the heat is on, they have already set up guidance mapping to the overall
project goals and key requirements.
the best way to turn down change requests -- to say no?
Actually, I really emphasize not having predefined or binary responses to change
requests within the endgame. I believe the more flexibility you have, the better.
So, promising to fix something in a subsequent release becomes a viable option
for handling change requests. However, you should create as many options as possible.
For example, you can implement only part of a request now and defer bits until
later releases. Some requests should never be met, so an absolute no is viable
as well. I always try to get to the "true need" behind any change request. If
it's truly required for a product to be successful, then I try to accommodate
the request in full or at least partially. Flexibility and breadth in your response
is the key.
DHQ: What's unique or different about
the endgame in an agile software development process?
First of all, some of my recommended processes need to be scaled to support much
shorter release points or iterations. That's probably the most obvious change.
Another is focusing more on self-directing teams when applying the book's endgame
guidance techniques. I'll give you an example. In the book, I propose that the
development manager assign defects in a "work queue" fashion for each engineer
on the team. This is one of the more controversial recommendations I make within
the book. Within an agile team, I think the same approach applies, but the team
members should probably select their defects with some simple guidelines to influence
balance. As long as the spirit of my recommendation is maintained, I think these
sorts of adjustments are perfectly fine within an agile context.
In a systems or software development department or organization, who would most
benefit from reading Software Endgames?
I've operated in three primary roles that influenced the audience target for Software
Endgames. I've been a software project manager, a software development manager,
and a software test manager. Sometimes, I've been bits of all three at once. I
think there are lessons for all three of those functional perspectives in the
book. If there is a true primary focus, it would be toward the project
manager or anyone tasked with leading projects and teams through an endgame.
What one lesson from Software Endgames would you most like the reader to
take to heart?
Galen: The key is to set
up structures that illuminate the goal and guide the team. Then, get out of the
way and simply guide the team toward success. In many ways, the agile methodologies
have come to the same conclusion -- with the notion of self-directing teams. My
best endgames have been all about the team directing itself toward a clear set
of goals and objectives. Inevitably, I'm always amazed at the power of technical
teams to meet a challenge and succeed. A good endgame leader's job is to set the
compass and guide the way, but not get in the way.
You describe the endgame as the most magical moment in a software project.
What advice would you give project managers who loathe this stage of software
Galen: I would encourage them
to take the book's lessons to heart and make them their own -- adapting and applying
them to their own endgames. What makes an endgame magical is the level of challenge
and the thrill of a successful navigation and subsequent product launch, not only
for the project manager, but more importantly for the team. To me, there is no
greater thrill than guiding a team from a position of "impossible" to "release"
by traversing a tough endgame.
DHQ: Tell us about
your current work and activities.
In the last few years, I've focused on the endgame from a testing point of view.
It's interesting because I've learned that the testing role -- at least in certain
contexts -- seems to have a limited capacity to properly influence the endgame.
I believe that within the software development management and project management
functions, there is more natural capacity to have influence, so I encourage those
managers to engage their testing teams during their endgames. As I mention in
the book, testing teams are the secret weapons of the endgame, and my experience
in the past few years has only underscored that view. That being said, I'm still
learning and growing from my endgame pursuits and from sharing lessons and experiences.
The book is opening more doors in this area. I'm also looking forward to ongoing
endgame collaboration and lessons -- sharing via our discussion Yahoo group. For
information on how to join, check www.rgalen.com.
I wrote this book because when I first began software testing, I had
previous experience in testing complex hardware systems. Had I just followed that
model, I wouldn't have realized the criticality of beginning test planning during