Next: References
Up: Opening
Abstract Previous: Appropriate
Processes
Beyond the Dogma
What follows are some experientially-based perspectives on positions I
have been frequently asked to justify. Each is an arguable position, which
implies it has some things going for it, and some things going against
it. First, it is important to understand what the positions pros and cons
are. Then, the importance of each side must be weighed to understand which
of the underlying characteristics are important within an individual environment.
-
FTRs are a pure peer activity; supervisory attendance is a strict taboo.
The general feeling I have from organizations in the U.S. is that supervisory
presence in a meeting often stifles free discussion among an otherwise
peer-group. A supervisor's `direct reports' may be on the defensive, and
others may not feel comfortable pointing out what could be construed as
someone's mistakes in the presence of someone with performance review
responsibilities. The drawback to this position is that in many high-tech
organizations, technical prowess is a precondition to promotion, and thus
the first level supervisory ranks have valuable expertise to share. They
also often have a broader project perspective to bring to development discussions.
From an organization in Sweden, where supervisors are often integral players
on a development team, there is experience where supervisors are active
in the FTR processes and their presence is not an issue. I personally know
several managers who should never step foot into an FTR, and others who
have much to contribute and do so constructively.
-
All FTRs need data tallied recording total hours expended and major
problems identified.
To understand the cost/benefit of a process, this data is essential. In
the IBM of Fagan's time, activities were continually viewed with an immediate
bottom-line perspective in mind. The data he collected was essential to
the survival of the Inspection process within IBM, and for the rest of
us, it proved a key motivator to look further at his ideas. However, all
data carries with it a cost of collection, both physical and mental. Data
regarding effort expended in individual preparation for an FTR is
particularly troublesome, since its collection can not be easily automated,
and there are peer and management pressures to be less-than-truthful in
many circumstances.
The basics of process control tell us that once we have a process well
in hand, monitoring may be reduced to fractional levels to reduce data
collection and analysis costs, and thus further reduce overall process
costs (noting that data collection is a cost born by the process itself).
This is the basis behind things like skip-lot sampling, sampling to various
acceptance levels, etc., common in the manufacturing world.
Thus, when implementing an FTR process, it is important to understand
where everyone stands on this issue. If managers have been convinced of
the benefit through other means, this data may be of little use, and people
often resent amassing it, which makes it counter-productive. When we collect
data, there should be an ongoing rationale for its use. When the process
has been internalized and becomes a normal part of business-as-usual, data
collection efforts should be focused on the next generation of challenges
confronting the organization.
-
An FTR's group meeting is crucial, where meeting synergy results in
more defects uncovered.
Why do we organize team meetings? There are many answers. An organizational
psychologist may say: to capitalize on group synergy. A project manager
may say: to make an event visible, and to make it happen. A sociologist
may say: to motivate people to do the best work, since they desire to live
up to the group norms of their peers. On the negative side of this issue,
Votta discusses the idea of ``meeting loses", where a reviewer,
for various reasons, fails to mention in a meeting a problem uncovered
in their individual review [Votta'94]. In
his study, meeting losses cancel out the gains from meeting synergy, and
the meeting ends up adding no value to the process. [Porter,
et.al'95] however find a net 33% gain from meetings, once again reinforcing
the idea that processes are context dependent. Given that meetings are
expensive in staff effort, the rationale and justification of them should
be clearly understood.
-
A meeting means the team gets together in one place at one time to work
through the materials.
This is so implicit in our thinking that it is rarely stated. Our communications
technologies are pushing forward our abilities to work together at a distance.
In large corporations, people with the key experience for a development
team may be scattered around a state, country, or the globe. When they
can be easily accomplished, face-to-face meetings are probably most productive,
however there are a wealth of other opportunities technology is opening
up for us. One focus for Internet usage is on collaborative development
environments: distributed times require distributed thought and distributed
processes. Johnson has created a system for computer supported FTR interaction,
where participants view documents, note issues, and engage each other in
a Delphi-style interaction, all from the screens of their workstations
[Johnson'94].
-
Given a fixed purpose of identifying defects in a meeting, no discussion
is allowed of possible fixes.
According to the lore, software folks love nothing more than to dig into
a problem, re-architect a solution, and then go hack some code. The goal
of this rule is to forestall such behavior and keep the meeting on track.
The implicit understanding is that there is much material to cover and
the team will never get through things otherwise. So how true is this stereotype
in your organization? Given that a meeting has gathered people with relevant
expertise for the specific material at hand, often a possible solution
is worth discussing to some degree: it may help further delineate the problem,
or it may provide a long-sought moment of enlightenment to the person charged
with providing the fix. This commandment is one I've seen cause much rebellion
among technical teams. As a trainer and facilitator, I feel I can best
serve a team by making them aware of the commandment's pros and cons, and
coming down hard on meeting moderators to keep things on track, in light
of the full task they need to cover.
-
If any participant arrives unprepared, the meeting is postponed.
Here's another detail that is very culture dependent. The goal is to help
motivate and assure preparation by all team members before attending a
meeting. There are certainly other methods besides punishing a whole group
for the transgression of an individual, many of which may have a more positive
reinforcing effect. I recommend that the moderator check in with each reviewer
a half-day before the meeting to verify the teams overall preparedness;
this provides a friendly nudge to the ill-prepared with enough advance
time so they can prepare, and it provides an opportunity to reschedule
if necessary without everyone going out of their way to get to a meeting
that will be immediately deferred.
-
Find the best available FTR process and implement it.
This idea has been discussed earlier, but here are a few more parameters
to consider. What exactly is meant by the term best in that statement?
Is it based on data or emotion? From whom? In addition to my earlier assertion
that ``best processes'' are subjective rather than objective things, another
bothersome aspect of this dictate is an underlying characterization of
a process as a fixed, never-changing thing. This runs counter to the prevailing
wisdom that all processes can be improved. Start somewhere reasonable
and move forward from there. From a reasonable start within an individual
team, and with some attention to ongoing process improvement, the process
can become `best' within the framework that means the most, that of the
team using it. Rifkin takes this to its logical extreme, where every class
session he teaches is charged with defining their own individual process
[Rifkin & Deimel'94]; this, however
will have drawbacks for large projects trying to implement a unified process
across the whole development team.
-
Informal, generic reviews are ineffective compared to rigorous FTRs
in finding product defects.
The key parameter here is to understand where you are looking for defects.
For a design document that was about to be baselined and sent on for further
implementation, this statement is often appropriate. However, for a partial
design, existing perhaps on a set of foils, without fully specified requirements,
I can still productively gather people together to poke around the ideas
and help delineate, as a team, viable design alternatives. Often key problems,
like an inappropriate design strategy, can be identified at these early
stages which significantly reduce downstream costs of regrouping later
on.
-
All work-products across the lifecycle will undergo peer review.
FTRs have proven many times their cost-effectiveness across a wide domain
of applications [Ackerman, et.al'89]. However,
as a process based on groups of technical personnel, FTRs are certainly
expensive. Remember the admonition: When your only tool is a hammer,
all your problems look like nails. As software professionals, we have
many avenues for defect detection, for example, testing, analysis tools,
and parallel development, as well as FTRs. Using them all in their proper
proportions becomes a study of cost/benefit tradeoffs and of social issues
in acceptance and use by the technical staff. Process engineering,
after all, is in understanding the balance.
****************
I have tried to put forth a cross-section of issues in this paper. In
designing the best possible FTR process, certainly history provides us
solid guidance, however amid the tug of reasons toward and away from a
position, one's reasoning should be based on a specific organizational
context.
Next: References
Up: Opening
Abstract Previous: Appropriate
Processes