As a developer for a mobile charge capture company, I am blessed with some unique access to the medical industry. I get to have one-on-one conversations with doctors, practice administrators, and even those who've been on Capitol Hill to discuss and lobby for better health care reform! Those special experiences aside, at the end of the day, I’m a developer at a software company. And like all developers at software companies, I am subject to similar frustrations and roadblocks that can prevent me from being the best programmer I can be.
In my career I have spent an unknown number of hours on a bug that I just couldn't figure out, or a new feature that just wouldn't work right. Often, I get that "Eureka! moment," not from staring at the screen for the umpteenth hour, but driving home or walking the dog. But why couldn't I see the answer when I was dead focused on it, and instead more successful when I was, say, doing the dishes? Aren't developers supposed to disappear into a dark coding cave for long periods of time and mystically emerge with some cool new feature? To answer that question, we must admit that developers are not machines. We are humans and we need breaks. It may sound backward, but we need to stop working so much in order to get more done.
As developers, we have a responsibility to create great code that should do more good than harm. When we work and push ourselves for long periods of time, we set ourselves up for failure. When the mind fatigues, the risk of introducing software bugs goes up. The more bugs introduced, the more time needed to fix them later. This downward spiral is expensive - in both time and money. With our ever growing technologically dependant society, these bugs can cost billions of dollars, physical harm, and in the worst of cases, fatalities. A particularly expensive example occurred in 2012 to Knight Capital Group. What was supposed to be a simple set of trades over the course of a few days, was executed in a matter of moments, and reportedly cost the company $440 million. Yikes!
But what can we do? Implement new or better agile practices? Add seemingly infinite unit tests? Re-train personnel to re-emphasize the importance of testing? Or all of the above? No matter what the attempted solution, nothing will help without a clear, focused mind to execute these solutions. So instead of working long hours in a row, we should think about how to work more efficiently and effectively. Rather than powering through daily code-a-thons, try working in smaller blocks of time (90-120 minutes). Afterwhich, get away from your desk and take an effective break.
The goal of an effective break is to let your brain recharge from all the concentrating. Tap into the other lobes of your brain for a few minutes; those synapses need exercise too! Go for a walk, grab a snack, or chat with coworkers - just get away from your desk. By switching gears, we let our minds take a rest from the tunnel vision of focusing and can just relax. The mind constantly works even when we’re not aware of it, and it continues to process information even when we’re doing something entirely unrelated. And no, as much as we’d like to tell ourselves, checking and responding to emails is NOT an effective break!
Here at pMD, we pride ourselves in providing our customers the confidence to desire and expect constant quality of our software. We strive to go above and beyond these expectations, and to do so, we strive to strike that proper work/life balance. We achieve this by promoting the work hard AND work smart mentality. So get up and get some grub. Go take a jog during lunch. Me? I’m taking the long way back from the coffee shop.