Engineering
Software engineering methodologies, professional practices, and the discipline of building software systematically.
Requirements
- Requirements Engineering — Eliciting, documenting, and validating software requirements
Quality
- Software Testing — Verification and validation strategies
- Code Complexity — Measuring and managing code complexity
Project Management
- Estimation — Techniques for estimating effort and duration
- Technical Debt Management — Tracking and paying down technical debt
Professional Practice
- Software Maintenance — Long-term care and evolution of software systems
- Incident Response — Responding to production incidents
- Dependency Management — Managing third-party dependencies
- API Versioning — Evolving APIs without breaking consumers
- System Design — Designing software systems at scale
Related Resources
- TDD Workflow - Test-driven development approach
- Systematic Debugging - Debugging methodology
- Granular Planning - Planning approach
- Testing Practices - Applied testing patterns
Sources
Primary references for this domain:
- SWEBOK - IEEE Software Engineering Body of Knowledge
- The Mythical Man-Month - Frederick Brooks
- Software Engineering - Ian Sommerville
- Agile Estimating and Planning - Mike Cohn