In America, we celebrate Labor Day on the first Monday in September – September 3rd this year. For you international readers, Labour Day might be celebrated at other times, depending upon where you live. May and October are popular alternatives.
Labor Day in America is intended to celebrate the contributions and achievements of our workers. (It also is a symbolic end of summer.) Over the years, American workers have built cities and a strong transportation infrastructure that includes highways, railways and air transportation. Workers have built tremendous companies, producing automobiles, planes, computer hardware and software. We put men on the moon and brought them back safely – an important piece of our acceptance criteria. The list is endless.
As we acknowledge the achievements of workers, we should also recognize that much as what we have accomplished in the past was done through significant effort. But sometimes we value the wrong things. Working long and hard may indicate commitment, but there are times when it can be counter-productive, like intense schedule pressure coupled with excessive overtime in software development.
Having aggressive goals is not a bad thing, but we need to make sure that we don’t cross the line – otherwise we’ll hit the software wall that I wrote about this spring as I reflected on the Boston Marathon and my own running experiences. Working smarter to work faster pays off when it comes to knowledge work like software development.
We should start thinking more about the advantages of Labour Day, which has its origins in the eight-hour day movement. As Americans, we tend to work hard, forgoing vacation time and other things that are counter-productive in the long run. The case for taking more time off (or even using what has been offered) and taking care of ourselves was made strongly by Tony Schwartz in his book, The Way We’re Working Isn’t Working.
I support agile development’s support of sustainable development for many reasons, one of which is that corporations that want predictability should – but don’t – promote sustainable software development. After all, wouldn’t it be great to maintain a constant pace indefinitely?
If you want faster cycle times and greater throughput, then we need to focus on the factors that contribute to making that happen. A partnership between management and the workers needs to be forged; cranking out features at a frantic pace while ignoring important aspects of software development that drive greater productivity over the long term is, as you may surmise, short-sighted to say the least.
So this Labor Day, let’s celebrate our successes, acknowledge our weaknesses, and concentrate on working smarter, not harder in the future. We don’t have to labor as hard as we often do to produce great software.