BMAD-METHOD/bmad-agent/quality-tasks/technical-decision-validati...

176 lines
5.6 KiB
Markdown

# Technical Decision Validation Task
## Purpose
Systematically validate technical decisions through rigorous analysis, evidence-based evaluation, and comprehensive impact assessment. Ensure all technical choices align with quality standards and long-term sustainability.
## Integration with Memory System
- **What patterns to search for**: Technology adoption outcomes, similar technical decisions, performance benchmarks, maintenance burden patterns
- **What outcomes to track**: Decision stability over time, performance metrics achievement, maintenance costs, team satisfaction
- **What learnings to capture**: Effective evaluation criteria, decision reversal patterns, technology maturity insights, integration complexity lessons
## Technical Decision Categories
### Technology Stack Decisions
- [ ] **Framework Selection**: Primary frameworks and libraries
- [ ] **Database Choice**: Data storage solutions and patterns
- [ ] **Infrastructure Platform**: Cloud providers, deployment targets
- [ ] **Tool Selection**: Development tools, CI/CD, monitoring
- [ ] **Service Architecture**: Monolith vs microservices vs serverless
### Implementation Approach Decisions
- [ ] **Design Patterns**: Architectural and code patterns
- [ ] **API Design**: REST vs GraphQL vs gRPC
- [ ] **State Management**: Client and server state strategies
- [ ] **Security Approach**: Authentication, authorization, encryption
- [ ] **Testing Strategy**: Unit, integration, E2E approaches
## Validation Process
### Step 1: Decision Context Analysis
```python
def analyze_decision_context(decision):
context_factors = {
"requirements": extract_driving_requirements(decision),
"constraints": identify_constraints(decision),
"stakeholders": list_affected_stakeholders(decision),
"timeline": assess_timeline_impact(decision),
"budget": evaluate_cost_implications(decision)
}
return context_factors
```
### Step 2: Evidence Gathering
- [ ] **Benchmark Data**: Performance comparisons, load testing results
- [ ] **Case Studies**: Similar implementations, success/failure stories
- [ ] **Expert Opinions**: Team experience, community consensus
- [ ] **Proof of Concepts**: Hands-on validation results
- [ ] **Cost Analysis**: License fees, operational costs, training needs
### Step 3: Trade-off Analysis
| Factor | Option A | Option B | Option C | Weight |
|--------|----------|----------|----------|---------|
| Performance | {score} | {score} | {score} | {weight} |
| Scalability | {score} | {score} | {score} | {weight} |
| Maintainability | {score} | {score} | {score} | {weight} |
| Team Experience | {score} | {score} | {score} | {weight} |
| Cost | {score} | {score} | {score} | {weight} |
| Risk | {score} | {score} | {score} | {weight} |
### Step 4: Risk Assessment
```markdown
## Technical Risk Analysis
### Option: {technology_choice}
**Risks Identified**:
1. **{Risk Name}**: {description}
- Probability: {high/medium/low}
- Impact: {high/medium/low}
- Mitigation: {strategy}
**Risk Score**: {calculated_risk_score}
```
## Quality Gates
### Pre-Decision Gate
- [ ] Problem clearly defined
- [ ] Success criteria established
- [ ] Constraints documented
- [ ] Stakeholders identified
### Evaluation Gate
- [ ] Minimum 3 options evaluated
- [ ] Quantitative comparison completed
- [ ] POC results documented
- [ ] Team capability assessed
### Decision Gate
- [ ] Trade-off analysis reviewed
- [ ] Risk assessment completed
- [ ] Reversibility plan defined
- [ ] Success metrics established
## Success Criteria
- Decision backed by quantitative evidence
- Trade-offs explicitly documented
- Risks identified with mitigation strategies
- Team consensus achieved
- Reversibility strategy defined
- Confidence level >90%
## Memory Integration
```python
# Technical decision memory structure
tech_decision_memory = {
"type": "technical_decision",
"decision": {
"category": decision_category,
"choice": selected_option,
"alternatives": rejected_options
},
"evaluation": {
"criteria": evaluation_criteria,
"scores": comparison_scores,
"evidence": supporting_evidence
},
"rationale": {
"driving_factors": key_decision_drivers,
"trade_offs": accepted_trade_offs,
"risks": identified_risks
},
"outcome": {
"implementation_time": actual_time,
"performance_met": performance_results,
"team_satisfaction": satisfaction_score,
"stability": change_frequency
},
"lessons": key_learnings,
"confidence": decision_confidence
}
```
## Output Template
```markdown
# Technical Decision Validation: {Decision Title}
**Date**: {timestamp}
**Decision Maker**: {name/team}
**Category**: {technology/implementation/architecture}
**Confidence**: {percentage}%
## Decision Summary
**Selected**: {chosen_option}
**Rationale**: {brief_rationale}
## Evaluation Results
### Quantitative Analysis
{comparison_table}
### Evidence Summary
- **Benchmarks**: {key_performance_data}
- **Case Studies**: {relevant_examples}
- **POC Results**: {validation_outcomes}
### Trade-off Analysis
**Accepted Trade-offs**:
- {trade_off_1}: {justification}
- {trade_off_2}: {justification}
## Risk Mitigation Plan
{risk_mitigation_strategies}
## Success Metrics
- {metric_1}: {target_value}
- {metric_2}: {target_value}
## Reversibility Strategy
{how_to_reverse_if_needed}
## Recommendation
{final_recommendation_with_confidence}
```
## Brotherhood Collaboration
- Technical review with senior developers
- Architecture alignment with architect team
- Operational review with DevOps team
- Security review with security team