InfoQ

The Software Architects' Newsletter
June 2022
View in browser

Welcome to the InfoQ Software Architects' Newsletter! Each month, we bring you essential news and experience from industry peers on emerging patterns and technologies.

This month, we again focus on the topic of "Developer Experience and Tooling". The core topics of developer experience (DevEx) currently span the entire "diffusion of innovation" graph in this year's Architecture and Design InfoQ Trends Report. We see DevEx and the creation and use of tooling as vital to support a range of activities for both architects and developers, from "designing for portability/security/resilience, etc.," to the use of workflow and decision-automation platforms, and correctly understanding and operating microservices.

Key challenges remain in this space, including being conscious about curating an effective developer experience, the build vs. buy decision with tooling, and how industry standards can influence your day-to-day code, ship, and run workflows.

News

Microsoft Introduces "Dev Box" Service as a Cloud-Based IDE for Developers

During the recent Build conference, Microsoft announced "Dev Box". This new cloud service provides developers with secure, ready-to-code developer workstations for hybrid teams of any size. With the new service, the company aims to make life easier for developers, by quickly accessing a pre-configured environment with all the tools and resources to write code.

With Microsoft Dev Box, development teams can create and maintain Dev Box images themselves, with all the developers' tools and dependencies to build and run their applications. Moreover, development teams can include their application source code and nightly built binaries, enabling developers to immediately start running and understanding the code without waiting for long re-builds.

Reproducible Development with Devcontainers

In a recent InfoQ article, Avdi Grimm explained that a devcontainer is a fully functional, batteries-included development environment that is "shared, versioned, reproducible, self-documenting, and always up-to-date so long as it's in use". The analogy he likes to use is instant noodles: "A devcontainer is like the Ramen noodles of development environments: just add hot water and you're ready to go".

Turning onboarding into a non-event is one of the most obvious and immediate benefits of developing in containers, and devcontainers support the full testing cycle because they package up everything needed to develop the application.

Building Effective Developer Tools to Enable an Entire Organization to Move Faster

Suhail Patel, Staff Engineer at Monzo, provides insight into how the Monzo team has built development tools with the goal of making everyone more productive. He argues that tools need to be tailored to fit your company's needs and practices. Leveraging open source can reduce the time to build, but it needs to solve an actual company need effectively to gain mass adoption.

Patel also explores how encoding consistency in your toolchain across teams and services leads to compound investment. Improvements that are made by one team can be used across multiple other teams. He states that teams need to encourage buy-in across the organization in order to work on developer enablement; invest in developer research and data insights to help justify the investment.

How to Optimize for Fast Flow Using Alignment and Autonomy: the Journey of a Large Bureaucracy

In a recent InfoQ article, Truls Jørgensen and Audun Fauchald Strand, both Principal Engineers, explained how NAV (Norwegian Labor and Welfare Administration), Norway's largest bureaucracy, has achieved alignment in over 100 autonomous development teams.

The authors talk about the history of NAV, and how they started this process with visionary leadership and insourcing. Then, they showed the techniques they use to align teams with respect to technology: two descriptive techniques - the technology radar and the weekly deep dive, and two normative techniques - the technical direction and internal platforms.

 

Case Study

Developer Experience at Lyft: from the Cloud to Local Environments

Lyft engineering finished their decomposition of a monolith into a collection of microservices back in 2018. Modular development environments using Docker containers eventually moved to the cloud. Recent articles describe how their development tooling struggled to keep up as time passed and the number of microservices exploded. Development environments had to return to the engineer's machine.

The original plan was to build a Docker-based, container-orchestration environment that engineers could use for testing. It would use multi-tenant environments to its advantage in production, becoming cheaper and faster to scale than the previous solution.

Lyft's local development environment was called Devbox - short for "development environment in a box" (and not to be confused with Microsoft Dev Box) - and consisted of some tooling managing a local virtual machine and its configuration, including database seeding, package and image download, and installation. Developers needed to only issue one command to build an environment ready to receive requests.

Eventually, the need for sharing these environments with others arose. Devbox took to the cloud, becoming Onebox. Onebox was essentially a Devbox environment running on an EC2 instance. Because it had a bigger capacity and could download images much faster, engineers naturally preferred it to Devbox.

As time went by and the number of microservices grew, it became increasingly difficult and time-consuming to configure and launch Onebox instances.

To get rid of these growing pains and frustrations, the focus shifted to bringing the development environment back to the engineer's laptop while simultaneously rebuilding the inner dev loop.

This content is an excerpt from a recent InfoQ article written by Vasco Veloso, "Developer Experience at Lyft: from the Cloud to Local Environments".

To get notifications when InfoQ publishes content on these topics, follow "developer experience", "tools", and "automation" on InfoQ.

Missed a newsletter? You can find all of the previous issues on InfoQ.

Sponsored

Cockroach Labs

Each year, Cockroach Labs publishes the industry's only unbiased performance analysis for a range of instance types across AWS, GCP, and Azure. Dig into the data, then go beyond the benchmarks with applicable insights to help you find the best cloud options for your workloads.

Download the 2022 Cloud Report, sponsored by Cockroach Labs.

Upcoming events

For practitioners by practitioners


QCon San Francisco (Oct 24-28): Make the right decisions by uncovering how senior software developers at early adopter companies are adopting emerging trends.

QCon San Francisco is a community-driven software development conference that aims to help senior software engineers, tech leads, and architects adopt new tech & practices. It’s a place to level up your skills with real-world technical talks and practical advice you can implement (without the product pitches!). Register before June 27th and save $600 off the full-price ticket!

 

Senior software developers rely on the InfoQ community to keep ahead of the adoption curve. One of the main reasons software architects and engineers tell us they keep coming back to InfoQ is because they trust the information provided and selected by their peers.

We’ve been helping software development teams adopt new technologies and practices for over 15 years through InfoQ articles, news items, podcasts, tech talks, trends reports, and QCon software development conferences.

We hope you find this newsletter useful. If not, you can unsubscribe using the link below.

Unsubscribe

Forwarded email? Subscribe and get your own copy.

Subscribe