# Practice catalog

Stages organize practices; they do not prescribe a mandatory development sequence.

- [en](/catalog/en.md)
- [ru](/catalog/ru.md)
- [zh](/catalog/zh.md)

- **Structure and variants**: Part of an approach, a variant, or an extension
- **Use and support**: Uses, supports, or provides a foundation, data, or tools
- **Verification and assessment**: Checks properties, assesses results, or provides measurements
- **Combination**: Can be combined, complements, or is often used together
- **Comparison and related ideas**: Overlaps, shares ideas, or represents a related approach

[HTML](https://dpm.cnonim.name/catalog/)

## Requirements

### Define the problem

- [Requirements Elicitation](/practices/elicitation/en.md)
- [Use Cases](/practices/usecases/en.md)
- [Impact Mapping](/practices/impact/en.md)
- [EventStorming](/practices/events/en.md)

### Clarify behavior

- [Behavior-Driven Development](/practices/bdd/en.md)
- [Acceptance Test-Driven Development](/practices/atdd/en.md)
- [Specification by Example](/practices/sbe/en.md)
- [Example Mapping](/practices/examples/en.md)

### Choose the scope

- [MoSCoW Prioritization](/practices/moscow/en.md)
- [User Story Mapping](/practices/stories/en.md)
- [Story Splitting](/practices/splitting/en.md)

## Design

### Model and boundaries

- [Domain-Driven Design](/practices/ddd/en.md)
- [API-first design](/practices/api/en.md)
- [Hexagonal Architecture / Ports and Adapters](/practices/hex/en.md)
- [Functional Core, Imperative Shell](/practices/core/en.md)
- [Model-Driven Development](/practices/mdd/en.md)

### Qualities and decisions

- [Quality Attribute Workshop (QAW)](/practices/qaw/en.md)
- [Architecture Tradeoff Analysis Method (ATAM)](/practices/atam/en.md)
- [Design Review / Request for Comments](/practices/designreview/en.md)
- [Design by Contract](/practices/dbc/en.md)
- [Architecture Decision Records](/practices/adr/en.md)
- [Architecture Fitness Functions](/practices/fitness/en.md)

## Implementation

### Evolving the solution

- [Test-Driven Development](/practices/tdd/en.md)
- [Refactoring](/practices/refactor/en.md)
- [You Aren’t Gonna Need It](/practices/yagni/en.md)
- [Technical spike](/practices/spike/en.md)
- [Prototyping](/practices/prototype/en.md)
- [Walking Skeleton](/practices/skeleton/en.md)

### Finding causes of defects

- [Systematic Debugging](/practices/debugging/en.md)
- [Minimal Reproducible Example](/practices/mre/en.md)
- [Delta Debugging](/practices/delta/en.md)
- [Regression Bisection / git bisect](/practices/bisect/en.md)

## Verification

### Levels and scope

- [Unit Testing](/practices/unit/en.md)
- [Integration Testing](/practices/integrationtest/en.md)
- [End-to-end Testing](/practices/e2e/en.md)

### Code and model analysis

- [Static Analysis](/practices/static/en.md)
- [Static Type Checking](/practices/types/en.md)
- [Model Checking](/practices/checking/en.md)

### Scenarios and data

- [Equivalence Partitioning](/practices/equivalence/en.md)
- [Boundary Value Analysis](/practices/boundary/en.md)
- [Decision Table Testing](/practices/decisiontable/en.md)
- [Pairwise / Combinatorial Testing](/practices/pairwise/en.md)
- [Property-based Testing](/practices/property/en.md)
- [Model-based Testing](/practices/model/en.md)
- [Metamorphic Testing](/practices/metamorphic/en.md)
- [Fuzz Testing](/practices/fuzz/en.md)
- [Differential Testing](/practices/differential/en.md)

### Objectives and strategy

- [Consumer-driven Contract Testing](/practices/contract/en.md)
- [Performance and Load Testing](/practices/performance/en.md)
- [Usability Testing](/practices/usability/en.md)
- [Accessibility Testing](/practices/accessibility/en.md)
- [Exploratory Testing](/practices/exploratory/en.md)
- [Risk-based Testing](/practices/riskbased/en.md)
- [Mutation Testing](/practices/mutation/en.md)

## Integration

### Code and dependencies

- [Continuous Integration](/practices/ci/en.md)
- [Trunk-based Development](/practices/trunk/en.md)
- [Software Configuration Management](/practices/configuration/en.md)
- [Dependency Management](/practices/dependencies/en.md)

### Build

- [Reproducible Builds](/practices/build/en.md)
- [Hermetic Builds](/practices/hermetic/en.md)

## Delivery

### Release preparation

- [Continuous Delivery](/practices/delivery/en.md)
- [Continuous Deployment](/practices/deployment/en.md)
- [Deployment Automation](/practices/deployauto/en.md)
- [Database Change Management / Migrations](/practices/dbmigration/en.md)

### Release control

- [Feature Flags / Feature Toggles](/practices/flags/en.md)
- [Canary Release](/practices/canary/en.md)
- [Blue–Green Deployment](/practices/bluegreen/en.md)
- [Rollback and Rollback Safety](/practices/rollback/en.md)

## Operations

### Observation and objectives

- [Observability](/practices/observability/en.md)
- [Service Level Objectives](/practices/slo/en.md)
- [Error Budgets](/practices/budget/en.md)
- [Actionable Alerting](/practices/alerting/en.md)
- [Capacity Planning](/practices/capacity/en.md)

### Incidents and recovery

- [Incident Response / Incident Management](/practices/incident/en.md)
- [Runbooks / Operational Playbooks](/practices/runbooks/en.md)
- [Backup and Restore Drills](/practices/restore/en.md)
- [Blameless Postmortems](/practices/postmortem/en.md)
- [Chaos Engineering](/practices/chaos/en.md)

### Environment

- [Infrastructure as Code](/practices/iac/en.md)

## Methods and frameworks

- [Extreme Programming](/practices/xp/en.md)
- [Scrum](/practices/scrum/en.md)
- [Kanban Method](/practices/kanban/en.md)
- [Lean Software Development](/practices/lean/en.md)
- [Feature-Driven Development](/practices/fdd/en.md)
- [DevOps](/practices/devops/en.md)
- [Site Reliability Engineering](/practices/sre/en.md)

## Lifecycle models

- [Iterative Development](/practices/iterative/en.md)
- [Incremental Development](/practices/incremental/en.md)
- [Spiral Development Model](/practices/spiral/en.md)
- [V-model](/practices/vmodel/en.md)
- [Waterfall Model](/practices/waterfall/en.md)

## Collaboration and flow

- [Pair Programming](/practices/pair/en.md)
- [Ensemble / Mob Programming](/practices/ensemble/en.md)
- [Code Review](/practices/review/en.md)
- [Collective Code Ownership](/practices/ownership/en.md)
- [Work in Progress Limits](/practices/wip/en.md)
- [Working in Small Batches](/practices/batches/en.md)
- [Retrospectives](/practices/retro/en.md)

## Changing an existing system

- [Characterization Testing](/practices/characterization/en.md)
- [Golden Master / Approval Testing](/practices/golden/en.md)
- [Preparatory Refactoring](/practices/preparatory/en.md)
- [Strangler Fig](/practices/strangler/en.md)
- [Branch by Abstraction](/practices/abstraction/en.md)
- [Parallel Change / Expand–Contract](/practices/expand/en.md)
- [Change Impact Analysis](/practices/changeimpact/en.md)

## Security

- [Threat Modeling](/practices/threat/en.md)
- [Security Architecture Review](/practices/securityreview/en.md)
- [Secure Coding Practices](/practices/securecoding/en.md)
- [Static Application Security Testing](/practices/sast/en.md)
- [Dynamic Application Security Testing](/practices/dast/en.md)
- [Software Composition Analysis](/practices/sca/en.md)
- [Secret Scanning](/practices/secrets/en.md)

## Documentation, risks, and agreements

- [Requirements Traceability](/practices/traceability/en.md)
- [Documentation as Code](/practices/docs/en.md)
- [Living Documentation](/practices/living/en.md)
- [Definition of Done](/practices/done/en.md)
- [Software Risk Management](/practices/risk/en.md)
- [Backward Compatibility](/practices/compatibility/en.md)
- [Semantic Versioning](/practices/semver/en.md)

