The Distributed Work Environment – It’s Easy and It Works, Folks. Debate Over.

Office Or Home Directions On A Signpost Almost 15 years ago, while still working on my undergraduate degree, I took a series programming classes as part of my CS curriculum. The first day of class, the professor announced that we would not be following the standard programming practices of the time, but would be following an experimental methodology. It would include, paired programming, daily standup meetings, unit testing, iterative releases, and the slew of other methods that was known as XP.

As with most new methods, the Departments decision was met with controversy. Even among the students, the new techniques seemed foreign and unusual and were met with hesitation. For example, how do you fairly grade paired programming assignments? While most of these issues have been addressed over the years, the increase of a remote workforce has created new issues. Fortunately, the issues are being addressed and the solutions are increasing production and creating a more enjoyable work environment. I believe this trend will continue. Better software will be created and communication techniques will improve. It seems likely to me that this trend is unstoppable at this point. As developers, we’ve created fantastic tools that fit nicely in to the distributed work methodology. Tools that may not have been intended for this purpose, but definitely work in synergy with current project management methodologies. These tools have seemed to almost naturally evolved in to collaborative tools that are being used successfully daily by remote workers.

Communication, Continuous Delivery, Changing Requirements and Frequent Releases

Obviously, development can be quite complex, but broadly, it boils down to communication and the actual development process. If these are successfully addressed, the project stands a high likelihood of success.

CommunicationCommunication is a key factor in most activities in life and this certainly holds true for the development process. Without the foundation of communication, everything else crumbles. Fortunately, it has become easier to communicate with someone on the other side of the country than on the other side of the cubicle. In my past cubicle experiences, I would typically Skype my cubicle neighbor because it was actually faster and more efficient than going to talk to them. Whether you are using Skype, Google Hangouts, GoToMeeting, Speek.com, or Join.Me, these tools for communication and collaboration are helping to dissolve the distance between our peers. We have the ability to have face to face communication with almost anyone, anywhere. Whether you are in the middle of a paired programming session, working with a Client on project requirements, or just discussing development with your colleagues, the abilty to quickly and efficiently communicate exists.

Delivery SignVirtually all of us are using some sort of cloud based source control, such as Github. And increasingly we are using various Platform as a Service solutions or creating our own deployment solutions. The ability to push and share your code now is similar in most organizations. It’s a process that should be (and generally is) quick and easy. For years now, we’ve been able to share code through various source control methods and it is almost always something that can be done in a distributed environment.

What’s the issue?photodune-3598659-question-marks-s

When I worked with Cisco shortly after college, they allowed their employees an incredible amount of flexibility. I was even shocked at the time. However, as I got to know and work with their developers, I began to see that it did indeed work out well, even using technologies that are now more than 10 years old. The sales teams were able to complete their jobs and the developers were happy and productive. Even newer companies like Github provide a tremendous amount of flexibility to their employees realizing that developer inspiration does not happen necessarily from 8-6, Monday – Friday, or in the office.  Great software is being developed by teams of distributed and remote workers and it is truly amazing to look at how far we’ve come over the past couple of decades. We have the ability to live where we want with increased flexibility and increased productivity. It seems unfathomable that some organizations, such as Yahoo! have recently rejected this progress. I certainly do not understand this decision, but it probably really doesn’t matter in the long run, we have now passed the Rubicon. We are creating at light speed and I can’t imagine where we will be in the next 20 years, but I am optimistic that it will be pretty cool and I’m confident we’ll get there on the shoulders of remote workers.

Tags:

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

2 Comments

  1. Mike Cohen

    I worked at home for almost 10 years (including a few months at A&L) and I found that I hated it. I couldn’t stand the isolation. Since getting back to an office last year, I found that I much prefer working in an office and actually seeing & interacting with my co-workers. What I actually hated was driving to work. The thing that made a huge difference is being able to walk to my office or take public transit instead of driving.

  2. Lee Graham

    Hi Mike, I can certainly understand having to deal with the issues of isolation as a remote worker. And certainly there are other issues you have to deal with while working form home. However, it is certainly nice to have the flexibility to figure out where and how we are the most productive. I can say that from my experience, I am generally much more productive in a quiet, home office, rather than a cubicle office environment. I’m sure that others feel the exact opposite, but it is exciting to have a choice.