Wednesday, 15 April 2020

Coding together apart: Software development after COVID-19

Pandemics are not the “new normal” for the human race. As with practically every other type of disaster, we’ve survived them countless times in the past.

But there’s no doubt we’re living and working through an emergency situation right now. As we try to avoid exposing ourselves to the novel coronavirus, we must also prevent our working lives from stalling out completely. For most professionals, remote collaboration will be our primary fallback method until normality returns.

Tech marketing is in crisis
Working remotely can be awkward when your productivity depends on being able to share a physical space with others for at least a few hours per day or week. Tech marketers have been hit particularly hard because a large part of their annual cycles are aligned with conferences and other industry events, most of which have been canceled, postponed, or made entirely virtual.

Indeed, I’ve noticed far fewer tech product releases in the past few months than in a normal spring season. This goes against the pattern I’ve seen practically every year since I entered the IT field in the mid-1980s. Typically, a burst of launches grabs everyone’s attention from late February through early June, until an equal or larger batch of vendor announcements in the fall takes the spotlight.

Right now in the midst of the global COVID-19 emergency, it’s difficult to get any new product launch noticed unless your new product has a clear role in helping humanity cope with the pandemic. However, those sorts of offerings pretty much by definition have a short shelf life and will almost certainly be forgotten or discarded when the emergency wanes in the next few months.

Software developers have embraced distance coding
Though tech marketing seems to have ground to a halt, software developers aren’t letting sheltering in place crimp their productivity. Many software vendors I’ve spoken to during the past few months say that their locked-down coders are working as hard as ever. If anything, this current crisis may be the tipping point in the advent of a new normal for software development practices.

Physical distancing spares coders from wasting their time in pointless meetings and can make them ever more effective multitaskers. If work-from-home coders prove themselves to be just as effective as they were in shared offices, their employers may let them continue when the crisis subsides. After all, office space is expensive, and needing less of it is a great way to keep overhead low.

In a practical sense, programming teams rarely need to occupy the same physical office as long as they can hammer out code, test it thoroughly, and deploy it in a devops pipeline. But programming is a creative human endeavor, and there are often more face-to-face meetings and conversations in coding projects than people realize.

While they fend off cabin fever, programmers will have to find the right set of collaboration tools to suit their needs. They’ll need to look beyond Zoom, Slack, and Microsoft Teams, which have received more than their fair share of attention in the trade and popular press in the past month. Suddenly back in vogue, these collaborative software tools were not designed to facilitate structured interactions among coders working on common projects.

Live code collaboration comes to devops
The opportunity for live, real-time collaboration is an obvious advantage of in-person team arrangements, though its importance is debatable in the modern world of virtual collaboration.

If today’s work-from-home coders need strong code collaboration tools, there are many on the market. However, only a handful provide the strong, real-time collaboration one would enjoy in a shared brick-and-mortar office. For a good roundup on the live collaboration features in today’s leading coding tools, check out Serdar Yegulalp’s recent InfoWorld article in which he dissects such offerings as AWS Cloud9, Codeanywhere, CodeSandbox, Codeshare, Floobits, Teletype, and Microsoft’s Visual Studio Live Share.

Available as web-based services or add-ons to existing editors, these tools enable real-time sharing and collaboration on cloud-hosted coding projects. Typically, users can share project environments with multiple team members. Users can edit files together in real time, invite others to join them in active tabs, and follow them between tabs as they switch files.

Typically, coders can watch each other’s typing, as the tools often provide visual cues that indicate who wrote which lines of code. Many also offer a text chat and/or video chat pane within the development environment. Users can often share running cloud-hosted web application servers with each other.

Just as important, users can often share out both workspaces that use various repositories for source control and project governance. This is an absolutely essential feature for development teams who need their live code collaboration tooling to plug into their enterprise devops pipelines. More often than not, remote coding teams will rely on public and private Git repositories as the pivot points in the collaborative workflows.

In the post-pandemic days to come, we’ll probably recognize that this work-from-home crisis tipped enterprise development practices more firmly toward the new paradigm being called “Gitops.” Under Gitops, devops teams store and manage every application artifact in a Git repository, such as GitHub. This generally includes all policies, code, configuration, and events that are integral to an application’s design, as well as machine learning models that are vital to deployed artificial intelligence applications.

Coding’s brick-and-mortar days are coming to a close
As we return to post-pandemic normality, I also expect that live code collaboration will become the norm. In our new socially distanced world, code-collaboration tools will make it possible to build and deploy any type of application without the need for two or more humans to physically co-locate.

Abetted by no-code tools, this new hermetic world of software development will enable coders to retreat to their homes or another safe place to do their work, should pandemics or other disasters make it too dangerous to venture outside.

No comments:

Post a Comment