What Do I Mean By “Horizontal” Versus “Vertical” Engineering Teams?

And more importantly… why does it matter?

Dave Taubler
6 min readApr 24, 2022
Photo by Pawel Czerwinski on Unsplash

In many of the articles I’ve written — particularly those discussing microservice architectures — I’ve drawn a direct line between technical architectures and organizational structures. This idea, of course, has parallels with Conway’s famous Law. But in my discussions, I’ve tried to emphasize one specific point:

If your engineering organization is going to move to a microservices architecture, then you need to similarly change your organizational structure. Otherwise, you’ll have a hard time taking advantage of your new architecture, and you might as well just eschew microservices altogether.

Within these discussions, I often use the terms “horizontal” and “vertical” when I discuss engineering teams. In turn, I sometimes get questions (or in some cases, push-back) about my use of those terms. So I’ve written this article to explain those terms. I discuss why the concept they represent — if not the literal terminology itself — is important.

When drawing out an architectural diagram, we often depict our technology stack as a series of layers, each representing a technical function. These layers are usually shown as being stacked vertically, like so:

--

--

Dave Taubler

Software architect, engineering leader, musician, husband, dad