Software quality is important to me. I think about it a lot. I think about it when I’m estimating, when I’m coding and when I’m at home too. Today I was thinking about software quality on a run and an interesting thing occurred to me, that when we set a target for quality, there’s a psychological mechanism that steers us sub-consciously toward it. It encourages us to make the decisions now that will move us toward our goal.
This is a good reason to set stretch targets to aim for. Inevitably there will be challenges to interfere with our best plans, however if we have a stretch target in place we can keep our eyes focused toward it and make the commitment necessary to push through the difficulties. Conversely if we only strive for a base target, then we are less likely to feel motivated to achieve something special and worthwhile. We are setting our sights too low.
The combination of a stretch and a base target have another purpose too. Because while it may come to pass that the base is all we can achieve, this will only be due to constraints outside our control. It is not what we were aiming for. By striving for a stretch target we have some headroom when things don’t go to plan, and can still achieve a respectable outcome.
A lot of these musing were stimulated after reading a wonderfully fascinating article by an engineering leader in Microsoft, written in 1989, about working toward zero-defects. Zero defects sounds like an unattainable ideal, however it is a worthy stretch target in my opinion. Big goals and hard targets give people reason to focus, to strive, to exceed their day-to-day and break out of their comfort-zone. Perhaps there is something we can all learn from this effort inside Microsoft.