On This Snow Day: I beg you to question your remote access approach

Adam Parrish
Neosavvy Labs
Published in
4 min readMar 14, 2017

When people who don’t know what I do for a living learn what I do, they always immediately make the statement:

Oh, you work with computers, you can work anywhere!

— Typical Person who doesn’t get it

What they don’t realize is that the vast majority of our clients value our in-person relationships, and in addition to that as developers we need access to all these ridiculously secure systems for a number of our clients. I can’t argue the first part of this, because there is no good substitute for face to face working arrangements, it builds stronger teams and camaraderie. I can however propose a few things that would drastically improve developer productivity and create better work/life balances for your enterprise team.

Many of the suggestions are being leveraged by most small product companies and startups, because they have a clean slate. However in the essence of defining what “Awesome” is, it’s worthwhile to set a few definitions of what would increase productivity for remote workers.

  1. Communication should be seamless when remote or in the office
  2. Access to systems should be the same regardless of where your plant your feet
  3. Contributing to your teams codebase or deliverables should not be different based on which keyboard you are making keystrokes on

I believe the above three definitions embody most of the frustrations and pain points of remote workers in the technology field, but who knows? Maybe some commenters will point out a few more. The common situation though is that when you are remote you’ll notice you have to relearn how to work and contribute compared to how you contribute on a day to day basis when you are located on site in your office. This comes at a drastic cost of productivity and forces you to relive your first day at work every time you take a remote day outside the office.

Given I am a person of action, I prefer not to criticize without proposing some actionable steps to improve on the current state situation for most major enterprises we engage with. I know this is largely a rant, but who knows maybe some go-getter IT person who set up these systems we are required to deal with will read this and think to themselves that all this over-security can be simplified and they’ll throw it away and make our lives better.

Communication

This is likely the easiest of all of the items to address. Most large companies have some sort of large chat framework like IBM’s Sametime or Bloomberg’s IB. Frequently they are starting to show some age, and they have some great features like the ability to do Click to dial (when you are located at your desk of course). As we move through the current day in age these 1990’s based solutions are starting to be a bit more trouble than they are worth for remote workers. There are some amazing advances in Video conferencing like BlueJeans, Skype, and even Slack has video conferencing features. Not to mention the historically indexed chat features of Slack for searching and threading.

Solution: Just get rid of your old chat clients and find something new, and consider upgrading it to whatever the hot new thing is every 2–5 years.

Shared Resources

Another common problem is that we see shared resources like mass storage devices, shared drives, test environments, hosted whatever, you name it there are plenty of examples in a corporate environment of these types of things that simply get taken for granted when you are in the office. Lack of access to one can turn a normal 5–10 second task into a computer smashing I’d rather take an unpaid-day-off-and-go-slam-my-fingers-in-my-car-door, than figure this out.

Making me remote into my Windows box on my desk, only to SSH into my Mac machine at my desk to do a simple task is an exercise in my ability to find back doors, not an exercise in doing whatever it was I was trying to accomplish for you, my client.

Solution: issue a laptop to your team and make it good enough to be useful. Then make people use the laptop and make sure the laptop can run all your code locally and has cached access to shared resources using BitTorrent or Resilio Sync, Google Drive, Dropbox or some other yet to be determined secure enterprise file sharing system like Box. There is no reason to host these things locally on site or in your own data center, it’s equally hackable there as it is using one of these other systems.

Contributing

The last and likely most important pain point is making daily contributions and writing code. Software developers just want to do what they do best and write code and collaborate with others. We have Source Control systems, but why make them “more secure” by only making them available internally on your location. Just use Github, why waste money on Github enterprise. There is nothing more intrinsically secure about it, you just hope no hackers find your internal Github. Those Github engineers are pretty smart, it’ll be safe up there. Worst case at least provide a VPN that allows access to these resources from that laptop you gave everyone.

Deploying to shared environments should just be based on your source control, when you check in it’ll get built. Since all your environments are available from the laptop you provided your employees, they’ll be able to see their changes and so will your test team.

Ok, rant complete. Hopefully all this will be a non issue tomorrow when the snow is gone.

--

--