This is an HTML rendering of a working paper draft that led to a publication. The publication should always be cited in preference to this draft using the following reference:
The environment we work in as developers can make a tremendous difference on our productivity and well-being. I’ve often seen myself get trapped in an unproductive setup through a combination of inertia, sloth, and entropy. Sometimes I put-off investing in new, better tools, at other times I avoid the work required to automate a time-consuming process, and, also, as time goes by, changes in my environment blunt the edge of my setup. I thus occasionally enter into a state where my productivity suffers death by a thousand cuts. I’ve also seen the same situation when working with colleagues: cases where to achieve a simple task they waste considerable time and energy jumping through multiple hoops.
A stressful couple of years gradually drew my development environment into an unproductive disarray. Over the past few months I recovered from this state with many small and medium-scale investments. This column is based on my personal experience and observations as well as suggestions from colleagues. So here’s a scorecard we can use to evaluate and fix the environment we work in. Some fixes involve tweaks in our setup, others may require us to install new tools, others to learn new skills, and others to negotiate with our managers. They’re all worthwhile investments.