Following my recent post on distributed SDLC, I’d like to detail a key factor contributing to successful software production with highly distributed teams: horizontal orientation.
The Agile mindset is horizontal. Its purpose is to delight customers. Making money is the result, not the goal of its activities. Its focus is on continuous innovation. Its dynamic is enablement, rather than control. Its communications tend to be horizontal conversations. It aspires to liberate the full talents and capacities of those doing the work. It is oriented to understanding and creating the future.
– Steve Denning, Forbes, January 26, 2015
Horizontal oriented organizations empower teams and individuals with latitude to self-direct toward outcomes rather than follow rote processes. This leads to productivity gains through shared goals, sense of purpose, and joint responsibility. Teams have broader awareness of the direction, challenge, and opportunities of the overall effort.
In contrast, vertical organizations require greater levels of management approval, and are command-and-control oriented. Decision making power rolls up to higher levels in the organization. Groups are not highly empowered to make decisions, and are generally not aware of efforts outside of each individual domain.
Horizontal orientation must develop to build enterprise systems sustainably in a distributed environment.
Horizontal orientation empowers teams to to find their own best practices while conforming to the broader SDLC, and to distinguish their working patterns from those of other teams. With guidance, this specialization leads to ownership, productive competition, and strong peer relationships that are really critical for successful software production in a distributed environment. Vertical organizations struggle to simulate these essential qualities.
Documentation is a critical aspect for distributed teams. User Stories are not contracts. They require trust and shared agreement on outcome, without precise detail about how to achieve it. This is another major area of challenge for vertical organizations. In an environment of low empowerment, low trust, and low ownership, groups in a vertical organization must communicate using formal, contract-like documents that specify minute implementation detail. This is a huge loss in efficiency for any organization, and a key reason why horizontal orientation is essential for distributed software production.
Vertical slicing, or delivery of incremental but complete units of functionality, is a key aspect of modern SDLC. For distributed teams producing enterprise systems, vertical slicing almost always requires multiple teams to work through complex inter-dependencies in order to deliver successfully. Horizontal orientation is the basis for strong communication, coordination, and trust, that are required to do so.
Distributed organizations are complex, and teams must have sufficient latitude to make mistakes and recover from them. This in turn requires trust, transparency, open communication, and strong peer networks. Horizontally oriented organizations have a much greater capacity to recover from errors than vertical organizations. In fact, vertical cultures can sometimes be so challenging that no level of error is acceptable because of political or bureaucratic factors. This is a particularly stark contrast since one of the primary goals of modern SDLC including Agile is to encourage risk-taking and a culture of safety and support within the organization. This is even more important for distributed development.
Distributed teams have enormous potential to create value in the development of enterprise systems. Horizontal orientation is an important factor in capitalizing this potential into reality.