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.