Developer Productivity

Finding Flow

Ditch the GUI, script everything, plus more productivity tips from Oracle Developer Champion Sebastian Daschner.

By Alexandra Weber Morales

May/June 2018

It’s a distinctive feeling every software developer knows: that moment when you’re sucked into the vortex, blissfully impervious to distractions as your brain and fingers fly in concert and hours of productive coding pass by without struggle.

As psychologist Mihaly Csikszentmihalyi wrote in his seminal book Flow: The Psychology of Optimal Experience (Harper & Row, 1990), this feeling of being happily absorbed by a challenging task sans self-conscious rumination can be found among practitioners of any complex endeavor. One theory is that the temporary inactivation of the prefrontal cortex that neuro-scientists observe during states of flow could be why we feel time distort and why our chattering inner critic dozes off.

Of course, we can’t depend on being “in the zone” all the time, but we can set up triggers to get ourselves there faster—and stay there longer. Welcome to my new column for Oracle Magazine on developer productivity, where I’ll focus on how developers in the increasingly fragmented and fast-moving world of technology can find flow. This first iteration focuses on insights from Sebastian Daschner, a Munich-based Java consultant and Oracle Developer Champion who is scheduled to present tips for developer productivity at multiple Oracle Code 2018 events.

Let Computers Do the Stupid Things

“Developers have to become automation hackers,” says Daschner. “They should reflect on what they are doing whenever they open up this window or change that function, and instead trigger a script or use keyboard shortcuts rather than the mouse. Use the fact that the computer can do stupid things really well.”

Developers have to become automation hackers.”– Sebastian Daschner, Oracle Developer Champion

Among computer programmers, those who automate their most mundane chores can become hallway legends. Daschner mentions the guy who wrote scripts to brew coffee at exactly the right time, based on how long it took to walk from his cubicle to the break room and to send a random excuse home to his spouse if he was logged in late at work. Indeed, many of the automation aspects of DevOps come from the same motivation to hand the mundane to computers. The process of checking in code, running a suite of tests, and integrating the new elements into the existing build, not to mention continuously deploying and maintaining code in production, were inspired because the process is dull and repeatable—especially for developers. And with Oracle’s latest self-driving, self-securing, self-repairing cloud capabilities, the options for automating such work will only grow.

Script the Tools You Use Often

But before looking to optimize entire processes, have you optimized where the rubber meets the road: your own personal environment? There’s no one-size-fits-all solution. Daschner’s first recommendation is to start scripting or writing shortcuts for anything you find yourself typing frequently.

“I’m a heavy user of shell scripts. Also, the Linux environment I’m using is really supportive in scripting almost everything—even the UI. Besides that, I try to embrace every possible IntelliJ action I can.”

For example, Daschner has set up his IntelliJ IDE so that typing “ijt” followed by Tab injects the correct import statement, which is something he otherwise would have to type out often when writing applications in Java Enterprise Edition.

Get Rid of the GUI

The computer user experience has evolved to be highly visual, but visual is often not optimal for developers writing code—and using the mouse is anything but efficient. Instead, turn to the command line as much as possible, Daschner recommends.

One popular tool among developers is Vim (a clone of Bill Joy’s vi text editor program for UNIX), which is packed with actions and macros. Vim encourages the touch-typing concept of keeping the hands on the home row (index fingers positioned on the ridges of the letters F and J) of the keyboard as much as possible.

Consider a New Keyboard

Also, don’t forget how your keyboard physically feels. Since 2008 or so, there’s been a niche developer interest in mechanical keyboards, which use physical switches for each key—in fact, there’s a forum dedicated to these devices. Daschner got into mechanical keyboards in “2012 or so, I think. I got more and more aware that I spend a considerable amount of every day typing and wanted to have a better keyboard than what was available at my former employer.”

Use the fact that the computer can do stupid things really well.”– Sebastian Daschner, Oracle Developer Champion

Although they can be louder (clackier), heavier, and much more costly than standard keyboards, mechanical or capacitive switch keyboards such as Cherry Brown and Topre “may sound like expensive toys, but as developers we use these things for a lot of hours per day—carpenters wouldn’t buy the cheapest tools in the hardware store, would they?” Daschner says.

Hack Yourself

Because he is writing about the topic, creating a web series, and giving talks at events such as Oracle Code, Daschner knows that it resonates among developers: “I’ve gotten very positive feedback, especially on the little tips and tricks, such as for better IDE or command line usage.”

But more than the specific hacks, it’s the mindset he wants to communicate: “I believe that the concepts behind these tricks that I try to get across in the presentation are even more important.” Bottom line? Observe yourself; note what annoys, bores, distracts, or detains you; and program it out of your life.

Next Steps

LEARN more about Oracle Developer Champions.

LIVE for the Code (Oracle Code).

Photography by Namas Bhojani