December is a time of waiting for many people. Children await the arrival of Santa Claus and gifts. The world waits for the arrival of winter and a return to the daylight we all crave. We’re anticipating the beginning of a new year. For me and my family personally, we’re awaiting the arrival of a new baby. December brings about anticipation, and with it comes waiting.
Software developers are used to waiting. We’re often asking for time to improve the code our employer charges us to maintain, only to hear, “we need to wait on that.” We beg desperately for upgrades to systems, servers, and technology, only to be told, “that’s not in the budget this year.” We seek to upgrade to a newer version of PHP, only to be told, “that will have to wait.”
Even the most energetic and positive software developer can look at the wait as a time of distress, where waiting ticks off the seconds, days, and months of useful life our software still has. We know that waiting to upgrade will only push us farther behind until upgrading may no longer be an option.
What is a developer to do?
The answer is to embrace the wait. So many things about software development fall outside our control: when we’ll have time to refactor our code, when we can upgrade our servers, when we can buy new technology. But that doesn’t stop us from doing the tasks necessary to prepare for the day when those things are possible.
Children do not sit idly by and wait for Santa Claus. They write letters, bake cookies, and decorate their homes. We do not sit idly by waiting for winter to come; we prepare for festivals and parties and spend time with loved ones. We prepare for a new year with new year’s resolutions. My wife and I are preparing for our new arrival by buying clothes and setting up a nursery.
Just because you are waiting does not mean you are powerless. Waiting gives you the time you need to prepare: bringing your code up to modern standards slowly over time and anticipating the arrival of new technology or new hardware. You need no one’s permission to upgrade your development environment, to stand up Docker, or to write tests. These things are part of your job and well within the realm of your responsibility and power.
As we enter this time of waiting and anticipation, I ask you: what are you waiting for? And as a companion to that question, how will you prepare while you wait? Will you be ready when the time comes? Will you be prepared to act?