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
- Specification: outline, principles, backlog, and checklists
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
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
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
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
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
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
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
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
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
Part 10: Project/Product/Program Management¶
- 10.0 Introduction
- 10.1 Portfolio and program 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
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, key results, and key performance indicators
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.