A quick Google search for anything related to remote working will convince you that the remote workplace is increasingly popular among employers and, especially, their employees. The tech industry, in particular, sees more and more companies adopting a remote work culture. A remote workplace increases flexibility for both the employee and the employer, allowing companies to hire candidates from a much wider talent pool. While there are many benefits to the remote work paradigm, the change isn’t free. SemanticBits, much like other tech companies, faces daily challenges, especially as we build more complex applications. Large-scale user interfaces, substantial and comprehensive APIs, and complex ETL jobs for massive amounts of data are all being designed and built by teams that are spread out across the country. Here are some ways that we overcome these hurdles while successfully developing complex projects.
We are given the tools we need (and we use them)
Tooling is very important to every branch of the tech field (software, data engineering, data science, etc). There are a ton of tools that make the job easier, including powerful workstations, IDEs, remote workspaces, communication tools like Slack and Zoom, and even password managers. A strong IDE can make a huge difference in the development process or simply in the satisfaction of the developer. Many engineers here at SemanticBits love to use the open-source text editor Visual Studio Code (VSCode). VSCode is a great, free editor that can do nearly anything you need. A handful of our engineers, however, prefer JetBrains products. In many cases, we use Docker to containerize our applications. Docker allows us to bypass a lot of the core dependencies an application needs in order to run, thereby eliminating a typically painful part of on-boarding new engineers.
Documentation keeps things moving
From my experience, physical workplaces have one negative trend that is hard to break—the verbal passage of technical knowledge. There have been many experiences in my career where I was reliant on a verbal explanation of startup and execution processes that either had nuances from the original documentation or did not have documentation at all. To SemanticBits, and the various organizations with whom we are involved, documentation is a very important step in the developmental process. When there is a new feature, there is a very high chance that a business value spec and a technical spec will be written to accompany that feature. In our line of business, there is a lot of cross-team cooperation that spans time zones. While in a physical workspace, it is very tempting to allow in-person knowledge transfers in standups or simple whiteboard sessions to prevent documentation from being written and shared. By contrast, in a remote setting, documentation is one of the best and easiest ways to transfer knowledge.
Communication is key
Good communication is important to the success of a remote environment. In an onsite workplace, all of the employees are typically sitting near each other. From small talk to knowledge transfers, these interactions are important for team building and for project success. As a workplace that practices Agile ideologies, every team at SemanticBits has recurring standups and retrospectives. However, those meetings alone are usually not enough. In a remote workplace, it is hard to keep a team working in a cohesive manner if the lines of communication drop, are unstable, or are consistently of low quality. Through the use of Slack, email, and Zoom, SemanticBits is able to encourage a very open communication environment. In several cases, the communication is just as frequent, clear, and valuable as an in-person conversation. Even remote breakout sessions are common. If there is a need, a team can start a Slack chat to share a screen or simply talk about an issue at hand. In the teams I have been involved with, we work remotely but communicate as if we were in the same room.
The future may be remote
There are no secrets to making a remote workplace perform as well, if not better, than an onsite workplace. As the field of software grows and matures, there is an increasing need for talent and experience that may only be accessible remotely. From my experience in this industry, remote environments may very well become a norm, if not a majority. If an employer provides its employees with the tools they need, promotes the documentation of company processes, and the team communicates cohesively, there will be no disadvantages to companies that choose to become remote workshops. I would argue, in fact, that connecting these exceptional workers across the country is exactly what has empowered SemanticBits to succeed.