Skip to content

16.10 Team & skills

บทนี้ระบุทีมและ skill ที่ต้องการสำหรับ modernization พร้อมแผน training

Skill matrix ปัจจุบัน (สมมติฐาน)

Skillระดับที่ต้องการระดับปัจจุบัน (โดยเฉลี่ย)Gap
Node.js / JavaScriptAdvancedAdvancedไม่มี
Apollo GraphQLIntermediateIntermediateไม่มี
Sequelize / SQLIntermediateIntermediateไม่มี
GoIntermediateNone-Beginnerใหญ่
Vue 3 / Nuxt 3IntermediateNone-Beginnerใหญ่
TypeScriptIntermediateBeginnerปานกลาง
DockerIntermediateBeginner-Intermediateปานกลาง
Domain-Driven DesignBeginnerNoneใหญ่
Hexagonal architectureBeginnerNoneใหญ่
Observability (Prometheus/Grafana)IntermediateNoneใหญ่
CI/CDIntermediateBeginnerปานกลาง
Testing (integration, e2e)IntermediateBeginnerปานกลาง

ทีมที่ต้องการสำหรับแต่ละ Wave

Wave 0 (2 สัปดาห์)

บทบาทจำนวนSkill ที่ต้องการ
Backend engineer1-2Node.js, security
Ops engineer1Docker, Nginx
Reviewer1ประสบการณ์รวม

Wave 1 (3 เดือน)

บทบาทจำนวนSkill ที่ต้องการ
Backend engineer2Node.js, Apollo, Sequelize
Frontend engineer1React, Apollo
DevOps engineer1Docker, CI/CD, Prometheus
Database engineer (part-time)0.5MariaDB, MSSQL

Wave 2 (12 เดือน)

บทบาทจำนวนSkill ที่ต้องการ
Backend engineer (Go)2-3Go, DDD, Hexagonal
DevOps engineer1Docker, Traefik, observability
Database engineer0.5Migration, performance

Wave 3 (15 เดือน, parallel กับ Wave 2)

บทบาทจำนวนSkill ที่ต้องการ
Frontend engineer (Vue 3)2-3Vue 3, Nuxt 3, FSD, TypeScript
Designer (part-time)0.5UX, design system

แผนการเติม skill gap

กลยุทธ์ที่ 1 · training ภายใน

หลักสูตรระยะเวลาผู้เข้าร่วมรูปแบบ
Go fundamentals2 สัปดาห์ (part-time)Backend engineerself-study + workshop
Vue 3 + Nuxt 32 สัปดาห์Frontend engineerself-study + workshop
DDD และ Hexagonal1 สัปดาห์Backend engineer, leadจ้างวิทยากร
Observability1 สัปดาห์DevOps + engineerจ้างวิทยากร
Testing strategy3 วันทั้งทีมจ้างวิทยากร

กลยุทธ์ที่ 2 · จ้างคนใหม่

ตำแหน่งWave ที่ต้องการเหตุผล
Senior Go engineerWave 2เป็น lead และ mentor
Senior Vue 3 engineerWave 3เป็น lead และ mentor
SRE / Platform engineerWave 1ทำ observability + CI/CD

กลยุทธ์ที่ 3 · consultant

หัวข้อระยะเวลาเหตุผล
DDD/Hexagonal1-2 เดือนspike กับ context แรก
Observability2 สัปดาห์ติดตั้ง 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 (เช่น ลบ _bk files)
  • 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 เป็นเรื่องคนมากกว่าเทคโนโค — ลงทุนในทีม:

  1. training ก่อนเริ่ม
  2. จ้างคนใหม่เสริม skill gap
  3. ใช้ consultant ในจุดที่สำคัญ
  4. ดูแลวัฒนธรรมการเรียนรู้

บทถัดไปจะครอบคลุม budget และ timeline