Software Engineering Guide¶
This is a guidebook of good practices for software developer teams, including for startups, enterprises, and government organizations.
The guide spans ways of working, programming craft, architecture, security, AI, data and analytics, UI/UX, automation, delivery, operations, flow, management, and the full breadth of the software engineering body of knowledge.
- What is software engineering?: start here
- Introduction: what this book is and how to read it
- Table of contents: the full chapter list
How to read this guidebook¶
Parts are whole numbers; chapters are decimals. Chapter N.0 introduces each part; N.1, N.2, … are its chapters. Part 12 collects the appendices (glossary, checklists, templates, maturity self-assessment, references, adoption roadmap, and index). Each chapter states principles, recommendations, trade-offs, examples (enterprise and government), a business case (ROI/TCO), anti-patterns, a maturity model, discussion questions, and references. Adopt incrementally; do not big-bang.
Table of contents¶
Part 1: People¶
- 1.0 Introduction
- 1.1 Software engineering values
- 1.2 Team topologies and organizational design
- 1.3 Roles, career ladders, and growth
- 1.4 Ways of working
- 1.5 Decision-making and governance
- 1.6 Decision records
- 1.7 Engineering standards and exceptions
- 1.8 Hiring, interviewing, and onboarding
- 1.9 Distributed and remote work
- 1.10 Engineering effectiveness and developer productivity
- 1.11 Engineering management
- 1.12 Diversity, equity, inclusion, and belonging
- 1.13 Mentoring, coaching, and knowledge sharing
Part 2: Software Programming¶
- 2.0 Introduction
- 2.1 Coding standards and style
- 2.2 Software design principles
- 2.3 APIs and interface design
- 2.4 Testing strategy
- 2.5 Code review and collaboration
- 2.6 Version control and source management
- 2.7 Documentation
- 2.8 Software requirements
- 2.9 Software construction
- 2.10 Software configuration management
- 2.11 Software quality
- 2.12 Software models and methods
- 2.13 Computing, mathematical, and engineering foundations
- 2.14 Project and repository structure
- 2.15 Debugging and troubleshooting
- 2.16 Performance engineering
- 2.17 Concurrency and parallelism
- 2.18 Dependency and supply-chain management
- 2.19 Refactoring and technical debt
- 2.20 Error handling and resilience patterns
- 2.21 Type systems and static analysis
Part 3: Systems¶
- 3.0 Introduction
- 3.1 Architecture fundamentals
- 3.2 Architectural styles and patterns
- 3.3 Distributed systems
- 3.4 Data architecture and storage
- 3.5 Scalability, performance, and resilience
- 3.6 Legacy modernization
- 3.7 Software maintenance
- 3.8 Interoperability and open standards
- 3.9 Systems engineering
- 3.10 Embedded and real-time systems
- 3.11 Cloud architecture
- 3.12 Event-driven architecture and messaging
- 3.13 Networking and connectivity
- 3.14 Multi-tenancy and SaaS architecture
- 3.15 Caching and content delivery
- 3.16 API gateways and service mesh
- 3.17 Search and information retrieval
Part 4: Security¶
- 4.0 Introduction
- 4.1 Security foundations and culture
- 4.2 Application security
- 4.3 Infrastructure and cloud security
- 4.4 Security operations
- 4.5 Privacy and data protection
- 4.6 Compliance and governance
- 4.7 Identity and access management
- 4.8 Cryptography and key management
- 4.9 Secure software development lifecycle
- 4.10 Penetration testing and red teaming
Part 5: UI/UX Design¶
- 5.0 Introduction
- 5.1 UX foundations
- 5.2 UI design and design systems
- 5.3 Accessibility
- 5.4 Content and communication design
- 5.5 Internationalization and localization
- 5.6 Frontend engineering
- 5.7 Mobile application development
- 5.8 Design research and usability testing
- 5.9 Service design
- 5.10 Data visualization design
Part 6: Artificial Intelligence¶
- 6.0 Introduction
- 6.1 AI strategy and readiness
- 6.2 Machine learning engineering (MLOps)
- 6.3 Generative AI and LLM applications
- 6.4 AI-assisted software development
- 6.5 Responsible and trustworthy AI
- 6.6 AI infrastructure and operations
- 6.7 AI agents and agentic systems
- 6.8 AI evaluation and testing
- 6.9 Prompt engineering and context design
Part 7: Data, Analytics, and Insight¶
- 7.0 Introduction
- 7.1 Data strategy and governance
- 7.2 Data engineering
- 7.3 Analytics and business intelligence
- 7.4 Product analytics and experimentation
- 7.5 Decision science and data-informed culture
- 7.6 Real-time and streaming data
- 7.7 Data modelling and the semantic layer
- 7.8 Data quality and observability
- 7.9 Master data and reference data management
Part 8: Automation¶
- 8.0 Introduction
- 8.1 CI/CD and delivery
- 8.2 Infrastructure as code and configuration
- 8.3 Containers, orchestration, and cloud-native
- 8.4 Platform engineering and developer experience
- 8.5 Test and process automation
- 8.6 Release management and progressive delivery
- 8.7 Build systems and artifact management
Part 9: Operations, Reliability, and Observability¶
- 9.0 Introduction
- 9.1 Site reliability engineering
- 9.2 Observability and telemetry
- 9.3 Incident management
- 9.4 Cost, sustainability, and green software
- 9.5 Disaster recovery and business continuity
- 9.6 Chaos engineering and resilience testing
- 9.7 Capacity planning and demand forecasting
- 9.8 On-call and operational readiness
Part 10: Project/Product/Programme Management¶
- 10.0 Introduction
- 10.1 Portfolio and programme management
- 10.2 Risk, audit, and assurance
- 10.3 Procurement, open source, and licensing
- 10.4 Sustaining large and long-lived systems
- 10.5 Ethics, accountability, and public interest
- 10.6 Project management
- 10.7 Agile
- 10.8 Maturity models
- 10.9 Innovation partnership
- 10.10 Software engineering economics
- 10.11 Digital sovereignty
- 10.12 Open source vs closed source
- 10.13 Interorganization collaboration
- 10.14 Product management and discovery
- 10.15 Estimation and forecasting
- 10.16 Stakeholder management and communication
- 10.17 Organizational change management
- 10.18 Open source program office (OSPO) and upstream contribution
Part 11: Flow: Discovery and Delivery Pipelines¶
- 11.0 Introduction
- 11.1 The discovery pipeline
- 11.2 The delivery pipeline
- 11.3 Queueing theory
- 11.4 Objectives and key results (OKRs)
- 11.5 Key performance indicators (KPIs)
- 11.6 Value stream mapping and cost of delay
Part 12: Appendices¶
- 12.0 Appendices
- 12.1 Glossary
- 12.2 Checklists
- 12.3 Templates
- 12.4 Maturity self-assessment
- 12.5 References
- 12.6 Adoption roadmap
- 12.7 Index
Cross-cutting themes¶
Security, privacy, and accessibility appear in every part, not once. Automation and "everything as code" underpin repeatability and audit. Measurement and feedback loops turn practices into learning systems. Documentation and knowledge continuity protect against turnover and scale. Regulatory and government constraints are treated as design inputs, not afterthoughts.
Beyond the chapters¶
- Examples: small, concrete examples of the book's ideas in use.
- About this project: how the book is built, checked, and published.
- Contributing: how to help, and the house style rules.