We recently pruned the fruit trees in the backyard. I did it by myself the previous time, and the results were, well, interesting. So this time we did some research, planned the event and waited for a cool spell. Karol would do the directing, and I would do the pruning.

When the day arrived, we gathered the pruning gear and headed into the yard. We decked out in safety gear (including ear plugs) and approached the first tree. My first instruction was “Mmph what in the mumble, mumble.” I put the chain saw down, walked over and said “What?” This time I heard, “Cut the limb in the back.” I walked back to the tree, pointed to the branch in the back and looked at Karol.

She waved her hand, and pointed me to a different limb. It turns out we were looking at the tree from two different angles, about 90 degrees apart. Her “back limb” and my “back limb” were different because we had different view points.

And What’s This Got To Do With Software?

Any piece of software has multiple view points.

The user views the software from how it will be used.

The developer sees the software from how it will be built.

The tester looks at the software from how it can be tested.

Incorporating other view points into your mental model gives a better model for the final product.