Shepherd Book's Commonplace Home

A Wholly Immersive Dev Environment

8 July 2013 – Jared Koumentis

Since I’ve dove deeper and deeper into the Dev side of the DevOps equation, I’ve found myself intensely interested in how people like to work and their ways to be most productive. I’ve seen some really interesting setups and have adopted a few myself. We’ve all heard about having a large ultra-hi-res screen and having a second screen in a portrait layout for having longer form documentation or code displayed. Ergonomic desks, chairs, and mechanical keyboards. No two development environments are quite the same.

Wait. I’m not describing what you thought when I said “Dev Environment”? Perhaps you thought this was a post debating the pros and cons of different IDEs or text editors. I suppose this is more of a hardware focused thought process I’m on.

We’re in the middle of some remarkable happenings in technology. The things that have caught my attention aren’t traditionally aimed at developers. We see some amazing things happening with Virtual Reality and Human-Computer Interface technology. Typically, such things are aimed at gaming and immersive 3D worlds. Oculus VR, Omni, Leap Motion. These devices offer unique interaction experiences.

As you read what follows, remember that the technology to do this currently exists. It just needs to be brought together.

Here’s a future dev environment I envision…

You sit down and put on your headset. As you open your eyes, you are automatically recognized (by your iris, of course) and given access to the systems you need to do your work. The headset is lightweight and wireless, connected to a small and incredibly powerful little “mini-cloud” piece of hardware sitting next to you. That, of course, connects to a large virtualization environment, allowing you access to any resources you require.

You tell your virtual operator to load up your programming and staging environments. You’re asked if you’d like to listen to some music and you choose some to thrust you into the zone. I front of you, you see all manner of feedback. Your code sits just off to the side. Up and to the other side, you see a running environment. It shows information about the running staging and test environments, as well as an interface to interact with your program. Just behind that, floating just out of the way, are all manner of graphs and data about your program and server’s performance.

You reach out and grab the code, pulling it forward. You open your hand and, with the flick of your fingers, have it fill your vision. You see, built into the headset are sensors that can detect even the most minute movements in your hands. You begin to think about the problem you face and how you might overcome it. Your headset detects a slight rise in your stress level and adjusts the music accordingly. You ask your operator to provide a thirty minute flow state enhancement, to help you bring everything into your working memory and manipulate it within your mind. Monitoring your brainwaves, it begins to apply a very slight current to your forehead. You feel a slight tingle across your skin as your mind begins to work at it’s most efficient. The thirty minutes pass in what feels like a tenth of the time. As you feel yourself come out of your flow state, your operator asks if you’d like some tea. That sounds nice. You slip off your headset and walk to the kitchen, where a warm cup of tea awaits you. You remove the cup from the machine and look at the ingredients on the display. Earl Grey, Milk, Sugar, Lavender, Choline Citrate, Pramiracetam, and a touch of Ginseng. Your operator knows what you like and knows what your body needs, so it prepared the perfect cup for you.

As you walk back to your workstation and place you headset back on, everything reappears before your eyes. You ask your operator to get in touch with your coding partner. It’s time to do some code review of what came out of your flow state. You hear their voice and look over to see them standing beside you. You ask your operator to fire up the loading program. You and your partner find yourself standing in a pristine room, ready for testing. The code appears before you both and you begin breaking down and refactoring what you find. As you modify the code, you watch as the environment updates and approves your changes. All your tests pass and your operator asks if you’d like the changes deployed to production. You tell it to go ahead and a diagram representing your production environment appears. You watch as the changes propagate through the system and are confirmed.

“Deployed…” flashes in front of you and fades into the distance.

You and your partner decide that now is the perfect time to go ahead and work on architecting your next project.

“Operator… blank slate please.”

As the pristine environment materializes before you and your fellow dev, you reach out and begin…

- ShepBook

Fork me on GitHub