This document discusses techniques for improving software testing processes. It advocates for automating testing to make it faster, cheaper, and more accurate than manual testing. It also discusses experimenting with different approaches to task assignment, including assigning the least qualified person to a task. This counterintuitive strategy was found to increase overall team velocity the most over several iterations, as it promotes learning. The document emphasizes using metrics to evaluate different process experiments and adopting the approaches that work best.
15. ”
Manual testing is immoral. Not only is it high
stress, tedious, and error prone; it’s just wrong
to turn humans into machines. If you can write
a script for a test procedure, then you can
write a program to execute that procedure.
That program will be cheaper, faster, and
more accurate than a human, and will free the
human to do what humans to best: create.
Robert “Uncle Bob” Martin
32. Identity
”Work is not about us
and yet it’s all about us
what we do, what we feel,
and what we believe
33.
34. Put the product
to the forefront.
Be a team player first,
specialist second.
35. Beginner’s Mind
”In the beginner’s
mind there are
many possibilities.
In the experts
there are few.
36.
37. Due to these influences, we chose a software process
with rapid feedback and change. We ran the shortest
iterations we could (1 week) to get the most data
possible. We tracked our metrics closely, and we ran
several experiments each iteration. We used the
metrics to decide what worked and to what degree. We
then adopted those things that worked and started the
next set of experiments.
Chief among these experiments were variations on
• How to handle task ownership,
• How to assign tasks to people, and
• Which style of Pair Programming to use.
38. Due to these influences, we chose a software process
with rapid feedback and change. We ran the shortest
iterations we could (1 week) to get the most data
possible. We tracked our metrics closely, and we ran
several experiments each iteration. We used the
metrics to decide what worked and to what degree. We
then adopted those things that worked and started the
next set of experiments.
Chief among these experiments were variations on
• How to handle task ownership,
• How to assign tasks to people, and
• Which style of Pair Programming to use.
39. There are three general strategies for deciding who
works on which tasks: assign them to the most-
qualified person, assign them irrespective of skill, or
assign them to the least-qualified person. We tried all
three approaches.
40. There are three general strategies for deciding who
works on which tasks: assign them to the most-
qualified person, assign them irrespective of skill, or
assign them to the least-qualified person. We tried all
three approaches.
Interestingly, these data showed an overall increase
in velocity when tasks were consistently assigned to
the least qualified person. The difference was
especially marked over long periods. Choosing the
least-qualified strategy really pays off after the team
has used it for several iterations, but outperforms the
others even in the first iteration.