Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Tools and practices for remote development teams

October 12, 2021
Jason Dudash Andy Krohg
Related topics:
CI/CDContainersDevOpsKubernetes
Related products:
Developer ToolsRed Hat OpenShift

Share:

    During the height of the COVID-19 global pandemic, tens of millions of workers transitioned from the office to working from home. It was an unfamiliar way of doing things for many organizations—a true sink-or-swim scenario. Development teams are among those affected, and the challenges that we face are sometimes very specific. In this article, we explore a few tools and practices that can help distributed development teams work and collaborate from home. Hopefully, this exploration will be helpful to you and your team seeking a “new normal" after COVID-19.

    Accessing the development environment

    Perhaps the most poignant of remote development challenges is not having access to a physical workstation. When developers work together in a company office, it is straightforward to issue everyone a desktop PC that’s equipped with sufficient firepower for the job at hand. Without this convenience, however, many organizations fall short of offering an optimal experience. Let's consider a few common approaches.

    Laptops to the rescue?

    Company laptops are a standard issue for any full-time job, but developers represent a special case. The inner loop of development demands a plethora of builds, tests, and local deployments. This demanding cycle renders the compute resources of a typical work laptop insufficient. The beefier machines sometimes given to developers to mitigate this are still a compromise between user experience and risk. Portable workstations are more likely to be damaged, lost, or stolen, presenting cogent risks of not only financial impact but the loss of data privacy. With physical access to a device that houses classified information, a malicious actor could create problems that eclipse concerns related to infrastructure costs.

    Okay, well then VMs?

    Another common practice is for development teams to use virtual machines in a data center for their development environment. The advantage here is that the laptops need not be anything special; the laptops only serve as a means to access the VM. The problem is network latency. Remote desktop environments aren’t as smooth or performant as I/O, especially with insufficient network bandwidth. Developers who are working from home won’t always have optimal network speed to work with, whether it’s unavailable where they live or because they’re competing with other household members for bandwidth. In the latter case, it’s not always as simple as kicking the kids off Netflix; remote developers may live with children using remote learning software or other adults conducting business remotely.

    What about an in-browser IDE?

    The advent of containers has utterly transformed the landscape for application workloads over the last several years. The dazzling metropolis of communities that have formed around the technology has advanced the maturity and consumability of containers for virtually all aspects of IT, including containerized development environments.

    True masters of remote development can serve up workspaces through an in-browser IDE like CodeReady Workspaces. Centralizing workspace management to an underlying platform like Red Hat OpenShift results in workspaces that are powerful and tool-ready enough that all you need on your laptop is a modern browser. This strategy offers better performance over virtual machines because the connection is powered by a web socket, which has lower bandwidth requirements than a remote desktop client. It’s also snappier in that the containers’ shared kernel enables faster start times than virtual machines. As if that's not enough, just think how much easier onboarding a new teammate will be.

    Note: If you’re curious about the in-browser IDE option, you can try it out yourself using the Developer Sandbox for Red Hat OpenShift, a free shared OpenShift cluster with CodeReady Workspaces preconfigured. You can get started experimenting with it in as little as two minutes.

    Pair programming for remote teams

    The lack of in-person interaction is another remote workplace challenge that uniquely impacts developers. When everyone is working from home, having a colleague look over your shoulder at something you’re working on is more of an inventive metaphor than a literal practice. Sure, there are plenty of video conferencing apps, but they generally don’t deliver a quick and simple pair programming experience.

    This is another area where CodeReady Workspaces excels, as it can inherit role-based access controls (RBAC) from OpenShift, permitting a developer to grant read or write access to collaborators in workspaces they own. With OpenShift’s software-defined networking, collaboratively fixing a bug is as easy as generating a link to a workspace, or to a locally-deployed app, and sharing it with others. As more companies embrace an increasingly remote workforce, preserving the rituals of rubber duck debugging and pair programming are of the utmost importance for long-term success.

    Automated pipelines for CI/CD handoffs

    Working from home deprives workers of all teams from a great many easily observable things, like chance encounters with Greg at the Keurig or quarreling with coworkers over who has to sit in the squeaky swivel chair. But remote work also disrupts something a bit less obvious: continuity. Workers are prone to more tiny distractions and sequence breaks at home, as it presents a much different atmosphere than an office setting. This doesn’t necessarily reduce how much work people get done, but it makes achieving uninterrupted workstreams more challenging.

    The impact this has on developers is the potential to introduce slowdowns into handoffs related to continuous integration and continuous deployment (CI/CD). When colleagues on ops teams and other stakeholder groups aren’t monitoring incoming workloads contiguously, there’s a greater chance developers will have to wait longer for their code to be deployed. For this reason, it’s more important than ever before to afford developers with self-service capabilities and automated pipelines so that teams can keep moving.

    Pipelines turn the team build, test, verification, and release process into consistent and repeatable automation. By hooking up pipelines into source control repositories and into team chat, developers and operations (DevOps) can come together in a way that removes barriers and creates a shared awareness with a recorded history. While these benefits directly address the lament of continuity breaks in today’s IT landscape, they’re guaranteed to deliver improved lead times and developer experience regardless of how pandemic conditions unfold in the future.

    Working remotely is the new normal

    It’s widely expected that working remotely will become common for at least some of the workweek (almost no one wants that everyday commute again). If you fast-forward to a year from now, we expect to see successful development teams being the ones that embraced the shift. Those teams will be doing the following:

    • Providing shared IDEs to facilitate collaboration.
    • Establishing a repository of self-service and single-click workspaces for IDE consistency.
    • Triggering CI/CD pipelines off of source control to automate away manual operations tasks.
    • Providing dashboards and ChatOps feedback from the CI/CD for shared awareness.
    • Leveraging new tooling so "shifting left on security" doesn’t burden developers.
    • Leveraging code quality tools within their CI/CD pipeline to minimize the effort of manual code reviews.

    As your team evolves into remote capable operating models, keeping the status-quo of a local-only development process just won’t cut it. Those environments are a source of friction that will bottleneck your efforts and easily get you off schedule and over cost. Adopting new team culture, defining new ways to collaborate, and bringing in new shared development tools will help you meet the evolution into remote work in a way that becomes your “normal."

    Conclusion

    Find out more about CodeReady Workspaces by watching this Developer Experience Office Hours video dedicated to CodeReady Workspaces and Eclipse Che. You can also learn about best practices for developer workspaces in this short report.

    Want more insights like these? Follow Andy on GitHub, @andykrohg. Follow Dudash on Twitter (@dudashtweets) or GitHub (@dudash).

    Last updated: November 8, 2023

    Related Posts

    • Sharing your Container Development Environment with Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces)

    • Automate workshop setup with Ansible playbooks and CodeReady Workspaces

    • Containerized Python Flask development on Red Hat OpenShift

    Recent Posts

    • How to run a fraud detection AI model on RHEL CVMs

    • How we use software provenance at Red Hat

    • Alternatives to creating bootc images from scratch

    • How to update OpenStack Services on OpenShift

    • How to integrate vLLM inference into your macOS and iOS apps

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue