Skip to main content

Book Recommendations

A reading list I recommend on functional safety, system design, software development and the standards behind safety-related systems.

Release It! Second Edition

Michael T. Nygard

System Design

Patterns for designing software that survives contact with production. Covers stability patterns and anti-patterns, illustrated with real-world failure stories.

Key takeaways
  • Circuit Breaker pattern for fault isolation
  • Bulkheads to stop failures from cascading
  • Timeouts and fail-fast behaviour
  • Designing for operations and production readiness

Published: 2018

More about the book →

Designing Data-Intensive Applications

Martin Kleppmann

Architecture

An in-depth look at the principles behind data systems: reliability, scalability and maintainability, and how replication, partitioning and consistency work in distributed systems.

Key takeaways
  • Consistency models and their guarantees
  • Replication and partitioning strategies
  • Fault tolerance mechanisms
  • Principles of data system design

Published: 2017

More about the book →

The Goal

Eliyahu M. Goldratt

Systems Thinking

A business novel that introduces the Theory of Constraints. Shows how finding and managing bottlenecks improves the performance of the system as a whole.

Key takeaways
  • Every system is limited by its constraints (bottlenecks)
  • A process of ongoing improvement
  • Optimising for throughput, not local utilisation

Published: 1984

More about the book →

ISO 26262:2018 – Road vehicles – Functional safety

International Organization for Standardization (ISO)

Standards

The international standard for functional safety of electrical and electronic systems in series-production road vehicles. Defines the safety lifecycle and Automotive Safety Integrity Levels (ASIL A–D).

Key takeaways
  • Hazard analysis and risk assessment (HARA) and ASIL determination
  • Safety lifecycle from concept to decommissioning
  • V-model reference process for system, hardware and software development
  • Verification, validation and confirmation measures

Published: 2018

Available from standards bodies

EN 50128:2011 – Railway applications – Communication, signalling and processing systems – Software for railway control and protection systems

CENELEC

Standards

The European standard for software in railway control and protection systems. Defines software safety integrity levels (SIL 0–4) and the lifecycle, roles, techniques and documentation required at each level.

Key takeaways
  • Software SIL derived from system-level safety requirements (EN 50126/EN 50129)
  • Software lifecycle phases and their deliverables
  • Independent roles: verifier, validator, assessor
  • Techniques and measures recommended for each SIL
  • Traceability from requirements to tests

Published: 2011

Available from standards bodies

Code Complete, Second Edition

Steve McConnell

Development

A comprehensive guide to software construction: design, defensive programming, error handling and code quality practices that are highly relevant to safety-related software.

Key takeaways
  • Defensive programming principles
  • Structuring and organising code
  • Error handling strategies
  • Developer testing, reviews and debugging

Published: 2004

More about the book →

The Pragmatic Programmer, 20th Anniversary Edition

David Thomas & Andrew Hunt

Development

Practical principles of professional software development. Many of its ideas – decoupling, automation, testing – carry over directly to maintainable, reliable safety-related code.

Key takeaways
  • DRY (Don't Repeat Yourself)
  • Orthogonality and decoupling
  • Test early, test often, test automatically
  • Pragmatic debugging techniques

Published: 2019

More about the book →

Standards are copyrighted documents and are not freely available. They can be purchased from ISO, CENELEC or national standards bodies (in Poland: PKN), and many companies and university libraries provide access to them.