liveBook · Manning

Component

As explained in Architecture Modernization: Socio-technical alignment of software, strategy, and structure

A software component is a part of a software system that may range from a function or class to a service or entire system.

A software component is a part of a system, not necessarily a product in its own right. Its size depends on the question being asked: a map of a business needs different granularity from a map of one capability. UI layers and backend APIs are architectural building blocks; unlike a complete product, they do not independently meet a customer need. section 5.2 section 6.4.1

Components become more useful to reason about when their relationships are visible. A Wardley Map builds value chains from components and their dependencies, starting with users and their needs. Because a change to one component can affect its dependents, the map can prompt questions about what else may need to evolve. section 5.2 section 5.4.2

To explore a set of components with colleagues:

  • Set the map’s purpose and scope, identify users and needs, then build value chains and place their components along the evolution axis. section 5.2
  • For a component whose position is uncertain, compare its characteristics with stages of evolution. Discuss conflicting judgments rather than forcing a supposedly correct answer. section 5.3.2
  • Ask what a component knows about another: only a public contract, or details such as private methods and persisted state? More knowledge can make changes riskier. section 12.1

A product made of components

An advertising-campaign product can contain a customer UI and separate applications for creating campaigns, running and tracking them, and configuring rules. Those parts may be owned by different teams without each becoming a separate customer-facing product. Mapping their dependencies can make ownership and change conversations more concrete. section 6.1.6 section 6.4.1

Figure 12.2 Vlad Khononov’s coupling types

Compare coupling types by integration strength to discuss how much one component knows about another and where changes may cascade. section 12.1

Component boundaries and positions are working judgments, not permanent labels. Revisit them as dependencies and practices evolve. For example, widespread internet access and collaboration tools helped remote working evolve; a change in one part of a value chain can alter what is possible elsewhere. section 5.3.2 section 5.4.2

How Architecture Modernization: Socio-technical alignment of software, strategy, and structure covers it

How deep it goes
Defines components as architectural building blocks, then elaborates mapping, evolution judgments, and coupling; does not provide implementation instructions.
Examples
Illustrates components with advertising-campaign applications, remote-working tools, and a group exercise that assesses evolution criteria.
What it assumes
Introduces mapping steps and a first-time evolution exercise without requiring prior Wardley Mapping practice.
What you can do after
Evaluate/understand it: place components on a Wardley Map, discuss uncertain evolution positions, and identify coupling-related change risks.
How it connects
Links components to products, features, value chains, dependencies, evolution, and coupling.

Also explained in

Compare how 10 books explain component →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Architecture Modernization: Socio-technical alignment of software, strategy, and structure. The section links point to the parts of the book it draws on.