Practice catalogRequirementsDefine the problemRequirements ElicitationUse CasesImpact MappingEventStormingClarify behaviorBehavior-Driven DevelopmentAcceptance Test-Driven DevelopmentSpecification by ExampleExample MappingChoose the scopeMoSCoW PrioritizationUser Story MappingStory SplittingDesignModel and boundariesDomain-Driven DesignAPI-first designHexagonal Architecture / Ports and AdaptersFunctional Core, Imperative ShellModel-Driven DevelopmentQualities and decisionsQuality Attribute Workshop (QAW)Architecture Tradeoff Analysis Method (ATAM)Design Review / Request for CommentsDesign by ContractArchitecture Decision RecordsArchitecture Fitness FunctionsImplementationEvolving the solutionTest-Driven DevelopmentRefactoringYou Aren’t Gonna Need ItTechnical spikePrototypingWalking SkeletonFinding causes of defectsSystematic DebuggingMinimal Reproducible ExampleDelta DebuggingRegression Bisection / git bisectVerificationLevels and scopeUnit TestingIntegration TestingEnd-to-end TestingCode and model analysisStatic AnalysisStatic Type CheckingModel CheckingScenarios and dataEquivalence PartitioningBoundary Value AnalysisDecision Table TestingPairwise / Combinatorial TestingProperty-based TestingModel-based TestingMetamorphic TestingFuzz TestingDifferential TestingObjectives and strategyConsumer-driven Contract TestingPerformance and Load TestingUsability TestingAccessibility TestingExploratory TestingRisk-based TestingMutation TestingIntegrationCode and dependenciesContinuous IntegrationTrunk-based DevelopmentSoftware Configuration ManagementDependency ManagementBuildReproducible BuildsHermetic BuildsDeliveryRelease preparationContinuous DeliveryContinuous DeploymentDeployment AutomationDatabase Change Management / MigrationsRelease controlFeature Flags / Feature TogglesCanary ReleaseBlue–Green DeploymentRollback and Rollback SafetyOperationsObservation and objectivesObservabilityService Level ObjectivesError BudgetsActionable AlertingCapacity PlanningIncidents and recoveryIncident Response / Incident ManagementRunbooks / Operational PlaybooksBackup and Restore DrillsBlameless PostmortemsChaos EngineeringEnvironmentInfrastructure as CodeMethods and frameworksExtreme ProgrammingScrumKanban MethodLean Software DevelopmentFeature-Driven DevelopmentDevOpsSite Reliability EngineeringLifecycle modelsIterative DevelopmentIncremental DevelopmentSpiral Development ModelV-modelWaterfall ModelCollaboration and flowPair ProgrammingEnsemble / Mob ProgrammingCode ReviewCollective Code OwnershipWork in Progress LimitsWorking in Small BatchesRetrospectivesChanging an existing systemCharacterization TestingGolden Master / Approval TestingPreparatory RefactoringStrangler FigBranch by AbstractionParallel Change / Expand–ContractChange Impact AnalysisSecurityThreat ModelingSecurity Architecture ReviewSecure Coding PracticesStatic Application Security TestingDynamic Application Security TestingSoftware Composition AnalysisSecret ScanningDocumentation, risks, and agreementsRequirements TraceabilityDocumentation as CodeLiving DocumentationDefinition of DoneSoftware Risk ManagementBackward CompatibilitySemantic Versioning