Saturday, April 24, 2010

Ignore the Scoreboard

The Scoreboard
Progress in software development is notoriously difficult to measure. But the Point System, which was introduced as a project estimation tool, has warped into a kind of scoreboard, used to measure the value of an iteration. The aftermath of a sprint is often met with questions like, "How many points did the team achieve?" and "Why were there fewer points than last iteration?" When points come to be seen as the measurement of progress, the Hawthorne Effect takes hold, and ambitious developers become inclined to strive for point maximization.

The Foolish
The foolish developer plows through points as quickly as possible, then scrounges the backlog for more. But, as one redditor put it, "Do more than is expected of you, and more will be expected of you." The foolish developer faces an ever-increasing workload, while leaving a wake of subtle bugs and rushed designs. Slowed by this wake, the foolish developer grows busier and busier, all the while getting less and less done.

The Lazy
The lazy developer uses the scoreboard as evidence of productivity, while freely neglecting all intangibles. He is wise enough to see the drawbacks of taking on extra points, and shares in the foolish optimism that QA will catch his blunders. And so he coasts, atop his perfectly acceptable velocity chart.

The Wise
The wise developer completes work consistently and on schedule, but is cautious about pulling new stories from the backlog. Any remaining time is spent on intangibles: refactoring, documentation, education, communication, and tools to make life easier. As the old adage goes, "You make your bed, and you sleep in it." The wise developer produces high-quality work with more and more ease over time.

Code Quality
A readable, maintainable, and flexible code base makes life easier for all parties involved. But the scoreboard shows no distinction between a shitstorm and a sonnet. People tend to appease this concern by sprinkling stories with a magical coating of QA fairy dust.

There is a false, widespread belief that Quality Assurance has the ability to assure quality. But if the underlying abstractions aren't sound, QA can grasp at weeds for years and still find new ones sprouting up daily. A thousand little bug fixes hardly inspires confidence. This is not to diminish the critical importance of QA; unforeseen issues are a fact of life in software development, regardless of code quality. But when applied to a rushed, point-fueled design, it amounts to lipstick on a pig.

The Solution
The excessive focus on points blurs the line between the wise and the lazy, but more alarmingly, it drives ambitious developers to inadvertently rot the company from within. The solution is simple: ignore the scoreboard. Be aware of the Hawthorne Effect, and its effect on you. Commit to work and follow through, but spend your excess time on the intangibles. Fight the urge to maximize your points. Instead, maximize your value.

1 comment:

  1. "Questioning the Hawthorne effect"

    http://www.economist.com/business-finance/displaystory.cfm?story_id=13788427

    ReplyDelete