In almost any domain, asynchronous collaboration requires two types of tools:

  • General-purpose communication tools (e.g. Zoom, Slack, and Trello)
  • Role-specific tools for contributing to a work product (e.g. Google Docs for content, Figma for UI/UX design, KNIME and Databricks for data science)

Remember what it was like in the “old days” to be part of a group of stakeholders collaborating on a complex piece of writing? Like, you know, emailing around Microsoft Word attachments with “track changes” enabled?

No one could really be sure if they were working with the most recent file. Conflicts would emerge as teammates edited simultaneously. A missing font or outdated version of Microsoft Office could prevent someone from contributing.

When web-based word processors became the standard, most of these problems magically disappeared. Improved communication tools (better videoconferencing, better chat) couldn’t have had nearly the same impact–users needed a collaboration tool that was created specifically for the task at hand.

Domain-specific tools exist to ensure that every contributor:

  • Has the most recent version (and relevant variations) of a work product
  • Can trust that a file or document will look and behave the same way regardless of their hardware, operating system, etc.

In other words, teams are guaranteed access and consistency.

Access and consistency are important for any team, but particularly for distributed teams where effective collaboration and communication require extra effort. And a “distributed team” could mean a remote-first company with employees around the globe, a Silicon Valley behemoth where a team is spread throughout a sprawling campus, or a startup that used to share a one-room office but is indefinitely working from home due to a global pandemic.

Access and Consistency for Cloud Native Application Development

At Garden, our mission is to make it easy for developers and DevOps teams to build, troubleshoot, and test cloud native applications (which we’ll define here as applications composed of loosely coupled, independently developed and deployed services).

While working with our users, we’ve had a chance to observe the software development process at many different organizations. And we think we have a good sense of what access and consistency mean to cloud native development teams.

Access means that every developer knows the current topology of an application and the relationship between different components — including the services they’re not working on. And getting this information doesn’t depend on being friends with the right people or gradually accumulating institutional knowledge that isn’t written down anywhere.

Consistency means that every developer can create testing and preview environments that are identical to those used by their teammates and as similar as possible to production. There’s no collection of cobbled-together local environments that behave differently on every laptop, making it impossible to collaborate coherently.

To make this idea a bit more concrete, let’s talk through access and consistency in a scenario that relies heavily on asynchronous collaboration: onboarding. In software development, “onboarding” can have a few different dimensions, such as:

  1. Getting a newly hired employee up to speed (we’ve heard from folks that it can take up to six months to fully onboard a developer working on a complex distributed application)
  2. Working with an existing internal team that’s been newly assigned to build a service that’s part of your application
  3. Kicking off a project with an external development agency hired to write code, while testing and ongoing operations will be managed internally (a common practice in many larger orgs)

And when we talk about the importance of a good onboarding experience, we’re not only talking about how long it takes for a new team member to be “productive.” A large part of onboarding is about making sure a new teammate feels included, building their confidence as they become familiar with a daunting, multi-layered project.

Yes, providing “access and consistency” as we’ve defined it gives a dev everything they need to do their job from a technical standpoint, but it also signals, “Hey, we’re making an effort to support you and to keep you in the loop about what’s happening on our team.”

#cloud native #culture #development #cloud

Distributed Teams: Collaboration in a Cloud Native World
1.05 GEEK