Skip to main content
Software Engineering Guide
Home
Start here
Contents
Examples
Contributing
Project
GitHub
Site links
Home
Start here
Contents
Examples
Contributing
Project
GitHub
Search
⏎
Theme
Abyss
Acid
Adobe Spectrum
Aqua
Autumn
Black
Bumblebee
Business
Caramellatte
Cmyk
Coffee
Corporate
Cupcake
Cyberpunk
Dark
Dim
Dracula
Emerald
Fantasy
Forest
Garden
Halloween
Lemonade
Light
Lofi
Luxury
Mozilla Protocol
Night
Nord
Pastel
Retro
Silk
Sunset
Synthwave
Valentine
Winter
Wireframe
United Kingdom Government Digital Service
United Kingdom National Health Service England For Patients
United Kingdom National Health Service England For Practitioners
United Kingdom National Health Service Scotland For Patients
United Kingdom National Health Service Scotland For Practitioners
United Kingdom National Health Service Wales For Patients
United Kingdom National Health Service Wales For Practitioners
United States Web Design System
Language
العربية
বাংলা
Cymraeg
cy-gb
de-001
Deutsch
English
English - Great Britain
English - United States
Español
Français
हिन्दी
hi-in
Bahasa Indonesia
Íslenska
Íslenska
日本語
日本語
한국어
한국어
Nederlands
Nederlands
Português
Svenska
Svenska
中文
中文 - 简体
Text size
Largest
Larger
Large
Normal
Small
Smaller
Smallest
Share
Email
Copy link
1
People
1.0
Introduction to Part 1: People
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
2
Software Programming
2.0
Introduction to Part 2: Software Programming
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
3
Systems
3.0
Introduction to Part 3: Systems
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
4
Security
4.0
Introduction to Part 4: Security
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
5
UI/UX Design
5.0
Introduction to Part 5: UI/UX Design
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
6
Artificial Intelligence
6.0
Introduction to Part 6: Artificial Intelligence
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
7
Data, Analytics, and Insight
7.0
Introduction to Part 7: Data, Analytics, and Insight
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 modeling and the semantic layer
7.8
Data quality and observability
7.9
Master data and reference data management
8
Automation
8.0
Introduction to Part 8: Automation
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
9
Operations, Reliability, and Observability
9.0
Introduction to Part 9: Operations, Reliability, and Observability
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
10
Project/Product/Programme Management
10.0
Introduction to Part 10: Project/Product/Program Management
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
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
11
Flow: Discovery and Delivery Pipelines
11.0
Introduction to Part 11: Flow: Discovery and Delivery Pipelines
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
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
Front matter
Start here: what the guide is, who it is for, and the full contents.
Introduction
Table of contents
What is software engineering?