CTO Advisor
Build vs Buy Decision Framework
Decision Matrix
## Build vs Buy Analysis: [Feature/System Name]
### Scoring (1-5 each)
| Factor | Build | Buy | Weight |
|--------|-------|-----|--------|
| Core competency alignment | [1-5] | [1-5] | 3x |
| Time to market | [1-5] | [1-5] | 2x |
| Total cost (3 year) | [1-5] | [1-5] | 2x |
| Customization needs | [1-5] | [1-5] | 2x |
| Maintenance burden | [1-5] | [1-5] | 1x |
| Data control | [1-5] | [1-5] | 1x |
| Integration complexity | [1-5] | [1-5] | 1x |
| Vendor risk | [1-5] | [1-5] | 1x |
| **Weighted Total** | [sum] | [sum] | |
### Decision: BUILD / BUY / HYBRID
Decision Rules
| Condition | Recommendation | |-----------|---------------| | Core differentiator | BUILD (competitive advantage) | | Commodity capability | BUY (focus on core) | | Strict compliance / data sovereignty | BUILD (control) | | Team has no domain expertise | BUY (faster, less risk) | | Vendor lock-in risk > 7/10 | BUILD or multi-vendor | | Time to market < 3 months | BUY (speed) | | Budget constrained, long-term | BUILD (lower TCO) |
Build vs Buy Anti-Patterns
| Anti-Pattern | Neden Yanlis | Dogru Yol | |-------------|-------------|-----------| | "Not invented here" | Wasted engineering time | Evaluate vendors objectively | | "We'll build it in 2 weeks" | Always takes 5x longer | Realistic estimation with buffer | | Buying everything | No differentiation | Build core, buy commodity | | Ignoring maintenance cost | Build looks cheaper initially | Include 3-5 year maintenance TCO | | No exit strategy from vendor | Lock-in trap | Evaluate migration cost upfront |
Tech Debt Quantification & Prioritization
Tech Debt Classification
| Type | Description | Impact | Example | |------|-------------|--------|---------| | Code debt | Poor code quality | Developer velocity | No types, huge functions, no tests | | Architecture debt | Wrong architectural decisions | Scalability | Monolith that should be microservice | | Test debt | Insufficient test coverage | Reliability | No integration tests, flaky tests | | Dependency debt | Outdated dependencies | Security | 3 major versions behind, CVEs | | Documentation debt | Missing/outdated docs | Onboarding | No API docs, stale README | | Infrastructure debt | Manual processes, legacy infra | Reliability | No CI/CD, manual deployments | | Design debt | UX inconsistencies | User experience | 5 different button styles |
Tech Debt Scorecard
## Tech Debt Assessment: [Project Name]
| Area | Score (1-10) | Trend | Priority |
|------|-------------|-------|----------|
| Code quality | [X] | [up/down/flat] | [H/M/L] |
| Test coverage | [X%] | [up/down/flat] | [H/M/L] |
| Dependency freshness | [X] | [up/down/flat] | [H/M/L] |
| Build/deploy time | [X min] | [up/down/flat] | [H/M/L] |
| Documentation | [X] | [up/down/flat] | [H/M/L] |
| Security posture | [X] | [up/down/flat] | [H/M/L] |
### Cost of Delay
[If we don't address debt area X, what happens in 6 months?]
### Investment Request
| Initiative | Effort | Impact | ROI Period |
|-----------|--------|--------|------------|
| [debt 1] | [weeks] | [description] | [months] |
| [debt 2] | [weeks] | [description] | [months] |
Prioritization Formula
Priority Score = (Impact * Urgency * Spread) / Effort
Impact (1-5): How much does it slow the team?
Urgency (1-5): How quickly will it get worse?
Spread (1-5): How many areas does it affect?
Effort (1-5): How hard is it to fix? (inverse: 1=hard, 5=easy)
Tech Debt Budget Rule
RULE: 20% of sprint capacity reserved for tech debt reduction
Sprint capacity: 10 story points
├── 8 points: Feature work
└── 2 points: Tech debt reduction (ZORUNLU, negotiable degil)
Team Scaling Strategies
Hiring Framework
## Hiring Plan: [Quarter/Year]
### Current State
| Role | Headcount | Capacity | Gap |
|------|-----------|----------|-----|
| Backend | [X] | [Y features/quarter] | [shortfall] |
| Frontend | [X] | [Y features/quarter] | [shortfall] |
| DevOps | [X] | [Y deploys/week] | [shortfall] |
| QA | [X] | [Y tests/sprint] | [shortfall] |
### Ratios
- Engineer : Manager = 6-8 : 1
- Senior : Mid : Junior = 2 : 3 : 1
- Backend : Frontend = project-dependent
- Engineer : QA = 4-6 : 1
### Onboarding Milestones
| Day | Milestone |
|-----|-----------|
| 1 | Dev environment running, first commit |
| 7 | First PR merged |
| 14 | First feature shipped to staging |
| 30 | Independent task completion |
| 60 | Contributing to architecture discussions |
| 90 | Fully productive, mentoring others |
Team Topology Patterns
| Pattern | When to Use | Size | |---------|-------------|------| | Stream-aligned | Product features | 5-8 people | | Platform | Internal tooling, infrastructure | 3-5 people | | Enabling | Coach other teams, remove blockers | 2-3 people | | Complicated subsystem | Deep expertise (ML, security) | 2-4 people |
Architecture Decision Records (ADR)
ADR Template
# ADR-[number]: [decision title]
## Status
[Proposed | Accepted | Deprecated | Superseded by ADR-XXX]
## Context
[What is the issue? What forces are at play?]
[Include constraints, requirements, team capabilities]
## Decision
[What is the change that we're proposing and/or doing?]
## Alternatives Considered
### Option A: [name]
- Pros: [list]
- Cons: [list]
### Option B: [name]
- Pros: [list]
- Cons: [list]
## Consequences
### Positive
- [benefit 1]
- [benefit 2]
### Negative
- [tradeoff 1]
- [tradeoff 2]
### Risks
- [risk 1]: [mitigation]
- [risk 2]: [mitigation]
## Decision Date
[YYYY-MM-DD]
## Decision Makers
[names/roles]
ADR Index
## Architecture Decision Log
| # | Decision | Status | Date | Impact |
|---|---------|--------|------|--------|
| 001 | Use PostgreSQL over MongoDB | Accepted | 2025-01-15 | High |
| 002 | Adopt microservices for billing | Accepted | 2025-02-01 | High |
| 003 | Use React over Vue | Accepted | 2025-02-15 | Medium |
| 004 | Monolith-first for MVP | Deprecated | 2025-03-01 | High |
Technology Evaluation Framework
RICE Scoring
## Technology Evaluation: [Technology Name]
### RICE Score
| Factor | Score | Weight | Weighted |
|--------|-------|--------|----------|
| **Reach** (how many people/teams affected) | [1-10] | 1x | [X] |
| **Impact** (how much improvement per person) | [1-3: minimal/medium/massive] | 2x | [X] |
| **Confidence** (how sure are we) | [50-100%] | 1x | [X] |
| **Effort** (person-months) | [X] | divisor | [X] |
**RICE Score = (Reach * Impact * Confidence) / Effort = [score]**
Weighted Scoring Matrix
## Vendor/Technology Comparison
| Criteria | Weight | Option A | Option B | Option C |
|----------|--------|----------|----------|----------|
| Performance | 20% | [1-5] | [1-5] | [1-5] |
| Community/support | 15% | [1-5] | [1-5] | [1-5] |
| Learning curve | 15% | [1-5] | [1-5] | [1-5] |
| Cost | 15% | [1-5] | [1-5] | [1-5] |
| Scalability | 10% | [1-5] | [1-5] | [1-5] |
| Security | 10% | [1-5] | [1-5] | [1-5] |
| Integration | 10% | [1-5] | [1-5] | [1-5] |
| Maturity | 5% | [1-5] | [1-5] | [1-5] |
| **Weighted Total** | | [sum] | [sum] | [sum] |
### Recommendation: [Option X]
### Reasoning: [1-2 sentences]
Technology Evaluation Anti-Patterns
| Anti-Pattern | Risk | Dogru Yol | |-------------|------|-----------| | Resume-driven development | Wrong tool for the job | Evaluate against actual needs | | Hype-driven adoption | Immature ecosystem | Wait for version 2.0+ | | Single vendor evaluation | No comparison baseline | Always evaluate 3+ options | | Ignoring exit cost | Future lock-in | Calcu