Technology Radar là framework do ThoughtWorks phát triển, giúp teams đánh giá và quản lý technology landscape một cách có hệ thống. Thay vì mỗi developer tự chọn stack theo sở thích, Technology Radar tạo ra shared vocabulary và governance nhẹ cho việc adopt technology.
Bốn Rings
Ring
Ý nghĩa
Action
Adopt
Proven, team nên dùng cho projects mới
Default choice, không cần approval
Trial
Đáng thử trong project có risk thấp
Cần Tech Lead approval, giới hạn 1-2 projects
Assess
Đáng tìm hiểu, chưa nên dùng production
Research, POC, hackathon - không dùng production
Hold
Dừng adopt, chỉ maintain existing
Không dùng cho project mới, plan migration nếu cần
Bốn Quadrants
Languages & Frameworks - .NET, C#, Blazor, React...
Gửi survey cho toàn team (2 tuần trước workshop):
1. Technology nào bạn đang dùng và recommend cho team?
- Tên technology
- Quadrant (Language/Tool/Platform/Technique)
- Ring đề xuất (Adopt/Trial/Assess/Hold)
- Lý do ngắn gọn (1-2 câu)
2. Technology nào bạn thấy team nên DỪNG sử dụng?
- Tên technology
- Lý do (pain points cụ thể)
- Đề xuất thay thế
3. Technology mới nào bạn muốn team khám phá?
- Tên technology
- Problem nó giải quyết
- Link tài liệu/article
Bước 2: Consolidate và categorize
Nhóm các technology theo quadrant, loại bỏ duplicates, chuẩn bị cho workshop.
Bước 3: Workshop (xem section bên dưới)
Bước 4: Publish và maintain
Publish trên team wiki/confluence
Review lại mỗi quarter
Mỗi thay đổi ring cần justification document
Evaluation Criteria Cho Technology Mới
Scoring Card
Đánh giá technology trên 8 criteria (thang 1-5):
markdown
## Technology Evaluation: [Technology Name]
| # | Criteria | Score (1-5) | Notes |
|---|----------|-------------|-------|
| 1 | **Problem-Solution Fit** | | Giải quyết real problem của team? |
| 2 | **Community & Ecosystem** | | GitHub stars, NuGet downloads, Stack Overflow activity |
| 3 | **Documentation Quality** | | Official docs, tutorials, examples |
| 4 | **Maturity & Stability** | | Version history, breaking changes frequency |
| 5 | **Team Learnability** | | Learning curve, similarity với stack hiện tại |
| 6 | **Performance** | | Benchmarks relevant cho use case |
| 7 | **Maintenance & Support** | | Active development, commercial support option |
| 8 | **Integration** | | Tương thích với existing stack |
| | **Average Score** | | ≥ 4: Adopt candidate, 3-4: Trial, 2-3: Assess, < 2: Hold |
Red Flags (tự động Hold)
Maintainer duy nhất là 1 người (bus factor = 1)
Không có release trong 12 tháng trở lên
Breaking changes mỗi minor version
License không compatible với project (GPL trong commercial software)
Không có test suite trong source code
Tech Radar Workshop
Chuẩn bị
Thời lượng: 2-3 giờ
Participants: Tất cả developers + DevOps + Tech Lead
Facilitator: Tech Lead hoặc senior dev khách quan
Materials: Survey results đã consolidate, projector/screen share
Agenda mẫu
00:00 - 00:10 Opening: giải thích rules và format
00:10 - 00:40 Quadrant 1: Languages & Frameworks
- Present mỗi item 2 phút
- Vote ring placement (Adopt/Trial/Assess/Hold)
- Discuss nếu có disagreement (max 5 phút/item)
00:40 - 01:10 Quadrant 2: Tools
01:10 - 01:20 Break
01:20 - 01:50 Quadrant 3: Platforms
01:50 - 02:20 Quadrant 4: Techniques
02:20 - 02:40 Review và finalize toàn bộ radar
02:40 - 03:00 Action items: ai research gì, trial gì trong quarter tới
Quy tắc workshop
Mỗi item tối đa 7 phút - nếu không consensus, facilitator quyết định hoặc defer sang offline
Vote bằng fist-of-five - 1 (strong disagree) đến 5 (strong agree), < 3 average = discuss thêm
Data over opinions - "Tôi đã dùng X trong project Y, kết quả Z" > "Tôi nghĩ X tốt"
No HiPPO (Highest Paid Person's Opinion) - Tech Lead vote cuối cùng để không bias team
Example: .NET Ecosystem Radar
Adopt (dùng thoải mái)
Technology
Quadrant
Lý do
.NET 8 LTS
Language
LTS, performance improvements, team đã migrate
EF Core 8
Framework
Mature ORM, good enough cho 90% use cases
xUnit + FluentAssertions
Tool
Team standard, rich assertion library
Serilog + Seq
Tool
Structured logging standard, proven in production
MediatR
Framework
CQRS/Mediator pattern, giảm controller coupling
Docker + K8s
Platform
Production proven, team experienced
PostgreSQL
Platform
Cost effective, rich features, team expertise
GitHub Actions
Tool
CI/CD standard, good integration
Vertical Slice Architecture
Technique
Team adopted, productivity tăng
Trial (thử trong 1-2 projects)
Technology
Quadrant
Lý do
.NET Aspire
Framework
Promising cho cloud-native dev experience, cần thêm production data
YARP
Framework
Reverse proxy, đang evaluate thay Ocelot
Marten (Event Sourcing)
Framework
PostgreSQL-based event store, fit cho order domain
Testcontainers
Tool
Integration test với real database, promising
OpenTelemetry (.NET)
Tool
Vendor-neutral observability, dần thay Serilog metrics
Assess (research, chưa production)
Technology
Quadrant
Lý do
.NET 9 (non-LTS)
Language
Mới release, chờ stabilize, evaluate features mới
Blazor United
Framework
Server + WASM hybrid, interesting nhưng team chưa có SPA experience
Wolverine
Framework
MediatR alternative + messaging, community nhỏ
Dapr
Platform
Microservices building blocks, complex setup
AI/ML .NET (Semantic Kernel)
Framework
AI integration, cần evaluate use cases cụ thể
Hold (không dùng cho project mới)
Technology
Quadrant
Lý do
Alternative
.NET Framework 4.x
Language
End of innovation, chỉ security fixes
.NET 8
WCF
Framework
Legacy, không cross-platform
gRPC
Ocelot
Framework
Maintenance chậm, thiếu features
YARP
Swagger UI (Swashbuckle)
Tool
Unmaintained, .NET 9 đã remove default
Scalar, NSwag
N-Layer Architecture
Technique
Over-engineering cho hầu hết projects
Vertical Slice
Repository Pattern (over EF Core)
Technique
Unnecessary abstraction, EF Core đã là Unit of Work
Direct DbContext
Quản Lý Technology Lifecycle
Quarterly Review Process
Q1: Full radar workshop (review toàn bộ)
Q2: Lightweight review (chỉ items thay đổi)
Q3: Full radar workshop
Q4: Lightweight review + annual retrospective
Technology Migration Playbook
Khi chuyển technology từ Adopt → Hold:
markdown
## Migration Plan: [Old Tech] → [New Tech]### Timeline- Announcement: [date] - team biết và chuẩn bị
- New projects: [date] - tất cả project mới dùng [New Tech]
- Migration start: [date] - bắt đầu migrate existing projects
- End of support: [date] - không support [Old Tech] nữa
### Migration Steps1. Document migration guide với step-by-step instructions
2. Pilot migration trên 1 non-critical service
3. Tạo migration tickets cho remaining services (prioritize by risk)
4. Pair programming sessions cho team members chưa quen [New Tech]
5. Decommission [Old Tech] infrastructure sau khi migrate xong
### Success Criteria- 100% new projects dùng [New Tech]
- ≥ 80% existing projects migrated trong 2 quarters
- Zero production incidents caused by migration
Cân Bằng Innovation vs Stability
Innovation Budget Rule
Phân bổ capacity cho innovation:
70% Adopt - technology đã proven, deliver value ngay
20% Trial - technology promising, giảm risk bằng giới hạn scope
10% Assess - research, POC, hackathon
Decision Tree
Có real business problem cần giải quyết?
├── Không → Không adopt (technology vì technology ≠ giá trị)
└── Có → Technology hiện tại giải quyết được không?
├── Có → Dùng technology hiện tại (Adopt ring)
└── Không → Technology mới mature đủ chưa?
├── Có (v1.0+, active community) → Trial
└── Không → Assess (research, theo dõi tiếp)
Anti-patterns cần tránh
Anti-pattern
Hậu quả
Giải pháp
Resume-Driven Development
Tech stack phức tạp không cần thiết
Yêu cầu justification cho mỗi technology mới
Shiny Object Syndrome
Chuyển stack liên tục, không project nào stable
Enforce minimum 6 tháng trước khi evaluate lại
Cargo Culting
Copy stack của Netflix/Google không phù hợp scale
Evaluate dựa trên team size và actual requirements
Technology Monoculture
Dùng 1 tool cho mọi thứ dù không fit
Diverse radar, đúng tool cho đúng job
Paralysis by Analysis
Evaluate mãi không chọn được
Timebox evaluation (max 2 tuần), default to Adopt ring