Skip to content

Appendix H: Engineering Practice Across Disciplines

Firmitas is intentionally multi-disciplinary. It exists for organisations building real products, not abstractions. This appendix addresses how Firmitas’s philosophy and framework translate into day-to-day engineering practice across software, firmware, hardware, mechanical, and quality disciplines, while preserving coherence at the system level.

A common failure mode in product development is treating disciplines as loosely coupled silos, each operating with its own methods, artefacts, and success measures. This leads to local optimisation, late integration, brittle interfaces, and systemic risk that only becomes visible when it is expensive or irreversible. This appendix is explicitly designed to prevent that outcome.

This section treats engineering practice as a socio-technical system. Code, schematics, CAD models, tests, simulations, and tooling are inseparable from communication patterns, decision rights, and organisational structure. Technical excellence is not achieved through tools or techniques alone, but through the alignment of people, practices, and architecture around a shared purpose.

this appendix makes explicit that different disciplines operate on different timescales and cost curves. Software is cheap to change, hardware is not. Firmware sits in between. Mechanical and manufacturing decisions carry long-lived consequences. Firmitas does not attempt to flatten these differences. Instead, it provides a structured way to coordinate them through: - Clear interfaces and ownership boundaries
- Iterative learning where it is cheap and early
- Deliberate commitment points where change becomes costly

Quality engineering is treated as a system-level property, not a downstream function. Verification and validation are integrated into everyday practice across disciplines, with explicit traceability back to requirements, risks, and business intent. This allows Firmitas to align naturally with regulated and safety-critical environments without distorting delivery.

Modern engineering realities are addressed directly. this appendix includes guidance on: - Continuous integration across heterogeneous toolchains
- Simulation, emulation, and hardware-in-the-loop testing
- Managing technical debt and architectural drift over long lifecycles
- Integrating AI-assisted development and agent-based tooling responsibly

The emphasis throughout is on coherence over uniformity. Firmitas does not mandate identical practices across disciplines. It mandates shared intent, shared interfaces, and shared accountability for outcomes. Practices are allowed to vary where it makes sense, provided they strengthen the overall system rather than fragment it.

By the end of this appendix, the reader should understand: - How different engineering disciplines fit together as a single delivery system
- How to manage integration, testing, and change across uneven iteration speeds
- How to maintain architectural and quality integrity over time
- How to apply Firmitas in modern, tool-rich, AI-augmented environments

this appendix grounds Firmitas in engineering reality. It is where the framework proves that it can support the messy, constrained, high-stakes work of building real products, not just elegant diagrams.

Software and Firmware Development in Firmitas

Software and firmware development sit at the centre of most modern products, even when the product itself is not “software-first”. In Firmitas, software and firmware are treated neither as special cases nor as generic commodities. They are socio-technical systems embedded within larger product, organisational, and economic systems.

This chapter explains how software and firmware development operate within Firmitas, and how day-to-day engineering practice aligns with the philosophy, framework, and delivery shell established earlier in the book.

The intent is not to prescribe a specific programming model, language, or tooling stack, but to define the constraints, responsibilities, and expectations under which software and firmware work must occur to support long-term system health.

Software and Firmware as System-Shaping Forces

Software and firmware do more than implement requirements. They shape:

  • how products evolve after release
  • how quickly defects can be corrected
  • how safely systems fail
  • how observable and operable products are in the field
  • how tightly coupled future change becomes

Because of this, software and firmware decisions are architectural, operational, and economic decisions, not just technical ones.

Firmitas therefore treats software and firmware development as: - a long-lived responsibility, not a project phase - a source of leverage and risk - a primary driver of product adaptability

The Role of Software and Firmware Within the Firmitas Delivery Shell

Within the Firmitas delivery shell, software and firmware work spans all major phases:

  • contributing to early feasibility and architectural exploration
  • driving learning within the Iterative Development Core
  • anchoring continuous verification and validation
  • supporting system integration and operational readiness

This explicitly rejects the idea that software “starts after design” or that firmware is merely an implementation detail following hardware decisions.

Instead, software and firmware: - participate early in shaping constraints and trade-offs - expose risk quickly through executable artefacts - provide fast feedback loops even when other disciplines move more slowly

Requirements: From Intent to Executable Behaviour

Firmitas does not treat requirements as static inputs handed to software teams.

For software and firmware, requirements evolve across levels: - system-level intent and constraints - capability and feature definitions - detailed behavioural specifications - acceptance and verification criteria

Key expectations include: - traceability from system intent to implemented behaviour - explicit handling of non-functional requirements such as timing, memory, power, security, and safety - early identification of requirements that drive architectural decisions

In embedded and firmware contexts in particular, non-functional requirements are often the primary risk drivers. Firmitas requires these to be surfaced early rather than discovered through late integration failures.

Architecture and Design in Software and Firmware

Architecture in Firmitas is not a document phase. It is a continuous decision-making activity.

For software and firmware this includes: - defining clear component boundaries - making interfaces explicit - managing coupling deliberately - choosing appropriate abstractions for the domain

Firmitas encourages: - simple, comprehensible designs over cleverness - modularity that supports testing and change - architectures that align with team ownership boundaries

Architectural decisions are captured using ADRs, ensuring that rationale survives personnel changes and that future teams understand why constraints exist, not just that they do.

Iterative Development and Incremental Learning

Software and firmware are primary engines of iteration within Firmitas.

The Iterative Development Core enables: - early execution of real code on real or representative targets - rapid feedback on assumptions - incremental risk reduction

Iterations are not defined by ceremony but by outcomes: - a risk retired - a capability proven - a constraint validated - a learning made explicit

This applies equally to: - application software - embedded firmware - real-time systems - safety-related logic

Iteration is bounded by system constraints, not by arbitrary sprint rules.

Testing, Verification, and Validation as Continuous Activities

Firmitas treats testing as an integral part of development, not a downstream phase.

For software and firmware this includes: - unit testing for behaviour and edge cases - integration testing across components - hardware-in-the-loop testing where applicable - fault injection and negative testing - regression testing tied to change, not schedule

Verification and validation are continuous: - verification ensures the system was built correctly - validation ensures the right system is being built

Automation is strongly encouraged, but automation is not a substitute for engineering judgement. Tests must reflect meaningful system behaviour, not just code coverage targets.

Toolchains as Socio-Technical Systems

Toolchains are not neutral. They encode assumptions about: - workflow - responsibility - authority - quality gates - feedback speed

Firmitas evaluates software and firmware toolchains based on: - how well they support fast, reliable feedback - how they integrate documentation and code - how visible system state and quality are - how much cognitive load they impose

A toolchain that technically “works” but fragments understanding or slows learning is treated as a system smell, not a success.

Managing Change in Software and Firmware Systems

Change is inevitable. Fragility is optional.

Firmitas expects software and firmware systems to: - tolerate change without cascading failure - make the cost of change visible - degrade gracefully under unexpected conditions

Practices that support this include: - modular architectures - disciplined interface management - explicit deprecation strategies - versioned communication contracts - controlled branching and release strategies

Change control exists to manage risk, not to prevent evolution.

Firmware-Specific Considerations

Firmware development introduces additional constraints that Firmitas explicitly recognises:

  • limited resources (CPU, memory, power)
  • hardware dependencies and lead times
  • constrained update mechanisms
  • safety and regulatory obligations
  • tighter coupling between design and execution

These constraints increase the importance of: - early prototyping - executable specifications - realistic test environments - close collaboration with hardware teams

Firmitas does not relax discipline for firmware; it raises it, while still preserving iterative learning.

Software, Firmware, and Operational Responsibility

In Firmitas, software and firmware teams do not “throw work over the wall”.

They retain responsibility for: - operability - diagnosability - update strategies - incident response support - long-term maintainability

This reinforces: - end-to-end ownership - feedback from real-world use - continuous improvement

Operational pain is treated as a design signal, not as someone else’s problem.

Leadership Responsibilities in Software and Firmware Development

Leaders are responsible for creating conditions in which good software and firmware can be built.

This includes: - protecting teams from chronic overload - enforcing architectural discipline without micromanagement - funding quality work that does not produce immediate features - resisting deadline-driven degradation of system health - making trade-offs explicit and visible

Leadership failure in software systems almost always manifests later as technical debt, operational incidents, or loss of adaptability.

Summary

In Firmitas: - software and firmware are long-lived system assets - architecture is continuous decision-making - iteration is a learning mechanism, not a ritual - testing and validation are integral to development - toolchains are socio-technical systems - operational responsibility is inseparable from delivery - leadership behaviour shapes technical outcomes

Software and firmware development are not isolated activities. They are central expressions of the organisation’s values, constraints, and system design.

The next chapter extends these principles into the physical world, addressing the unique challenges of hardware and mechanical development and their integration with software-led systems. :contentReferenceoaicite:0

Hardware and Mechanical Development Considerations

Firmitas treats hardware and mechanical engineering as first-class system components, not as downstream constraints to be worked around once “the real work” begins. In many organisations, hardware is framed as slow, rigid, and fundamentally incompatible with iterative delivery. That framing is incorrect. The problem is not hardware itself, but how the surrounding delivery, decision, and organisational systems are designed.

This chapter explains how Firmitas integrates hardware and mechanical development into a coherent, system-level delivery model without pretending that hardware behaves like software.

Hardware and Mechanical Engineering as System Anchors

Hardware and mechanical elements anchor products in physical reality. They introduce:

  • irreversibility at certain points
  • long lead times and supply chain coupling
  • manufacturing constraints
  • regulatory and safety obligations
  • cost structures that dominate unit economics

These properties make hardware high-leverage decisions, not “implementation details”.

In Firmitas, hardware and mechanical design: - shape architectural boundaries - define feasible iteration speed - constrain or enable future change - influence organisational structure and skills

Treating them late or lightly creates systemic risk that no amount of software agility can compensate for.

The Fallacy of “Hardware Can’t Be Iterative”

Firmitas explicitly rejects the false dichotomy that says: > “Software can iterate, hardware cannot.”

What is true is that different parts of the system have different costs of change.

Hardware iteration exists, but it occurs through: - staged commitment - progressive fidelity - deliberate decision points - simulation and abstraction

Firmitas designs the delivery system so that learning occurs before irreversible commitments, rather than attempting to iterate after cost has already been locked in.

Progressive Commitment in Physical Systems

Firmitas applies the principle of progressive commitment to hardware and mechanical work.

This means: - early exploration is cheap and reversible - decisions harden gradually - commitment increases only as uncertainty decreases

Typical progression includes: - conceptual modelling and trade studies - simulation and virtual prototyping - low-fidelity physical prototypes - engineering prototypes - pre-production builds - production tooling and manufacture

The key is not the stages themselves, but explicit recognition of when change cost increases, and leadership responsibility for managing those transitions.

Early Hardware Involvement in System Architecture

Hardware and mechanical engineers are involved from the earliest architectural discussions.

This ensures: - realistic constraints inform system design - non-functional requirements are grounded in physics - interfaces between disciplines are designed deliberately - infeasible architectures are rejected early

Firmitas treats architecture as a cross-disciplinary activity, not a software artefact with hardware “plugged in later”.

Managing Hardware–Software Interdependence

In integrated products, the most severe failures occur at boundaries: - hardware assumptions embedded in firmware - mechanical tolerances affecting sensor behaviour - thermal or power constraints undermining software guarantees

Firmitas manages these risks by: - making interfaces explicit and versioned - using living Interface Control Documents (ICDs) - aligning iteration cadences across disciplines - ensuring integration happens early and repeatedly

Integration is not a phase. It is a continuous system property.

Prototyping as a Learning Instrument

Prototyping in Firmitas is not about impressing stakeholders. It is about learning under constraint.

Hardware and mechanical prototypes are used to: - validate assumptions - expose failure modes - inform architectural decisions - reduce downstream risk

This includes: - rapid PCB spins - mechanical mock-ups - 3D-printed enclosures - off-the-shelf component evaluation - breadboards and dev kits

The value of a prototype is measured by what it invalidates, not how polished it appears.

Simulation, Modelling, and Virtualisation

Where physical iteration is expensive, Firmitas leans heavily on modelling.

This includes: - electrical simulation - thermal modelling - mechanical stress and fatigue analysis - digital twins - software-in-the-loop and hardware-in-the-loop testing

Simulation does not replace physical testing, but it: - shifts learning earlier - reduces iteration cost - narrows uncertainty before commitment

Leaders must actively fund modelling capability. It is often the highest ROI investment in hardware-heavy systems.

Manufacturing, Supply Chain, and Economic Reality

Hardware decisions are inseparable from manufacturing and supply chain systems.

Firmitas explicitly considers: - component availability and lifecycle - supplier risk and dependency - tooling lead times - yield and testability - unit cost versus non-recurring engineering (NRE)

Engineering leadership is responsible for ensuring that: - designs are manufacturable - cost trade-offs are explicit - supply chain risks are surfaced early

Ignoring these realities leads to late redesign, missed markets, or fragile products.

Quality, Safety, and Regulatory Constraints

Hardware and mechanical systems are often subject to: - safety standards - environmental regulations - industry-specific compliance regimes

Firmitas integrates these constraints into normal delivery flow by: - embedding compliance requirements into system intent - treating evidence as a living artefact - aligning verification activities with iteration, not gates alone

Quality is not inspected in at the end. It is designed in from the start.

Organising Teams Around Physical Systems

Hardware and mechanical work place different cognitive and coordination demands on teams.

Firmitas recognises that: - excessive context switching is especially damaging - unclear ownership leads to integration failure - long feedback loops amplify mistakes

Teams are organised to: - own coherent subsystems - minimise cross-team dependencies - align accountability with decision authority

This directly reflects the socio-technical principles established earlier in the book.

Change Management in Physical Domains

Change in hardware systems must be managed deliberately, but not fearfully.

Firmitas: - distinguishes learning-driven change from churn - evaluates change based on system impact, not sunk cost - uses structured decision points to manage risk

Suppressing change too early creates brittle designs. Allowing uncontrolled change too late creates chaos.

Leadership judgement, not process, is decisive here.

Leadership Responsibilities in Hardware-Centric Products

In hardware and mechanical contexts, leadership responsibilities intensify.

Leaders must: - protect time for early exploration - resist premature cost optimisation - ensure cross-disciplinary collaboration - fund prototyping and modelling - make irreversible decisions explicit and conscious

Most hardware failures are leadership failures long before they become technical ones.

Summary

In Firmitas: - hardware and mechanical systems are integral, not secondary - iteration exists, but through progressive commitment - architecture is cross-disciplinary - prototyping and modelling are core learning tools - manufacturing and economics are engineering concerns - quality and compliance are system properties - leadership behaviour determines outcomes

Firmitas does not attempt to make hardware behave like software. It designs a delivery system that respects physical reality while preserving learning, control, and long-term adaptability.

The next chapter addresses how these disciplines are integrated into whole systems, focusing on dependency management, interfaces, and cross-domain coherence.

Integrated Systems and Dependency Management

Modern products are rarely isolated. They are networks of interdependent components, teams, technologies, suppliers, and decisions that evolve over time.

Failures in complex products are far more often caused by poorly managed dependencies than by deficiencies in individual components. Firmitas treats integration and dependency management as a first-class systems problem, not a late-phase technical activity.

Integration Is a System Property, Not a Phase

Traditional delivery models often treat integration as something that happens “later”: after design, after implementation, after teams have optimised locally.

This framing is fundamentally flawed.

Integration is not an event. It is a continuous system behaviour shaped by: - architectural boundaries, - organisational structure, - communication patterns, - tooling, - and decision timing.

Firmitas treats integration as something that must be designed for from the outset and continuously exercised throughout delivery.

Types of Dependencies in Integrated Systems

Dependencies exist across multiple system layers simultaneously. Focusing on only one dimension guarantees blind spots elsewhere.

Firmitas explicitly recognises and manages the following dependency types:

Technical Dependencies

  • Interfaces between software modules, firmware components, hardware subsystems, and external services.
  • Coupling created by shared state, shared resources, timing assumptions, or hidden contracts.
  • Version compatibility and backward/forward compatibility constraints.

Poorly managed technical dependencies increase failure propagation and slow change.

Organisational Dependencies

  • Dependencies between teams created by ownership boundaries, approval paths, and reporting lines.
  • Waiting on decisions, reviews, or resources controlled elsewhere.
  • Hidden queues introduced by shared specialists or centralised functions.

These dependencies are often invisible in code but dominant in delivery performance.

Socio-Technical Dependencies

  • Toolchains that require coordination across teams.
  • Documentation formats that encode assumptions about who decides and who consumes.
  • CI/CD pipelines that assume particular integration sequences or ownership models.

Socio-technical dependencies frequently constrain flow more than technology itself.

External and Supply Chain Dependencies

  • Third-party components, vendors, cloud services, manufacturing partners, and regulators.
  • Lead times, certification cycles, and contractual constraints.
  • End-of-life risks and component obsolescence.

These dependencies must be surfaced early, not discovered during validation.

Dependency Visibility as a Leadership Responsibility

Dependencies do not manage themselves. They must be made visible, discussed, and deliberately shaped.

Firmitas places responsibility for dependency visibility squarely with leadership, not individual contributors. This includes: - architects surfacing technical coupling, - delivery leadership exposing organisational queues, - and programme leadership making economic trade-offs explicit.

Invisible dependencies always cost more than visible ones.

Designing for Loose Coupling and Clear Ownership

The primary mechanism for managing dependencies is design, not coordination.

Firmitas emphasises: - clear ownership boundaries, - explicit interfaces, - and minimal coupling between components and teams.

Key practices include: - defining stable interfaces early, even if implementations evolve, - assigning single accountable owners for interfaces and integration points, - and avoiding shared mutable state wherever possible.

Ownership clarity reduces coordination overhead and accelerates learning.

Interface Control as a Living System

Interface Control Documents (ICDs) are often treated as static, bureaucratic artefacts. In Firmitas, they are living system contracts.

Effective ICDs: - are version-controlled, - evolve alongside the system, - and are reviewed using the same mechanisms as code.

They exist to reduce ambiguity, not to freeze design prematurely.

Importantly, ICDs are socio-technical artefacts: they encode expectations about communication, responsibility, and change tolerance.

Integration Cadence and Early Validation

Integration deferred is risk multiplied.

Firmitas encourages: - frequent integration, - early system-level testing, - and continuous validation of assumptions.

This applies equally to: - software-software integration, - firmware-hardware integration, - and system-environment interaction.

Early integration surfaces systemic issues while they are still cheap to fix.

Dependency Management and Flow

Every dependency introduces potential delay. Every delay introduces queues. Every queue increases cycle time and reduces feedback quality.

Firmitas explicitly links dependency management to flow: - fewer dependencies mean faster learning, - clearer dependencies mean better planning, - and well-managed dependencies reduce the need for heroic coordination.

Local optimisation that increases dependency density is actively discouraged.

Economic Consequences of Dependency Decisions

Dependency decisions are economic decisions.

Tightly coupled systems: - increase change cost, - increase failure impact, - and reduce optionality.

Loosely coupled systems: - preserve strategic flexibility, - enable incremental evolution, - and reduce long-term cost of ownership.

Firmitas requires leaders to make these trade-offs explicit, rather than allowing them to emerge accidentally.

Integration as Continuous Learning

Integration is not just about making things work together. It is one of the richest sources of learning about the system.

Every integration issue reveals: - mismatched assumptions, - unclear ownership, - or systemic weaknesses.

Firmitas treats integration failures as learning signals, not individual errors. This aligns directly with its commitment to psychological safety and continuous improvement.

Integration in Regulated and Safety-Critical Contexts

In regulated environments, integration carries additional obligations: - traceability, - evidence generation, - and formal verification.

Firmitas integrates these requirements without reverting to late-stage integration by: - maintaining continuous traceability, - integrating verification into normal flow, - and treating compliance artefacts as living documents.

This preserves learning speed while satisfying external assurance needs.

Summary: Integration Is Leadership Work

Integrated systems succeed or fail based on how dependencies are designed, owned, and evolved.

Firmitas makes this explicit: - integration is not a technical afterthought, - dependency management is not a coordination tax, - and system health is not emergent by accident.

Engineering leadership is responsible for shaping the conditions under which integration becomes routine, safe, and informative rather than painful and destabilising.

The next chapter builds directly on this foundation by formalising architecture decision-making as a living, traceable practice, rather than a one-off design activity.

Architecture Decision Records and Living Design

Architecture is not a phase. It is not a document. It is not a role.

Architecture is the accumulated set of decisions that shape how a system behaves, changes, fails, and evolves over time.

Firmitas treats architecture as a continuous, decision-centric activity that must remain visible, reviewable, and evolvable throughout the life of a product. Architecture Decision Records (ADRs) and living design artefacts are the primary mechanisms by which this happens.

This chapter formalises how Firmitas uses ADRs and living design to turn architecture from an implicit, fragile knowledge base into an explicit, resilient system.

Architecture as a Decision System

Every meaningful architectural choice encodes assumptions about: - change frequency - ownership boundaries - failure modes - performance constraints - cost and risk tolerance

When these assumptions remain implicit, they: - become invisible constraints - are rediscovered through failure - are defended emotionally rather than rationally

Firmitas reframes architecture as a decision system, where: - decisions are surfaced explicitly - trade-offs are documented - and rationale is preserved over time

ADRs are not bureaucracy. They are memory.

Why Traditional Architecture Documentation Fails

Traditional architecture documentation often fails because it: - attempts to be comprehensive rather than decision-focused - is produced upfront and decays rapidly - is detached from actual delivery work - serves compliance rather than understanding

The result is shelfware that: - no one trusts - no one updates - and no one uses when it matters

Firmitas deliberately rejects “big design up front” and “big documents later”. Instead, it optimises for just enough design, captured at the moment of decision.

What an Architecture Decision Record Is (and Is Not)

An ADR is a lightweight, structured record of a significant architectural decision.

It exists to answer: - What decision did we make? - Why did we make it? - What alternatives did we consider? - What trade-offs did we accept? - What are the consequences?

An ADR is: - narrow in scope - explicit about context - honest about uncertainty

An ADR is not: - a design specification - a justification after the fact - a permanent truth

Decisions can be revisited. ADRs make that possible without rewriting history.

When to Create an ADR

Firmitas does not mandate ADRs for every choice. They are used when a decision: - is hard to reverse - affects multiple teams or systems - introduces long-term constraints - carries significant risk or cost - is likely to be questioned later

Examples include: - architectural patterns and styles - protocol or platform selection - data ownership boundaries - build vs buy decisions - deployment and operational models

The trigger is decision significance, not hierarchy or ceremony.

ADRs as Socio-Technical Artefacts

ADRs are not just technical records. They are socio-technical artefacts that: - shape how teams communicate - clarify who decides what - reduce conflict by making trade-offs explicit

Well-written ADRs: - depersonalise disagreement - enable asynchronous collaboration - reduce reliance on tribal knowledge

They shift conversations from “who decided this?” to “under what assumptions did we decide this?”.

Living Design Over Static Blueprints

Firmitas pairs ADRs with living design artefacts.

Living design means: - diagrams evolve as the system evolves - documentation reflects reality, not aspiration - design artefacts are version-controlled - updates happen alongside code changes

Common living design artefacts include: - C4 diagrams at appropriate levels - interface definitions - deployment views - data flow diagrams - failure and resilience models

The goal is shared understanding, not exhaustive description.

Diagrams as Thinking Tools, Not Decoration

In Firmitas, diagrams exist to: - reduce cognitive load - support reasoning - expose coupling and assumptions

They are not marketing material.

Good diagrams: - answer a specific question - target a defined audience - avoid false precision - are easy to update

Bad diagrams attempt to explain everything and end up explaining nothing.

Version Control and Review of Design Decisions

All ADRs and living design artefacts are: - stored in version control - reviewed via pull requests - evolved incrementally

This achieves several things: - design changes are auditable - rationale is preserved alongside implementation - discussion happens close to the decision - ownership is explicit

Design review becomes part of normal engineering flow, not a separate governance ritual.

ADRs and Governance Without Bureaucracy

Firmitas uses ADRs to enable lightweight governance.

Rather than central approval boards: - guardrails are expressed through principles - significant deviations are documented via ADRs - accountability is achieved through transparency

This allows: - decentralised decision-making - central visibility - and post-hoc review without control theatre

Governance emerges from shared understanding, not enforcement.

Revisiting and Superseding Decisions

Systems change. Assumptions expire. Constraints shift.

Firmitas expects ADRs to be: - revisited when context changes - superseded when better options emerge - referenced when diagnosing problems

A superseded ADR is not a failure. It is evidence of learning.

What matters is that change is conscious, not accidental.

Architectural Integrity Over Time

Architectural decay rarely comes from bad initial design. It comes from: - unrecorded decisions - local optimisations - silent trade-offs - time pressure without reflection

ADRs and living design provide friction in the right places: - they slow down irreversible decisions just enough - they force trade-offs into the open - they preserve intent across team and time boundaries

This protects long-term system health without paralysing delivery.

Leadership Responsibilities Around Architecture

Engineering leaders are responsible for: - ensuring architectural decisions are visible - protecting time for design thinking - discouraging undocumented shortcuts - valuing clarity over heroics

They do not need to make every decision. They must ensure that decisions are made well, consciously, and transparently.

Architecture fails most often when leadership treats it as someone else’s problem.

Summary

In Firmitas: - architecture is a continuous decision process - ADRs capture intent, trade-offs, and consequences - living design maintains shared understanding - governance is achieved through transparency - learning is preserved over time

Architecture is not about predicting the future. It is about making today’s decisions survivable tomorrow.

The next chapter builds directly on this foundation by formalising documentation itself as a delivery enabler, rather than an overhead.

Documentation as an Enabler (Docs as Code)

Documentation is not a by-product of engineering. It is not evidence created after the fact. It is not something to be “kept in sync” if time allows.

In Firmitas, documentation is treated as a first-class delivery mechanism. It is part of the socio-technical system through which intent, decisions, risk, quality, and learning flow.

This chapter defines how Firmitas reframes documentation from overhead into leverage through a Docs-as-Code approach.

Why Documentation Fails in Most Organisations

Most documentation fails for systemic reasons, not because engineers are careless.

Common failure modes include: - documentation created to satisfy a gate or audit, then abandoned - large documents written upfront, divorced from delivery - ownership assigned to “someone else” - tools optimised for publishing rather than thinking - documentation treated as static truth rather than evolving knowledge

The result is predictable: - engineers stop trusting documentation - decisions move into chat logs and heads - audits become painful archaeology exercises - organisations relearn the same lessons repeatedly

Firmitas starts from a different premise: documentation exists to support decision-making, learning, and coordination under uncertainty.

Documentation as a Socio-Technical System

Documentation is not just text. It is a socio-technical system spanning: - people and incentives - tools and workflows - governance and quality expectations - organisational memory

Every documentation system encodes assumptions about: - who is allowed to change what - what level of precision is expected - how disagreement is resolved - what “good enough” looks like

Firmitas explicitly designs this system rather than letting it emerge accidentally.

The Core Principle: Documentation Must Live Where Work Lives

In Firmitas: - documentation lives alongside code - documentation changes follow the same workflow as code - documentation is version-controlled - documentation is reviewed, not approved in isolation

This has several effects: - documentation stays close to reality - changes are incremental, not heroic - ownership is clear - history is preserved automatically

If a document cannot be changed with a pull request, it will decay.

What “Docs as Code” Means in Practice

Docs-as-Code is not a tool choice. It is a way of working.

Practically, it means: - text-based formats (Markdown, AsciiDoc) by default - diagrams as text where possible (Mermaid, PlantUML) - Git as the source of truth - CI pipelines for validation and publishing - pull requests for review and discussion

This aligns documentation with the same delivery system engineers already understand.

Documentation Types in Firmitas

Firmitas deliberately limits the number of documentation types, focusing on decision-bearing artefacts.

Key categories include:

Vision and Intent

Documents that explain: - why the product exists - who it serves - what success means

These are concise, narrative, and stable.

Requirements and Constraints

Statements of: - functional intent - non-functional constraints - regulatory and safety obligations

They evolve, but changes are explicit and traceable.

Architectural and Design Artefacts

Living views of: - system structure - interfaces - deployment - failure modes

Paired with ADRs to preserve rationale.

Verification, Validation, and Evidence

Test plans, results, and traceability that: - demonstrate conformance - support audits - enable learning

These are generated continuously, not assembled at the end.

Documentation and Cognitive Load

Documentation exists to reduce cognitive load, not increase it.

Firmitas applies the same principles here as for team design: - minimise duplication - avoid unnecessary precision - surface only what matters to the audience

This means: - different views for different needs - no single “master document” - clarity over completeness

A document that tries to answer every question answers none well.

Documentation and Decision Transparency

Documentation is the primary mechanism for decision transparency.

In Firmitas: - significant decisions are documented explicitly - rationale is preserved - alternatives are visible - consequences are acknowledged

This reduces: - repeated debates - personalisation of disagreement - institutional memory loss

It also enables new team members to onboard into why, not just what.

Docs as Code and Governance Without Friction

Docs-as-Code enables governance without heavyweight process.

Instead of: - formal review boards - static templates - central approval queues

Firmitas relies on: - shared standards - visible changes - peer review - automated checks

Governance becomes an emergent property of the system, not an external control layer.

Documentation in Regulated and Safety-Critical Contexts

Firmitas does not reject formal documentation. It rejects wasteful documentation.

Docs-as-Code works particularly well in regulated environments because: - version history is automatic - traceability can be generated, not curated - evidence is produced as work happens - audits become queries, not archaeology

Formal outputs (PDFs, baselined documents) are treated as snapshots of a living system, not the system itself.

Documentation, Slack, and Long-Term Performance

High-quality documentation requires slack.

When teams are permanently overloaded: - documentation degrades first - decisions go undocumented - risk accumulates silently

Firmitas treats slack as a system investment: - time to explain - time to reflect - time to improve artefacts

This is not inefficiency. It is what allows systems to remain understandable and adaptable over time.

Leadership Responsibilities Around Documentation

Leaders are responsible for: - valuing clarity over volume - protecting time for documentation - modelling good documentation behaviour - resisting performative documentation demands

When leaders treat documentation as “admin”, teams follow. When leaders treat it as infrastructure, teams invest.

Anti-Patterns to Avoid

Firmitas explicitly warns against: - documentation owned by a single role - “final” documents - copy-paste templates without intent - documentation created purely for audits - tools chosen for aesthetics over integration

Each of these undermines trust and long-term system health.

Summary

In Firmitas: - documentation is part of the delivery system - Docs-as-Code aligns documentation with engineering flow - living artefacts preserve intent and learning - governance emerges from transparency - slack enables quality documentation

Documentation is not about recording the past. It is about enabling better decisions in the future.

The next chapter builds on this by examining how toolchains and automation shape the socio-technical system that Firmitas operates within.

Toolchains, Automation, and Socio-Technical Fit

Tooling does not merely support delivery. It shapes behaviour, constrains choices, encodes assumptions, and silently defines how work actually gets done.

In Firmitas, toolchains and automation are treated as socio-technical systems, not neutral utilities. Poorly chosen tools can undermine autonomy, distort incentives, and increase cognitive load. Well-chosen tools amplify good practices, reinforce flow, and make quality the default outcome rather than an act of heroism.

This chapter defines how Firmitas approaches tools and automation deliberately, pragmatically, and without falling into the tool-first trap.

The Tool Fallacy

Most organisations overestimate the impact of tools and underestimate the systems they operate within.

Common failure patterns include: - adopting tools before clarifying purpose - forcing teams to adapt to tools rather than the reverse - mistaking visibility for control - standardising tools to solve organisational dysfunction

Tools do not fix broken systems. They tend to amplify whatever already exists, good or bad.

Firmitas explicitly rejects tool-led transformation.

Tools as Behaviour-Shaping Systems

Every tool encodes assumptions about: - who is allowed to act - when decisions can be made - what “good” looks like - what is visible and what is hidden

For example: - ticket systems encode assumptions about predictability and work decomposition - CI pipelines encode assumptions about ownership and quality gates - documentation tools encode assumptions about authorship and authority

Firmitas treats tools as policy embedded in software, and therefore subject to the same scrutiny as any other system design decision.

Socio-Technical Fit Over Tool Uniformity

Firmitas prioritises socio-technical fit over uniformity.

This means: - different teams may use different tools - standardisation is justified only where it reduces friction - diversity is acceptable where it increases effectiveness without harming the wider system

Uniformity is a cost, not a virtue. It must earn its place.

The guiding question is always: > Does this tool reduce cognitive load and improve flow at the system level?

Tooling and Autonomy

Tools can either enable autonomy or quietly destroy it.

Autonomy-supporting tools: - allow teams to make local decisions - provide fast feedback - minimise external approvals - make consequences visible

Autonomy-eroding tools: - introduce central queues - require permission for routine actions - hide system state - reward compliance over outcomes

Firmitas favours tools that extend team capability rather than increase oversight.

Automation as Risk Reduction, Not Speed Theatre

Automation is often sold as a way to “go faster”. Firmitas frames it differently.

Automation exists primarily to: - reduce variability - catch errors early - make quality repeatable - free human capacity for judgement and creativity

Speed is a side-effect of reliability, not the goal.

Automating a broken process simply allows you to fail faster and more consistently.

Continuous Integration as a System Health Signal

CI is not a build server. It is a system health indicator.

In Firmitas: - broken builds signal upstream problems - flaky tests indicate architectural or ownership issues - long pipelines reveal coupling and batch size problems

CI pipelines are diagnostic tools, not just delivery mechanisms.

Leaders should treat CI failures as system feedback, not team failure.

Toolchains Across Disciplines

Firmitas explicitly acknowledges that: - software, firmware, hardware, and mechanical disciplines use different tools - forcing artificial convergence increases friction - integration happens through interfaces, not tool sameness

The goal is not a single toolchain, but interoperable toolchains: - shared identifiers - traceable artefacts - clear ownership boundaries

Integration is achieved through information flow, not tool mandates.

Documentation, Tooling, and Docs as Code

Documentation tools are part of the delivery system.

Firmitas favours: - text-first formats - version-controlled documentation - automation for publishing and validation - low-friction contribution paths

Tools that require specialised roles to update documentation create bottlenecks and decay.

Docs-as-Code only works when the tooling lowers the barrier to contribution.

Observability, Feedback, and Learning

Toolchains should make system behaviour observable.

This includes: - build and test results - deployment state - operational telemetry - incident data

Observability supports: - fast feedback - evidence-based decision-making - blameless learning

A system that cannot be observed cannot be responsibly governed.

Slack, Tooling, and Long-Term Effectiveness

Good tooling requires slack.

Teams under constant pressure: - bypass automation - disable checks - accumulate fragile workarounds

Firmitas explicitly protects time for: - improving pipelines - refactoring automation - reducing toil

This aligns directly with the concept of slack as a prerequisite for resilience, not a sign of inefficiency.

Leadership Responsibilities Around Tooling

Leaders are responsible for: - resisting tool-driven change narratives - ensuring tools serve clear purposes - removing tools that add friction without value - funding maintenance and improvement of automation

Neglected toolchains become invisible technical debt with real organisational cost.

Anti-Patterns to Avoid

Firmitas explicitly warns against: - mandating tools to solve trust problems - measuring productivity through tool activity - building approval gates into automation - conflating standardisation with maturity - outsourcing thinking to dashboards

Each of these creates false confidence and systemic brittleness.

Summary

In Firmitas: - tools are socio-technical systems - automation exists to reduce risk and cognitive load - socio-technical fit matters more than uniformity - observability enables learning - slack enables sustainable automation

Toolchains should make the right thing easier, the wrong thing harder, and the system more understandable over time.

The next section shifts focus from practice to assurance, examining quality engineering and regulation as leadership responsibilities, not compliance exercises.