
Foreword
Years back, I noticed that Dave Nicolette’s blog had the same subtitle as mine, “Effective Software Development.” This contrasted subtly with what seemed to be the dominant interest at the time, efficient software development. I quickly found out that even when our opinions differed, our goals and values tended to be in close alignment, and the conversations were always enlightening.
I’ve worked with a number of organizations, large and small, in a decade of being an independent software development consultant. This work has given me opportunity to observe these organizations in action. The ones that are most stuck are the ones that focus on efficiency.
Efficiency tends to squeeze the slack out and discourages taking time to wonder and explore. This single-mindedness eliminates the opportunity to learn. Learning is reduced to optimizing measures within the local neighborhood of the status quo, often to the detriment of valuable things less easily measured. Companies set up systems to gather this data efficiently, sometimes at the expense of veracity. If the metrics mania takes hold, they may have programmers take time from programming to collect more data, blindly sacrificing efficiency in real work on the altar of efficiency in measuring the work.