Image by Paul Brennan from Pixabay

IN THIS SECTION, YOU WILL: Understand the context in which the ideas in this book developed.

KEY POINTS:

  • To better understand any idea or solution, it is crucial to understand the context in which this idea developed.
  • The Grounded Architecture approach has evolved in the context of global, loosely coupled organizations that are diverse, with nonlinear growth dynamics, and under transformation pressures.


My work on creating and running an architecture practice isn’t just a lofty idea; it’s a practical approach sharpened from real-world experience. My perspective comes from lessons I learned as the Chief Architect at AVIV Group and the Principal Architect at eBay Classifieds and Adevinta.

To better grasp presented ideas or solutions, it is helpful to understand the problems we were trying to solve and the context in which these ideas were born. Here’s a peek into the context that shaped my Grounded Architecture approach:

  • Global scale: the organizations I worked in were operating across multiple countries and continents with millions of users.
  • Multidimensional diversity: these organizations were diverse in terms of their customer base, workforce, business models, team topologies, and technology stacks.
  • Nonlinear growth dynamics: in addition to organic growth, complex organizations change their portfolio through mergers and acquisitions of new businesses or divestments.
  • Synergies and transformation pressures: complex organizations want to exploit the benefits of economies of scale and reduce duplication of efforts.
  • Decentralized, loosely coupled organizational units: organizational units have significant autonomy while working together on common goals.


Global Scale

I have honed my approach within genuinely global and multicultural organizations on a massive scale:

  • Operating across numerous geographies, cultures, and languages,
  • Serving millions of users daily,
  • Collaborating with thousands of software developers across hundreds of product and development teams,
  • Implementing systems comprising hundreds of millions of lines of source code.

Image by Pete Linforth from Pixabay

Operating on a global scale introduces several compelling opportunities for organizations. It can significantly increase organizational effectiveness by reducing duplication of effort through centralized shared activities. Additionally, leveraging economies of scale allows for cost advantages, such as lowering the unit prices of utilized technologies. Global operations also enhance business resilience and flexibility, enabling compensation for local market fluctuations with global resources. The expansive talent pool available to global organizations supports local and international initiatives. Moreover, these organizations possess significant resources to invest in supporting nonlinear growth through mergers and acquisitions (M&As).

However, the global and massive scale also presents numerous challenges. It results in high organizational complexity, with thousands of potential communication channels within the organization. The complex technology landscape entails numerous interconnected services. Managing a large talent pool incurs high workforce costs. Furthermore, such organizations face high computing resource expenses due to the need to serve a vast customer base around the clock. The operational complexity increases with high and variable customer demands across multiple locations. Additionally, global organizations have a vast attack surface, with many potential entry points for attackers. Lastly, any manual process, such as creating an organizational or technology landscape overview, is limited due to the scale involved.

Balancing opportunities and challenges on a global scale has been one of the most demanding and rewarding aspects of my architectural work. Such a magnitude makes any manual process inefficient and difficult to scale. The global scale was one of the main drivers behind the aggressive datafication of our an architecture practice. It has also led us to create more decentralized collaborative networks and operating models to execute and track decision-making across the board.


Multi-Dimensional Diversity

The organizations I worked with were incredibly diverse across multiple dimensions:

  • Cultures: A varied workforce and clientele, both local and remote.
  • Organization: Units of different sizes, complexities, and organizational styles.
  • Product: Diverse product features catering to various markets and customer segments.
  • IT Architecture: Combination of legacy systems and modern approaches.
  • Technology: Numerous programming languages and thousands of third-party libraries, frameworks, and services.

Image by Simon from Pixabay

For instance, I worked with organizational units differing in several aspects, including unit size, which ranged from hundreds of employees to just a dozen. The team topologies varied, spanning from single-team setups to hierarchical team organizations. Additionally, the architectural roles varied, with some units having dedicated local architecture teams and lead architects. In contrast, in smaller units, team members handled architectural duties alongside other responsibilities.

Similarly, technology-wise, we managed a range of styles in active production systems, from legacy monolithic applications to intricate modern microservice and serverless ecosystems. Each organizational segment had its own unique history and legacy systems. Our technology stack was extensive, covering multiple mainstream technologies. The infrastructure included several public cloud providers such as AWS, GCP, Azure, and custom-built private data centers. Our systems employ various application technologies, including database technologies like MySQL, PostgreSQL, MongoDB, Cassandra, AWS RDS, and more. The backend programming languages used were Java, C#, Go, Scala, PHP, Node.js. We used Swift, Objective-C, Java, Kotlin, Flutter/Dart, and more for mobile app programming. The frontend programming languages and frameworks included React, AngularJS, Vue, jQuery, and others.

Diversity offers several opportunities, including increased technology innovation. A diverse workforce can explore a variety of technologies and tools creatively. It also leads to better implementation because access to a broader pool of diverse resources allows for the selection of the best tool for the job.

However, diversity also brings challenges. One such challenge is increased complexity, resulting in a higher system landscape complexity and greater cognitive load for teams mastering numerous topics simultaneously. Additionally, there is reduced flexibility, as expertise spread across many domains and technologies limits reorganization possibilities. Furthermore, diversity can lead to higher technical debt due to multiple technology stacks, increasing legacy components, and outdated technologies. While diversity is a rich source of new possibilities from an architectural perspective, it always necessitates carefully managing complexity.

Diversity has influenced our an architecture practice in multiple ways. It has led to the development of lean tools that can cover a broad range of technology stacks rather than the adoption of specialized ones that can go deep on one stack but cannot cover 95% of our landscape. We also adopted a more flexible governance model to help all teams in a practical way that is aligned with their diverse ways of working.


Nonlinear Growth Dynamics

Complex organizations like the ones I have worked in are often highly dynamic. These organizations frequently undergo significant growth, contraction, and reorganization, evolving both organically and inorganically.

Image by Pexels from Pixabay

Organic growth refers to internal expansion driven by the company’s own operations. Inorganic change involves acquiring other businesses, opening new locations, or divesting parts of the company.

Nonlinear growth, in particular, can be advantageous in several scenarios. It can rapidly increase the customer base or introduce new market segments. Additionally, such changes can accelerate innovation by incorporating new technologies or services.

However, nonlinear growth dynamics significantly impact architectural activities. The sudden integration of new companies increases organizational complexity, introducing many new units. Acquiring a new company also brings in new technology and engineering units, along with their unique processes and technology stacks. Furthermore, these nonlinear dynamics necessitate a flexible architecture to accommodate potential divestitures.

Nonlinear growth offers substantial benefits but also challenges managing increased complexity and the need to maintain architectural flexibility. In terms of its impact on an architecture practice, such dynamics lead to constantly high levels of complexity and more uncertainty. This has led us to prioritize the creation of better transparency to track changes that such dynamics introduce. We also needed to collaborate closely with business and finance stakeholders on developing tools for economics and risk modeling of investments and divestments.


Synergy and Transformation Pressures

Complex organizations aim to grow not just in size, but also in efficiency by leveraging economies of scale, cost synergies, and enhancing their capacity for innovation. Our investors expect us to become more than the sum of our original parts.

Image by MustangJoe from Pixabay

Pursuing synergies and transformations offers several opportunities, such as cost reductions through less duplication and lower expenses. Accelerated innovation can occur as savings from cost reductions free up resources for new developments. Additionally, creating synergistic components enables more possibilities for reuse and sharing, while well-executed transformations result in increased efficiency and lower unit costs.

However, striving for synergies and efficiency presents challenges. There is a need for significant initial investment to realize benefits, which carries high risks. Performance pressure arises as teams must deliver excellent short-term results while undergoing significant transformations. Balancing transformation activities with regular work can temporarily reduce productivity. Moreover, post-transformation, the organization and technology landscape may become more complex due to increased dependencies, such as reusing central services.

The pressure to achieve synergies and efficiency can lead to high expectations and complicate regular architectural work. Nonetheless, these forces also create numerous opportunities for growth and improvement. For an architecture practice, these pressures created a strong need for better tracking project costs, value, and risks. Being able to calculate and back with data decisions for both innovative projects and legacy retirements was a critical aspect of our work.


Decentralization and Loose Coupling

Researcher Karl Weick developed the concepts of tight and loose coupling to describe organizational structures, initially in educational institutions and later applied to diverse businesses. According to Weick, a tightly coupled organization has mutually understood rules enforced by inspection and feedback systems. In such organizations, management can directly coordinate different departments’ activities according to a central strategy.

In contrast, a loosely coupled organization lacks some elements of a tightly coupled one. Employees have more autonomy, and different departments may operate with little coordination.

Image by Andrii Yalanskyi from iStock

Most organizational units I worked with were loosely coupled. Our companies frequently grew through acquisitions of companies in different marketplaces. Business strategies also promoted the independent evolution of local units to address local market needs more effectively and quickly. These units often enjoyed a high level of autonomy, frequently with their development teams and sometimes with local CFOs, CMOs, or CEOs.

Loose coupling offers several advantages. It provides higher flexibility, allowing units to develop independently and address specific needs without synchronizing with other units. This flexibility leads to reduced time-to-market, as fewer dependencies enable marketplaces to rapidly change and evolve their products for local needs. Additionally, loose coupling fosters innovation by offering opportunities to quickly explore ideas in smaller contexts.

However, loose coupling also presents several challenges. It can lead to duplication of effort, as local market needs might differ but often have significant overlap in product features and technology, resulting in redundant efforts as each marketplace creates solutions for the same problems. This approach also increases accidental diversity, where limited synchronization may result in significantly different design and technology choices for the same problem, making it difficult to consolidate solutions, move personnel between teams, or benefit from economies of scale. Moreover, loose coupling results in limited control, as fewer dependencies and varying goals make it more challenging to implement changes across the organization.

From an architectural perspective, loose coupling presents an interesting challenge, often leading to a conflict between global alignment and control and local autonomy. For our an architecture practice, decentralization and loose coupling led to many changes. We emphasized “hands off, eyes on,” leaving teams autonomy in their work but creating complete transparency based on data. Our operating model has a high level of decentralization to enable both scaling and alignment of architecture work.


Questions to Consider

To better understand any idea or solution, it is crucial to understand the context in which these ideas developed. When using ideas from this book, ask yourself how your organizational context differs from mine:

  • What are the unique characteristics of your organizational context?
  • What is the scale of your organization? How it affects your an architecture practice?
  • How diverse is your organization?
  • What are the growth dynamics of your organization?
  • Are you experiencing synergy and transformation pressures?
  • How (de)centralized is your organization?
Introduction
← Introduction
Introduction
Goals: Adapting, Growing, and Using Data →