16.10 Team & skills
บทนี้ระบุทีมและ skill ที่ต้องการสำหรับ modernization พร้อมแผน training
Skill matrix ปัจจุบัน (สมมติฐาน)
| Skill | ระดับที่ต้องการ | ระดับปัจจุบัน (โดยเฉลี่ย) | Gap |
|---|---|---|---|
| Node.js / JavaScript | Advanced | Advanced | ไม่มี |
| Apollo GraphQL | Intermediate | Intermediate | ไม่มี |
| Sequelize / SQL | Intermediate | Intermediate | ไม่มี |
| Go | Intermediate | None-Beginner | ใหญ่ |
| Vue 3 / Nuxt 3 | Intermediate | None-Beginner | ใหญ่ |
| TypeScript | Intermediate | Beginner | ปานกลาง |
| Docker | Intermediate | Beginner-Intermediate | ปานกลาง |
| Domain-Driven Design | Beginner | None | ใหญ่ |
| Hexagonal architecture | Beginner | None | ใหญ่ |
| Observability (Prometheus/Grafana) | Intermediate | None | ใหญ่ |
| CI/CD | Intermediate | Beginner | ปานกลาง |
| Testing (integration, e2e) | Intermediate | Beginner | ปานกลาง |
ทีมที่ต้องการสำหรับแต่ละ Wave
Wave 0 (2 สัปดาห์)
| บทบาท | จำนวน | Skill ที่ต้องการ |
|---|---|---|
| Backend engineer | 1-2 | Node.js, security |
| Ops engineer | 1 | Docker, Nginx |
| Reviewer | 1 | ประสบการณ์รวม |
Wave 1 (3 เดือน)
| บทบาท | จำนวน | Skill ที่ต้องการ |
|---|---|---|
| Backend engineer | 2 | Node.js, Apollo, Sequelize |
| Frontend engineer | 1 | React, Apollo |
| DevOps engineer | 1 | Docker, CI/CD, Prometheus |
| Database engineer (part-time) | 0.5 | MariaDB, MSSQL |
Wave 2 (12 เดือน)
| บทบาท | จำนวน | Skill ที่ต้องการ |
|---|---|---|
| Backend engineer (Go) | 2-3 | Go, DDD, Hexagonal |
| DevOps engineer | 1 | Docker, Traefik, observability |
| Database engineer | 0.5 | Migration, performance |
Wave 3 (15 เดือน, parallel กับ Wave 2)
| บทบาท | จำนวน | Skill ที่ต้องการ |
|---|---|---|
| Frontend engineer (Vue 3) | 2-3 | Vue 3, Nuxt 3, FSD, TypeScript |
| Designer (part-time) | 0.5 | UX, design system |
แผนการเติม skill gap
กลยุทธ์ที่ 1 · training ภายใน
| หลักสูตร | ระยะเวลา | ผู้เข้าร่วม | รูปแบบ |
|---|---|---|---|
| Go fundamentals | 2 สัปดาห์ (part-time) | Backend engineer | self-study + workshop |
| Vue 3 + Nuxt 3 | 2 สัปดาห์ | Frontend engineer | self-study + workshop |
| DDD และ Hexagonal | 1 สัปดาห์ | Backend engineer, lead | จ้างวิทยากร |
| Observability | 1 สัปดาห์ | DevOps + engineer | จ้างวิทยากร |
| Testing strategy | 3 วัน | ทั้งทีม | จ้างวิทยากร |
กลยุทธ์ที่ 2 · จ้างคนใหม่
| ตำแหน่ง | Wave ที่ต้องการ | เหตุผล |
|---|---|---|
| Senior Go engineer | Wave 2 | เป็น lead และ mentor |
| Senior Vue 3 engineer | Wave 3 | เป็น lead และ mentor |
| SRE / Platform engineer | Wave 1 | ทำ observability + CI/CD |
กลยุทธ์ที่ 3 · consultant
| หัวข้อ | ระยะเวลา | เหตุผล |
|---|---|---|
| DDD/Hexagonal | 1-2 เดือน | spike กับ context แรก |
| Observability | 2 สัปดาห์ | ติดตั้ง stack |
| Migration playbook review | หลายครั้ง | audit playbook ที่ทำ |
Onboarding plan สำหรับสมาชิกใหม่
สัปดาห์ที่ 1 · ทำความรู้จักระบบ
อ่าน:
- Volume 0 (Executive Summary)
- Volume 1 (Introduction)
- Volume 2 (Architecture)
- Volume 13.1 (Service inventory)
สัปดาห์ที่ 2 · hands-on
- ทำ task เล็ก ๆ ใน Wave 0 (เช่น ลบ
_bkfiles) - pair กับ senior
สัปดาห์ที่ 3-4 · รับ task จริง
- รับ task ใน Wave 1 หรือ Wave 2
- code review หนักขึ้น
การจัดทีมตาม bounded context
เมื่อ Wave 2 progress ทีมอาจแบ่งตาม context:
Tech Lead
│
┌─────────────┼─────────────┐
│ │ │
Identity Team Leave Team Welfare Team
(2 eng) (2 eng) (2 eng)
│
Platform / SRE Team
(1-2 eng — ดูแล CI/CD, observability, infra)ข้อดี:
- ownership ชัดเจน
- on-call แยกตาม context
- velocity เร็วขึ้น (ไม่ต้องประสานทุกอย่าง)
ข้อเสีย:
- silos (ต้องมีการ sync)
- knowledge sharing ต้องดูแล
บทบาทเฉพาะ
Tech Lead (modernization)
รับผิดชอบ:
- อนุมัติ architecture decision
- review playbook
- coordinate ระหว่าง Wave
- report ให้ผู้บริหาร
Skill: architecture, communication, ประสบการณ์ migration
Migration Lead (per Wave)
รับผิดชอบ:
- plan sprint ของ Wave
- track progress
- แก้ปัญหาที่กระทบหลาย task
- retrospective
Domain Owner (per context)
รับผิดชอบ:
- domain modeling
- ตัดสินใจ business rule ที่คลุมเครือ
- เป็น contact สำหรับ context นั้น
Platform / SRE
รับผิดชอบ:
- CI/CD
- observability
- infrastructure
- on-call rotation
การวัดความพร้อมของทีม
KPI:
- Velocity — story point ต่อ sprint (ต้อง stable หรือเพิ่ม)
- Quality — bug rate, change failure rate
- Happiness — survey ราย sprint (Net Promoter Score ภายในทีม)
- Skill — % ทีมที่ผ่าน skill assessment
หาก happiness < 6/10 → pause modernization และแก้ปัญหาทีม
การดูแลวัฒนธรรม
Modernization ยาวนาน — วัฒนธรรมสำคัญ:
1. blameless culture
เมื่อเกิด incident:
- ไม่โทษคน
- มองหา root cause ของระบบ
- เรียนรู้ร่วมกัน
2. learning time
- 20% เวลาสำหรับ learning (เรียนรู้ skill ใหม่)
- แชร์ความรู้ในทีมทุกสัปดาห์
3. celebrate wins
- ฉลองทุก Wave ที่เสร็จ
- ฉลอง context แรกที่แยกสำเร็จ
- เล่าเรื่องตัวอย่างให้ทีมฟัง
4. transparent metrics
- ทุกคนเห็น progress (dashboard)
- ทุกคนเห็น KPI
- ไม่มี secret
สรุป
Modernization เป็นเรื่องคนมากกว่าเทคโนโค — ลงทุนในทีม:
- training ก่อนเริ่ม
- จ้างคนใหม่เสริม skill gap
- ใช้ consultant ในจุดที่สำคัญ
- ดูแลวัฒนธรรมการเรียนรู้
บทถัดไปจะครอบคลุม budget และ timeline