evaluation
Systematic evaluation and comparison of technologies, tools, frameworks, and approaches using weighted criteria and scoring matrices. Use when choosing between multiple technologies, vendor/tool selection, framework comparison, library selection, or architecture pattern selection.
When & Why to Use This Skill
This Claude skill provides a rigorous, data-driven framework for evaluating and comparing technologies, tools, and architectural patterns. By utilizing weighted scoring matrices and systematic trade-off analysis, it transforms subjective opinions into defensible, documented technical decisions, ensuring that software architecture choices align with both business goals and technical constraints.
Use Cases
- Tech Stack Selection: Comparing frontend or backend frameworks (e.g., React vs. Vue, Django vs. Fastify) based on team expertise, performance, and ecosystem maturity.
- Database & Infrastructure Evaluation: Choosing between SQL and NoSQL databases or selecting cloud providers by weighing ACID compliance, scalability, and total cost of ownership.
- Vendor & Tool Comparison: Systematically vetting third-party SaaS vendors, CI/CD platforms, or monitoring tools against specific operational requirements.
- Architecture Pattern Decision: Evaluating the trade-offs between Microservices vs. Monoliths or REST vs. GraphQL to determine the best fit for a project's scale and complexity.
- Proof of Concept (PoC) Validation: Structuring hands-on testing phases to validate technical assumptions and measure actual performance before full-scale implementation.
| name | evaluation |
|---|---|
| description | Systematic evaluation and comparison of technologies, tools, frameworks, and approaches using weighted criteria and scoring matrices. Use when choosing between multiple technologies, vendor/tool selection, framework comparison, library selection, or architecture pattern selection. |
Evaluation Skill
Core Principle
Evaluate with criteria, decide with data. Document the trade-offs.
Good evaluation:
- Starts with clear criteria — Define what matters before evaluating
- Uses consistent scoring — Apply the same standards to all options
- Weighs criteria by importance — Not all factors are equal
- Documents trade-offs — Every choice has costs and benefits
- Leads to defensible decisions — Data-driven, not opinion-driven
When to Use This Skill
Use this skill when:
- Choosing between multiple technologies — React vs Vue vs Angular
- Vendor/tool selection — Cloud providers, monitoring tools, CI/CD platforms
- Framework comparison — Express vs Fastify, Django vs Flask
- Library selection — State management, testing frameworks, HTTP clients
- Architecture pattern selection — Microservices vs Monolith, REST vs GraphQL
Evaluation Framework
┌────────────────────────────────────────────────────┐
│ EVALUATION PROCESS │
└────────────────────────────────────────────────────┘
1. Define Evaluation Criteria
↓
2. Assign Weights to Criteria
↓
3. Research Each Option
↓
4. Score Against Criteria
↓
5. Hands-On Testing (PoCs)
↓
6. Calculate Weighted Scores
↓
7. Document Trade-offs
↓
8. Make Recommendation
Step 1: Define Evaluation Criteria
Categories of Criteria
Technical Criteria
Features:
- Does it have required functionality?
- Are critical features mature and stable?
- Does it support our use cases?
- Are there deal-breaker missing features?
Performance:
- Throughput (requests/sec, transactions/sec)
- Latency (response times, p95, p99)
- Resource usage (CPU, memory, disk)
- Benchmark results for our workload
Scalability:
- Horizontal scaling capabilities
- Vertical scaling limits
- Load handling characteristics
- Data volume limits
Security:
- Vulnerability history
- Security update frequency
- Authentication/authorization support
- Compliance certifications (SOC2, ISO, HIPAA)
- Data encryption (at rest, in transit)
Operational Criteria
Reliability:
- Uptime history (SLA guarantees)
- Error handling capabilities
- Fault tolerance features
- Disaster recovery support
Monitoring:
- Built-in observability
- Metrics export (Prometheus, etc.)
- Logging capabilities
- Tracing support (OpenTelemetry)
Maintenance:
- Update frequency and process
- Breaking change policy
- Backward compatibility
- Upgrade complexity
Team Criteria
Learning Curve:
- Time to productivity for new developers
- Similarity to existing tools
- Conceptual complexity
- Available training materials
Documentation:
- Quality of official docs
- API reference completeness
- Tutorial and guide availability
- Example code quality
Community:
- Community size and activity
- GitHub stars/forks/activity
- Stack Overflow questions
- Forum/Discord/Slack activity
- Response time for issues
Business Criteria
Cost:
- Licensing fees (per user, per server, per transaction)
- Infrastructure costs
- Training costs
- Migration costs
- Opportunity costs
Licensing:
- License type (MIT, Apache, GPL, proprietary)
- Compatibility with our license
- Commercial use restrictions
- Attribution requirements
Vendor Lock-in:
- Portability to alternatives
- Data export capabilities
- Proprietary features vs standards
- Switching costs
Support:
- Commercial support availability
- Support response times
- Support quality
- Community vs paid support
Strategic Criteria
Ecosystem:
- Integration with other tools
- Plugin/extension marketplace
- Third-party tool support
- Industry adoption
Roadmap:
- Future feature plans
- Product vision alignment
- Investment in development
- Feature request process
Adoption Trends:
- Growing vs declining usage
- Industry momentum
- Job market demand
- Analyst recommendations
Step 2: Assign Weights
Not all criteria are equally important. Weight them based on your context.
Weighting Scale
| Weight | Priority | Meaning |
|---|---|---|
| HIGH | Critical | Deal-breaker if inadequate |
| MEDIUM | Important | Significant impact on decision |
| LOW | Nice-to-have | Minor impact on decision |
Example: Choosing a Database
| Criterion | Weight | Rationale |
|---|---|---|
| ACID guarantees | HIGH | Financial data requires consistency |
| Query performance | HIGH | Core to user experience |
| Horizontal scaling | MEDIUM | Will need in 12-18 months |
| Document flexibility | MEDIUM | Schema will evolve |
| Managed service available | MEDIUM | Small ops team |
| SQL compatibility | LOW | Team can learn new query language |
| Graph query support | LOW | Not a current requirement |
Step 3: Create Scoring Matrix
Scoring Matrix Template
| Criterion | Weight | Option A | Option B | Option C |
|---|---|---|---|---|
| Category 1 | ||||
| Criterion 1.1 | HIGH | 8 | 6 | 9 |
| Criterion 1.2 | MEDIUM | 7 | 9 | 5 |
| Category 2 | ||||
| Criterion 2.1 | HIGH | 9 | 7 | 8 |
| Criterion 2.2 | LOW | 6 | 8 | 7 |
| Weighted Score | X.X | X.X | X.X |
Scoring Scale
0-10 Scoring:
- 9-10 — Excellent, exceeds requirements
- 7-8 — Good, meets requirements well
- 5-6 — Acceptable, meets minimum requirements
- 3-4 — Poor, below requirements
- 0-2 — Inadequate, deal-breaker
Visual Indicators:
- ✅ Excellent (8-10)
- ⚠️ Acceptable (5-7)
- ❌ Poor (0-4)
Step 4: Research Each Option
Research Sources
Trusted:
- ✅ Official documentation
- ✅ GitHub repository (code, issues, PRs)
- ✅ Release notes and changelog
- ✅ Production case studies
- ✅ Performance benchmarks (reputable sources)
- ✅ Security advisories and CVE database
- ✅ Team experience and feedback
Skeptical:
- ⚠️ Vendor marketing materials
- ⚠️ Paid comparison sites
- ⚠️ Outdated blog posts (>2 years old)
- ⚠️ Hype-driven articles
- ⚠️ Benchmarks by vendors
Technology Evaluation Checklist
For each option, evaluate:
Documentation Quality:
- Getting started guide exists and works
- API reference is complete
- Examples cover common use cases
- Troubleshooting guide available
- Migration guides (if applicable)
Community Health:
- Active maintainers (commits in last month)
- Issues are being addressed (response rate)
- Pull requests are being reviewed
- Community guidelines exist
- Code of conduct present
GitHub Activity (if open source):
- Stars: >1000 for libraries, >5000 for frameworks
- Recent commits (weekly activity)
- Issue response time (<7 days for critical)
- PR merge rate (not stagnant)
- Number of contributors (>10 for critical tools)
Production Usage:
- Companies using it in production
- Scale of production deployments
- Case studies available
- Known production issues
Integration Complexity:
- Works with our existing stack
- Clear integration examples
- Migration path from current solution
- Breaking changes in recent versions
Performance Characteristics:
- Benchmark data available
- Performance under our expected load
- Resource requirements documented
- Performance tuning guidance
Security:
- Security policy documented
- CVE history reviewed
- Security update frequency
- Authentication/authorization support
- Encryption support
License:
- License type identified
- Compatible with our project
- Commercial use allowed
- Attribution requirements clear
Cost:
- Pricing model clear
- Hidden costs identified (support, training, infrastructure)
- Total cost of ownership calculated
- Budget impact assessed
Step 5: Hands-On Testing
Build Proof of Concepts (PoCs)
For finalists (typically 2-3 options), build focused PoCs.
PoC Scope:
- Time-boxed (1-3 days per option)
- Tests critical features only
- Validates key assumptions
- Measures actual performance
- Assesses developer experience
What to Test:
- Integration with critical systems
- Performance with realistic data
- Learning curve (time to hello world)
- Key features that matter most
- Migration complexity (if replacing existing tool)
PoC Documentation:
# PoC: [Option Name]
## Objective
[What we're validating]
## Setup Time
[How long to get running]
## Key Features Tested
- [ ] Feature 1: [Result]
- [ ] Feature 2: [Result]
- [ ] Feature 3: [Result]
## Performance Results
- Throughput: [X requests/sec]
- Latency p95: [X ms]
- Resource usage: [CPU/Memory]
## Developer Experience
- Ease of use: [Rating 1-10]
- Documentation quality: [Rating 1-10]
- Time to productivity: [X hours/days]
## Issues Encountered
- [Issue 1 and resolution]
- [Issue 2 and resolution]
## Recommendation
[Go/No-go with rationale]
See the proof-of-concept skill for detailed PoC guidance.
Step 6: Document Trade-offs
Every choice involves trade-offs. Document them explicitly.
Trade-off Template
Option A vs Option B:
| Dimension | Option A | Option B | Winner |
|---|---|---|---|
| Performance | 100k req/sec | 50k req/sec | A |
| Learning curve | 2 weeks | 2 days | B |
| Community size | 10k stars | 100k stars | B |
| Flexibility | High | Low | A |
| Maintenance burden | High | Low | B |
Analysis:
- Option A is 2x faster but requires 10x more learning time
- Option B has 10x larger community but less flexibility
- Trade-off: Do we optimize for performance or team velocity?
Complete Evaluation Example
Scenario: Frontend Framework Selection
Context:
- Team: 5 developers (React experience)
- Project: New e-commerce platform
- Requirements: High performance, SEO support, large ecosystem
- Timeline: 6 months to MVP
Evaluation Criteria with Weights
| Criterion | Weight | Rationale |
|---|---|---|
| Technical | ||
| Component model | HIGH | Core to development experience |
| Performance | HIGH | Critical for e-commerce |
| SSR/SSG support | HIGH | Required for SEO |
| TypeScript support | MEDIUM | Team prefers strong typing |
| Mobile support | MEDIUM | Future React Native consideration |
| Operational | ||
| Bundle size | MEDIUM | Affects page load time |
| Build tooling | LOW | All options have good tooling |
| Team | ||
| Learning curve | HIGH | Team has React experience |
| Documentation | HIGH | Need to onboard new devs |
| Community | HIGH | Need plugins and support |
| Business | ||
| Ecosystem | HIGH | Need rich plugin ecosystem |
| Job market | MEDIUM | Hiring considerations |
| Long-term viability | HIGH | 5+ year commitment |
Scoring Matrix
| Criterion | Weight | React | Vue | Svelte | Angular |
|---|---|---|---|---|---|
| Technical | |||||
| Component model | HIGH | ✅ 9 | ✅ 9 | ✅ 10 | ⚠️ 7 |
| Performance | HIGH | ✅ 8 | ✅ 8 | ✅ 10 | ⚠️ 7 |
| SSR/SSG support | HIGH | ✅ 10 | ✅ 9 | ✅ 8 | ✅ 9 |
| TypeScript | MEDIUM | ✅ 9 | ⚠️ 7 | ✅ 9 | ✅ 10 |
| Mobile support | MEDIUM | ✅ 10 | ⚠️ 6 | ❌ 3 | ⚠️ 7 |
| Operational | |||||
| Bundle size | MEDIUM | ⚠️ 6 | ✅ 8 | ✅ 10 | ❌ 4 |
| Build tooling | LOW | ✅ 9 | ✅ 8 | ✅ 8 | ✅ 9 |
| Team | |||||
| Learning curve | HIGH | ✅ 10 | ✅ 8 | ⚠️ 7 | ⚠️ 6 |
| Documentation | HIGH | ✅ 10 | ✅ 9 | ⚠️ 7 | ✅ 9 |
| Community | HIGH | ✅ 10 | ✅ 8 | ⚠️ 6 | ✅ 9 |
| Business | |||||
| Ecosystem | HIGH | ✅ 10 | ✅ 8 | ⚠️ 5 | ✅ 9 |
| Job market | MEDIUM | ✅ 10 | ⚠️ 7 | ⚠️ 5 | ✅ 8 |
| Long-term | HIGH | ✅ 10 | ✅ 8 | ⚠️ 6 | ✅ 9 |
| Weighted Score | 9.2 | 7.9 | 7.0 | 7.8 |
Legend:
- ✅ Excellent (8-10)
- ⚠️ Acceptable (5-7)
- ❌ Poor (0-4)
Detailed Analysis
React (Score: 9.2):
Strengths:
- Team already knows React (minimal learning curve)
- Largest ecosystem (components, tools, libraries)
- Best SSR/SSG story (Next.js is industry standard)
- React Native path for mobile app
- Massive community and job market
- Proven long-term viability
Weaknesses:
- Larger bundle size than Vue/Svelte
- Performance slightly behind Svelte
- More boilerplate than Svelte
PoC Findings:
- Setup time: 30 minutes with Create React App
- First component: 1 hour
- Full CRUD page: 4 hours
- Next.js SSG working out of the box
- Found excellent UI library (shadcn/ui)
Vue (Score: 7.9):
Strengths:
- Excellent documentation
- Great developer experience
- Good SSR support (Nuxt.js)
- Smaller bundle size than React
- Strong community
Weaknesses:
- Team has no Vue experience
- Smaller ecosystem than React
- TypeScript support improving but not as mature
- React Native vs Vue Native comparison
PoC Findings:
- Setup time: 45 minutes
- Learning curve steeper than expected for React developers
- Composition API similar to React hooks
- Found most needed plugins
Svelte (Score: 7.0):
Strengths:
- Best performance (compiles to vanilla JS)
- Smallest bundle size
- Elegant syntax, minimal boilerplate
- Growing momentum
Weaknesses:
- Smallest ecosystem
- Team has no experience
- SSR story (SvelteKit) less mature than Next.js
- No mobile story
- Smaller job market
PoC Findings:
- Setup time: 1 hour
- Syntax very different from React
- Impressed by performance
- Harder to find UI components
- SvelteKit less documented than Next.js
Angular (Score: 7.8):
Strengths:
- Complete framework (batteries included)
- Enterprise backing (Google)
- Excellent TypeScript support
- Strong patterns and structure
Weaknesses:
- Steep learning curve (RxJS, dependency injection)
- Largest bundle size
- Team has no Angular experience
- Less flexibility than React/Vue
PoC Not Pursued:
- Eliminated after research phase
- Learning curve too steep for timeline
- Team preference for React-like model
Trade-offs Summary
React vs Vue:
- React: Better ecosystem, team knowledge, mobile path
- Vue: Slightly better performance, smaller bundle
- Winner: React (team velocity and ecosystem outweigh minor performance gains)
React vs Svelte:
- Svelte: Best performance, cleanest code
- React: Mature ecosystem, team knowledge, proven at scale
- Winner: React (maturity and team velocity critical for 6-month timeline)
Recommendation
Recommended: React with Next.js
Rationale:
- Zero learning curve — Team already knows React
- Best ecosystem — Largest selection of components and tools
- Proven SSR/SSG — Next.js is production-ready and well-documented
- Future mobile app — React Native provides clear path
- Hiring advantage — Largest React job market
- Long-term safety — React is here to stay
Risks & Mitigations:
- Risk: Larger bundle size than alternatives
- Mitigation: Use Next.js code splitting, lazy loading, bundle analysis
- Risk: Team could become React-only
- Mitigation: Encourage learning Vue/Svelte for side projects
Implementation Plan:
- Setup Next.js project with TypeScript (Week 1)
- Choose and configure UI library (Week 1)
- Setup testing framework (Week 1-2)
- Build design system (Week 2-3)
- Begin feature development (Week 3+)
Estimated Effort: 1 week setup, team productive immediately
Common Evaluation Scenarios
1. Database Selection
Key Criteria:
- Data model fit (relational, document, graph, time-series)
- ACID vs eventual consistency requirements
- Query patterns and performance
- Horizontal scaling needs
- Managed service availability
- Team expertise
Example Comparison:
- PostgreSQL: ACID, complex queries, good scaling, mature
- MongoDB: Flexible schema, horizontal scaling, eventual consistency
- DynamoDB: Fully managed, massive scale, limited query flexibility
- Cassandra: Write-heavy, linear scaling, eventual consistency
2. Cloud Provider Selection
Key Criteria:
- Service offerings for your use case
- Regional availability and latency
- Pricing model and total cost
- Team expertise and learning curve
- Vendor lock-in concerns
- Compliance certifications
- Support quality
Example Comparison:
- AWS: Most complete offering, most complex, largest ecosystem
- Azure: Best for Microsoft shops, good enterprise features
- GCP: Excellent for data/ML, strong Kubernetes support, competitive pricing
- DigitalOcean: Simplest, lower cost, fewer features
3. Testing Framework
Key Criteria:
- Language/framework support
- Test types supported (unit, integration, e2e)
- Speed of test execution
- Mocking capabilities
- Assertion library quality
- IDE integration
- Learning curve
Example Comparison (JavaScript):
- Jest: Complete solution, React-friendly, good DX
- Vitest: Faster than Jest, Vite integration, modern
- Mocha: Flexible, mature, requires more setup
- Playwright: Best for e2e, multi-browser support
4. CI/CD Platform
Key Criteria:
- Integration with version control
- Pipeline flexibility
- Performance (build speed)
- Cost (minutes, concurrent jobs)
- Self-hosted vs cloud
- Secret management
- Marketplace/plugins
Example Comparison:
- GitHub Actions: Tight GitHub integration, generous free tier
- GitLab CI: All-in-one platform, self-hosted option
- Jenkins: Fully self-hosted, maximum flexibility, maintenance burden
- CircleCI: Fast, good DX, credit-based pricing
Decision Documentation
Link to ADR
For significant decisions, create an Architecture Decision Record (ADR).
See the adr skill for ADR templates and workflow.
ADR Quick Template
# ADR-XXX: [Decision Title]
## Status
Accepted
## Context
[Why we needed to evaluate options]
[Constraints and requirements]
[Timeline and stakeholders]
## Options Considered
1. Option A
2. Option B
3. Option C
## Evaluation
[Link to full evaluation document or scoring matrix]
## Decision
We chose [Option X] because [key reasons].
## Consequences
**Positive:**
- [Benefit 1]
- [Benefit 2]
**Negative:**
- [Trade-off 1] — Mitigated by [mitigation]
- [Trade-off 2] — Accepted because [rationale]
## Follow-up Actions
- [ ] Action 1
- [ ] Action 2
Evaluation Document Template
# Technology Evaluation: [Topic]
**Date:** YYYY-MM-DD
**Author:** [Your name]
**Reviewers:** [Team members who reviewed]
**Status:** [Draft | Under Review | Approved]
---
## Executive Summary
**Decision needed:** [One sentence]
**Recommendation:** [Option X]
**Key reason:** [Primary rationale in one sentence]
---
## Context
**Problem:**
[What problem are we solving?]
**Requirements:**
- [Requirement 1]
- [Requirement 2]
- [Requirement 3]
**Constraints:**
- [Constraint 1: e.g., Budget]
- [Constraint 2: e.g., Timeline]
- [Constraint 3: e.g., Team size]
**Stakeholders:**
- [Stakeholder 1: Interest]
- [Stakeholder 2: Interest]
**Decision deadline:** [Date]
---
## Evaluation Criteria
| Criterion | Weight | Rationale |
|-----------|--------|-----------|
| [Criterion 1] | HIGH | [Why critical] |
| [Criterion 2] | MEDIUM | [Why important] |
| [Criterion 3] | LOW | [Why nice-to-have] |
---
## Options Evaluated
### Option A: [Name]
**Description:** [Brief overview]
**Pros:**
- [Pro 1]
- [Pro 2]
- [Pro 3]
**Cons:**
- [Con 1]
- [Con 2]
- [Con 3]
**Score:** X.X / 10
**PoC findings:** [Link or summary]
---
### Option B: [Name]
[Same structure as Option A]
---
### Option C: [Name]
[Same structure as Option A]
---
## Scoring Matrix
[Include full scoring matrix from evaluation]
---
## Trade-offs Analysis
[Document key trade-offs between top options]
---
## Recommendation
**Recommended:** [Option X]
**Rationale:**
1. [Key reason 1]
2. [Key reason 2]
3. [Key reason 3]
**Risks & Mitigations:**
- **Risk:** [Potential issue]
- **Mitigation:** [How we'll handle it]
- **Risk:** [Another concern]
- **Mitigation:** [Response plan]
---
## Implementation Plan
### Phase 1: Setup (Timeline)
- [ ] Task 1
- [ ] Task 2
### Phase 2: Migration (Timeline)
- [ ] Task 1
- [ ] Task 2
### Phase 3: Validation (Timeline)
- [ ] Task 1
- [ ] Task 2
**Total estimated effort:** [Time]
---
## References
- [Official documentation]
- [Benchmark source]
- [PoC repository]
- [Case study]
- [Related ADR]
---
## Appendix: Detailed Scoring
[Include research notes, detailed scores, calculations]
Evaluation Anti-Patterns
1. Resume-Driven Evaluation
❌ Anti-pattern: Choosing technology because it's trendy or looks good on resume
Signs:
- "Everyone's talking about [new tech]"
- Ignoring that current solution works well
- Chasing hype cycles
- Complexity for complexity's sake
Fix: Evaluate based on actual needs, not trends
2. Analysis Paralysis
❌ Anti-pattern: Evaluating forever, never deciding
Signs:
- Evaluating 10+ options
- Adding criteria endlessly
- "Let's research more" when data is sufficient
- Perfectionism blocking decision
Fix: Set decision deadline, limit options to 3-5, accept "good enough"
3. Confirmation Bias
❌ Anti-pattern: Deciding first, evaluating to confirm
Signs:
- Only researching preferred option deeply
- Ignoring negative evidence
- Scoring subjectively to favor preference
- Cherry-picking benchmarks
Fix: Score all options before forming opinion, blind evaluation where possible
4. Sunk Cost Fallacy
❌ Anti-pattern: Continuing with poor choice due to past investment
Signs:
- "We've already invested 6 months"
- Ignoring better alternatives
- Escalating commitment despite evidence
- Defending past decision
Fix: Evaluate current state objectively, past investment is sunk
5. Feature Checklist Evaluation
❌ Anti-pattern: Choosing option with most features
Signs:
- Counting features without weighting importance
- Ignoring that 80% of features won't be used
- Missing quality vs quantity distinction
- Complexity without benefit
Fix: Weight features by actual need, value simplicity
Integration with Other Skills
With Proof-of-Concept
Evaluation identifies options, PoC validates top candidates.
Workflow:
- Evaluate → Narrow to 2-3 finalists
- PoC → Test finalists hands-on
- Update scores → Based on PoC findings
- Decide → With data from both evaluation and PoC
See proof-of-concept skill.
With Technical Research
Research gathers information, evaluation structures decision-making.
Workflow:
- Research → Understand the landscape
- Evaluate → Score options systematically
- Document → Create decision record
See technical-research skill.
With Architecture Review
Evaluation informs architecture decisions, review validates them.
Workflow:
- Evaluate → Choose technology/pattern
- Design → Create architecture
- Review → Validate architectural decisions
See architecture-review skill.
With ADR
Evaluation provides the data, ADR documents the decision.
Workflow:
- Evaluate → Create scoring matrix
- Decide → Make recommendation
- ADR → Record decision with context
See adr skill.
With Technical Lead Role
Tech leads use evaluation to make informed decisions.
Workflow:
- Tech lead identifies need for evaluation
- Team collaborates on criteria and weights
- Tech lead facilitates evaluation process
- Team reviews findings
- Tech lead makes final decision
See technical-lead-role skill.
Quick Reference
Evaluation Process Checklist
Planning:
- Define evaluation criteria (technical, operational, team, business, strategic)
- Assign weights based on context (HIGH/MEDIUM/LOW)
- Identify 3-5 options to evaluate
- Set decision deadline
Research:
- Review official documentation for each option
- Check GitHub activity and community health
- Research production usage and case studies
- Review security and licensing
Scoring:
- Create scoring matrix (0-10 scale)
- Score all options consistently
- Calculate weighted scores
- Document rationale for scores
Validation:
- Build PoCs for top 2-3 options
- Test critical features
- Measure actual performance
- Assess developer experience
- Update scores based on findings
Decision:
- Analyze trade-offs between options
- Document risks and mitigations
- Make recommendation with rationale
- Create ADR for significant decisions
- Communicate decision to stakeholders
Evaluation Criteria Quick List
Technical: Features, performance, scalability, security Operational: Reliability, monitoring, maintenance Team: Learning curve, documentation, community Business: Cost, licensing, vendor lock-in, support Strategic: Ecosystem, roadmap, adoption trends
Scoring Guidelines
- 9-10: Excellent, exceeds requirements
- 7-8: Good, meets requirements well
- 5-6: Acceptable, meets minimum
- 3-4: Poor, below requirements
- 0-2: Inadequate, deal-breaker
When to Re-evaluate
- New major version released
- Significant change in requirements
- Team size or expertise changes
- Better alternatives emerge
- Performance degrades
- Security issues discovered
- Vendor acquired or direction changes
- Every 1-2 years for critical dependencies
Remember: Good evaluation leads to good decisions. Define criteria before scoring, weight by importance, validate with hands-on testing. Document trade-offs transparently so future you (and your team) understands why the decision was made. Every choice has costs—make them explicit.