260322:1648 Correct Coresspondence / Doing RFA / Correct CI
This commit is contained in:
@@ -312,6 +312,7 @@ taskkill /PID <PID> /F
|
||||
**Problem:** Backend fails to start with "config is not defined" or similar errors.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Ensure .env file exists
|
||||
ls backend/.env # Linux/Mac
|
||||
@@ -330,6 +331,7 @@ docker-compose up -d
|
||||
**Problem:** Tables not found or schema mismatch.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check migration status
|
||||
docker exec lcbp3-backend npm run migration:show
|
||||
@@ -349,6 +351,7 @@ docker exec lcbp3-backend npm run migration:revert
|
||||
**Problem:** Queue jobs not processing or "ECONNREFUSED" errors.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check if Redis is running
|
||||
docker ps | grep redis
|
||||
@@ -367,6 +370,7 @@ docker logs lcbp3-redis
|
||||
**Problem:** Browser blocks API requests with CORS policy errors.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check CORS_ORIGIN in backend/.env
|
||||
# Should match frontend URL (e.g., http://localhost:3001)
|
||||
@@ -383,6 +387,7 @@ docker-compose restart backend
|
||||
**Problem:** File uploads return 413 (Payload Too Large) or timeout.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check MAX_FILE_SIZE in .env (default 50MB)
|
||||
MAX_FILE_SIZE=52428800
|
||||
@@ -399,6 +404,7 @@ docker exec lcbp3-backend df -h # Linux/Mac
|
||||
**Problem:** Line ending issues (CRLF vs LF) cause build failures.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Configure Git to use LF line endings
|
||||
git config --global core.autocrlf input
|
||||
@@ -415,6 +421,7 @@ git commit -m "Normalize line endings"
|
||||
**Problem:** Cannot write files or execute commands inside containers.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Windows: Ensure Docker Desktop has access to the drive
|
||||
# Settings → Resources → File Sharing
|
||||
@@ -431,6 +438,7 @@ docker exec lcbp3-backend whoami
|
||||
**Problem:** Code changes don't reflect immediately during development.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Ensure volumes are mounted correctly in docker-compose.yml
|
||||
# Check for:
|
||||
@@ -453,6 +461,7 @@ docker-compose restart backend
|
||||
**Problem:** "Cannot find module" or type errors.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Clear build cache
|
||||
docker exec lcbp3-backend rm -rf dist
|
||||
@@ -470,6 +479,7 @@ docker exec lcbp3-backend npm list typescript
|
||||
**Problem:** Race condition causes duplicate document numbers.
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Ensure Redis is running (required for distributed locks)
|
||||
docker ps | grep redis
|
||||
@@ -552,6 +562,7 @@ git push origin feature/my-feature
|
||||
- **API Docs:** <http://localhost:3000/api/docs>
|
||||
- **Issue Tracker:** [Link to issue tracker]
|
||||
- **Slack:** #lcbp3-dms
|
||||
|
||||
### Contact
|
||||
|
||||
- **Tech Lead:** peancharoen@gmail.com
|
||||
|
||||
@@ -471,23 +471,23 @@ Logging library สำหรับ Node.js
|
||||
|
||||
## 📚 Acronyms Reference (อ้างอิงตัวย่อ)
|
||||
|
||||
| Acronym | Full Form | Thai |
|
||||
| ------- | --------------------------------- | -------------------------- |
|
||||
| Acronym | Full Form | Thai |
|
||||
| ------- | --------------------------------- | ------------------------------- |
|
||||
| ADR | Architecture Decision Record | บันทึกการตัดสินใจทางสถาปัตยกรรม |
|
||||
| API | Application Programming Interface | ส่วนต่อประสานโปรแกรม |
|
||||
| CRUD | Create, Read, Update, Delete | สร้าง อ่าน แก้ไข ลบ |
|
||||
| DMS | Document Management System | ระบบจัดการเอกสาร |
|
||||
| API | Application Programming Interface | ส่วนต่อประสานโปรแกรม |
|
||||
| CRUD | Create, Read, Update, Delete | สร้าง อ่าน แก้ไข ลบ |
|
||||
| DMS | Document Management System | ระบบจัดการเอกสาร |
|
||||
| DTO | Data Transfer Object | วัตถุถ่ายโอนข้อมูล |
|
||||
| JWT | JSON Web Token | โทเคนเว็บ JSON |
|
||||
| JWT | JSON Web Token | โทเคนเว็บ JSON |
|
||||
| LCBP3 | Laem Chabang Port Phase 3 | ท่าเรือแหลมฉบังระยะที่ 3 |
|
||||
| MVP | Minimum Viable Product | ผลิตภัณฑ์ขั้นต่ำที่ใช้งานได้ |
|
||||
| MVP | Minimum Viable Product | ผลิตภัณฑ์ขั้นต่ำที่ใช้งานได้ |
|
||||
| ORM | Object-Relational Mapping | การแมปวัตถุกับฐานข้อมูล |
|
||||
| RBAC | Role-Based Access Control | การควบคุมการเข้าถึงตามบทบาท |
|
||||
| REST | Representational State Transfer | การถ่ายโอนสถานะแบบนำเสนอ |
|
||||
| RFA | Request for Approval | เอกสารขออนุมัติ |
|
||||
| RTO | Recovery Time Objective | เวลาเป้าหมายในการกู้คืน |
|
||||
| RBAC | Role-Based Access Control | การควบคุมการเข้าถึงตามบทบาท |
|
||||
| REST | Representational State Transfer | การถ่ายโอนสถานะแบบนำเสนอ |
|
||||
| RFA | Request for Approval | เอกสารขออนุมัติ |
|
||||
| RTO | Recovery Time Objective | เวลาเป้าหมายในการกู้คืน |
|
||||
| RPO | Recovery Point Objective | จุดเป้าหมายในการกู้คืน |
|
||||
| UAT | User Acceptance Testing | การทดสอบการยอมรับของผู้ใช้ |
|
||||
| UAT | User Acceptance Testing | การทดสอบการยอมรับของผู้ใช้ |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
# 🎯 Product Vision Statement — LCBP3-DMS v1.8.0
|
||||
|
||||
---
|
||||
|
||||
title: 'Product Vision Statement'
|
||||
version: 1.0.0
|
||||
status: APPROVED (Internal)
|
||||
owner: Nattanin Peancharoen (Product Owner)
|
||||
last_updated: 2026-03-11
|
||||
related:
|
||||
- specs/00-Overview/README.md
|
||||
- specs/01-Requirements/01-01-objectives.md
|
||||
- specs/00-Overview/00-04-stakeholder-signoff-and-risk.md
|
||||
|
||||
- specs/00-Overview/README.md
|
||||
- specs/01-Requirements/01-01-objectives.md
|
||||
- specs/00-Overview/00-04-stakeholder-signoff-and-risk.md
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
@@ -28,16 +31,16 @@ related:
|
||||
|
||||
### ปัญหาที่เกิดขึ้นจริง (Pain Points)
|
||||
|
||||
| # | ปัญหา | ผลกระทบ |
|
||||
|---|------|---------|
|
||||
| P1 | **RFA ใช้ Email** → ตามงานยาก, ตกหล่น | Cycle Time 14–21 วัน, งานช้า |
|
||||
| P2 | **เลขเอกสารทำมือ** → ซ้ำ, ผิด | ต้องยกเลิกและออกเลขใหม่ |
|
||||
| P3 | **ไม่รู้สถานะ** → ต้องโทรถาม | เสียเวลา ≥ 30 นาที/ครั้ง |
|
||||
| P4 | **หลาย Version ใน Email** → งง | ใช้แบบเวอร์ชันเก่า ก่อสร้างผิด |
|
||||
| P5 | **ไม่มี Audit Trail** → ตรวจสอบยาก | พิสูจน์ไม่ได้ว่าใครอนุมัติ |
|
||||
| P6 | **ไม่มี Permission Control** → Contractor เห็นข้อมูลกัน | ความลับทางธุรกิจรั่ว |
|
||||
| P7 | **ไม่มีการแจ้งเตือน** → พลาด Deadline | งานเกินเวลา |
|
||||
| P8 | **ค้นหาเอกสารยาก** → ต้องขอซ้ำ | ทำงานซ้ำ เสียเวลา |
|
||||
| # | ปัญหา | ผลกระทบ |
|
||||
| --- | ------------------------------------------------------- | ------------------------------ |
|
||||
| P1 | **RFA ใช้ Email** → ตามงานยาก, ตกหล่น | Cycle Time 14–21 วัน, งานช้า |
|
||||
| P2 | **เลขเอกสารทำมือ** → ซ้ำ, ผิด | ต้องยกเลิกและออกเลขใหม่ |
|
||||
| P3 | **ไม่รู้สถานะ** → ต้องโทรถาม | เสียเวลา ≥ 30 นาที/ครั้ง |
|
||||
| P4 | **หลาย Version ใน Email** → งง | ใช้แบบเวอร์ชันเก่า ก่อสร้างผิด |
|
||||
| P5 | **ไม่มี Audit Trail** → ตรวจสอบยาก | พิสูจน์ไม่ได้ว่าใครอนุมัติ |
|
||||
| P6 | **ไม่มี Permission Control** → Contractor เห็นข้อมูลกัน | ความลับทางธุรกิจรั่ว |
|
||||
| P7 | **ไม่มีการแจ้งเตือน** → พลาด Deadline | งานเกินเวลา |
|
||||
| P8 | **ค้นหาเอกสารยาก** → ต้องขอซ้ำ | ทำงานซ้ำ เสียเวลา |
|
||||
|
||||
### ผู้ที่ได้รับผลกระทบ
|
||||
|
||||
@@ -65,6 +68,7 @@ related:
|
||||
### Pillar 1: ⚡ Speed & Automation
|
||||
|
||||
ลด Cycle Time ของ RFA จาก 14 วัน → 3 วัน ด้วย:
|
||||
|
||||
- Auto Document Number (Redis Redlock — ไม่ซ้ำ, ไม่ต้องนับมือ)
|
||||
- Workflow Automation (DSL-based — Route, Notify, Track อัตโนมัติ)
|
||||
- Instant Notification (Email + LINE + In-App — ไม่ต้องโทรถาม)
|
||||
@@ -72,6 +76,7 @@ related:
|
||||
### Pillar 2: 🔒 Security & Trust
|
||||
|
||||
ไม่มีข้อมูลรั่วไหล ไม่มีการปลอมแปลง ด้วย:
|
||||
|
||||
- 4-Level RBAC (Org Isolation — Contractor A ไม่เห็น Contractor B)
|
||||
- Immutable Audit Trail (ทุก Action บันทึก ≥ 7 ปี ไม่แก้ไขได้)
|
||||
- ClamAV Virus Scan ทุกไฟล์ + File Encryption at Rest
|
||||
@@ -80,6 +85,7 @@ related:
|
||||
### Pillar 3: 👁️ Visibility & Control
|
||||
|
||||
ทุกคนรู้ว่าเอกสารอยู่ที่ไหน ใครถือ ครบด้วย:
|
||||
|
||||
- Real-time Workflow Diagram (คลิกดู History ทุก Step)
|
||||
- Dashboard: My Tasks, Overdue, KPI Cards
|
||||
- Elasticsearch Full-text Search (ค้นหาได้ภายใน 500ms)
|
||||
@@ -89,13 +95,13 @@ related:
|
||||
|
||||
## 5. 👥 Target Users (Primary)
|
||||
|
||||
| Persona | ต้องการอะไร | ได้อะไรจากระบบ |
|
||||
|---------|-----------|--------------|
|
||||
| **Document Control** | ออกเลข, ส่ง, Track เร็ว | Auto-Number + Workflow Dashboard |
|
||||
| **Engineer / Reviewer** | รับแจ้ง, Review ง่าย, Comment | Notification + PDF Viewer + History |
|
||||
| **PM / Supervisor** | เห็น Big Picture, ติดตาม Delay | Dashboard KPI + Overdue Alerts |
|
||||
| **Management / Auditor** | ตรวจสอบย้อนหลัง | Audit Log + Immutable History |
|
||||
| **กทท. (Owner)** | Compliance + Control | Permission Isolation + Reports |
|
||||
| Persona | ต้องการอะไร | ได้อะไรจากระบบ |
|
||||
| ------------------------ | ------------------------------ | ----------------------------------- |
|
||||
| **Document Control** | ออกเลข, ส่ง, Track เร็ว | Auto-Number + Workflow Dashboard |
|
||||
| **Engineer / Reviewer** | รับแจ้ง, Review ง่าย, Comment | Notification + PDF Viewer + History |
|
||||
| **PM / Supervisor** | เห็น Big Picture, ติดตาม Delay | Dashboard KPI + Overdue Alerts |
|
||||
| **Management / Auditor** | ตรวจสอบย้อนหลัง | Audit Log + Immutable History |
|
||||
| **กทท. (Owner)** | Compliance + Control | Permission Isolation + Reports |
|
||||
|
||||
---
|
||||
|
||||
@@ -132,13 +138,13 @@ Phase 4 (12–24 เดือน) — Enterprise Scale
|
||||
|
||||
### MVP Success (Go-Live + 3 เดือน)
|
||||
|
||||
| Metric | Target | วิธีวัด |
|
||||
|--------|--------|--------|
|
||||
| **RFA Cycle Time** | ≤ 5 วัน (จาก 14) | Average จาก Workflow History |
|
||||
| **User Adoption** | > 90% Login ทุกวันทำการ | System Analytics |
|
||||
| **Error Rate** | < 1% Document Number Error | Audit Log |
|
||||
| **Uptime** | ≥ 99.5% | Monitoring Dashboard |
|
||||
| **User Satisfaction** | ≥ 4.0/5.0 | Post Go-Live Survey |
|
||||
| Metric | Target | วิธีวัด |
|
||||
| --------------------- | -------------------------- | ---------------------------- |
|
||||
| **RFA Cycle Time** | ≤ 5 วัน (จาก 14) | Average จาก Workflow History |
|
||||
| **User Adoption** | > 90% Login ทุกวันทำการ | System Analytics |
|
||||
| **Error Rate** | < 1% Document Number Error | Audit Log |
|
||||
| **Uptime** | ≥ 99.5% | Monitoring Dashboard |
|
||||
| **User Satisfaction** | ≥ 4.0/5.0 | Post Go-Live Survey |
|
||||
|
||||
### Long-term Success (1 ปีหลัง Go-Live)
|
||||
|
||||
@@ -152,15 +158,15 @@ Phase 4 (12–24 เดือน) — Enterprise Scale
|
||||
|
||||
การรู้ว่าเราไม่ทำอะไรสำคัญพอกับรู้ว่าเราทำอะไร:
|
||||
|
||||
| ❌ ไม่ทำ | เหตุผล | ทางเลือก |
|
||||
|---------|-------|---------|
|
||||
| ระบบบัญชี / Finance | Out of Scope — ใช้ ERP | SAP / Oracle Integration (Phase 4) |
|
||||
| Project Scheduling (Gantt) | Domain ต่างกัน | Microsoft Project / Primavera |
|
||||
| HR / Payroll | ไม่เกี่ยวข้อง | ระบบ HR ที่มีอยู่ |
|
||||
| Mobile Native App | Phase 2+ | Web Responsive เพียงพอ ช่วงแรก |
|
||||
| Cloud SaaS | Data Sovereignty | On-Premise (ADR-005) |
|
||||
| AI Document Generation | Risk สูง ใน MVP | Phase 3 (Ollama) |
|
||||
| Real-time Video Conferencing | Out of Scope | Microsoft Teams / Zoom |
|
||||
| ❌ ไม่ทำ | เหตุผล | ทางเลือก |
|
||||
| ---------------------------- | ---------------------- | ---------------------------------- |
|
||||
| ระบบบัญชี / Finance | Out of Scope — ใช้ ERP | SAP / Oracle Integration (Phase 4) |
|
||||
| Project Scheduling (Gantt) | Domain ต่างกัน | Microsoft Project / Primavera |
|
||||
| HR / Payroll | ไม่เกี่ยวข้อง | ระบบ HR ที่มีอยู่ |
|
||||
| Mobile Native App | Phase 2+ | Web Responsive เพียงพอ ช่วงแรก |
|
||||
| Cloud SaaS | Data Sovereignty | On-Premise (ADR-005) |
|
||||
| AI Document Generation | Risk สูง ใน MVP | Phase 3 (Ollama) |
|
||||
| Real-time Video Conferencing | Out of Scope | Microsoft Teams / Zoom |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
# 📋 Stakeholder Sign-off & Risk Management — LCBP3-DMS v1.8.0
|
||||
|
||||
---
|
||||
|
||||
title: 'Stakeholder Sign-off Process & Risk Register'
|
||||
version: 1.0.0
|
||||
status: DRAFT — Awaiting Stakeholder Review
|
||||
owner: Nattanin Peancharoen (Product Owner / System Architect)
|
||||
last_updated: 2026-03-11
|
||||
related:
|
||||
- specs/01-Requirements/01-05-acceptance-criteria.md
|
||||
- specs/01-Requirements/01-04-user-stories.md
|
||||
- specs/00-Overview/00-06-training-plan.md
|
||||
- specs/06-Decision-Records/ADR-016-security-authentication.md
|
||||
|
||||
- specs/01-Requirements/01-05-acceptance-criteria.md
|
||||
- specs/01-Requirements/01-04-user-stories.md
|
||||
- specs/00-Overview/00-06-training-plan.md
|
||||
- specs/06-Decision-Records/ADR-016-security-authentication.md
|
||||
|
||||
---
|
||||
|
||||
> [!IMPORTANT]
|
||||
@@ -24,6 +27,7 @@ related:
|
||||
### 1.1 วัตถุประสงค์
|
||||
|
||||
การ Sign-off Process ทำหน้าที่:
|
||||
|
||||
1. **ยืนยัน Scope** — ทุกฝ่ายเห็นชอบ Feature ที่จะส่งมอบใน MVP
|
||||
2. **ยืนยัน UAT Criteria** — เห็นชอบเกณฑ์การพิจารณาว่า "ผ่าน" คืออะไร (อ้างอิง `01-05-acceptance-criteria.md`)
|
||||
3. **ยืนยัน Go-Live Readiness** — แต่ละองค์กรยืนยันว่าทีมพร้อม (Training, Data, User Access)
|
||||
@@ -33,14 +37,14 @@ related:
|
||||
|
||||
### 1.2 Stakeholder Registry
|
||||
|
||||
| # | Organization | บทบาทในโครงการ | บทบาทในระบบ DMS | ตัวแทน Sign-off |
|
||||
|---|-------------|--------------|----------------|----------------|
|
||||
| 1 | **กทท.** (การท่าเรือแห่งประเทศไทย) | Project Owner | System Owner, ผู้ใช้ระดับบน | TBD |
|
||||
| 2 | **สค.** (สำนักงานโครงการ) | Project Management | Org Admin, Document Control | TBD |
|
||||
| 3 | **TEAM** (ที่ปรึกษาออกแบบ) | Design Consultant | Document Control, Reviewer | TBD |
|
||||
| 4 | **คคง.** (คณะกรรมการตรวจงาน) | Construction Supervisor | Reviewer, Approver | TBD |
|
||||
| 5 | **ผรม.** (ผู้รับจ้างหลัก) | Main Contractor | Document Control, Submitter | TBD |
|
||||
| 6 | **NAP** (ผู้พัฒนาระบบ) | System Developer | Superadmin, Support | Nattanin P. |
|
||||
| # | Organization | บทบาทในโครงการ | บทบาทในระบบ DMS | ตัวแทน Sign-off |
|
||||
| --- | ---------------------------------- | ----------------------- | --------------------------- | --------------- |
|
||||
| 1 | **กทท.** (การท่าเรือแห่งประเทศไทย) | Project Owner | System Owner, ผู้ใช้ระดับบน | TBD |
|
||||
| 2 | **สค.** (สำนักงานโครงการ) | Project Management | Org Admin, Document Control | TBD |
|
||||
| 3 | **TEAM** (ที่ปรึกษาออกแบบ) | Design Consultant | Document Control, Reviewer | TBD |
|
||||
| 4 | **คคง.** (คณะกรรมการตรวจงาน) | Construction Supervisor | Reviewer, Approver | TBD |
|
||||
| 5 | **ผรม.** (ผู้รับจ้างหลัก) | Main Contractor | Document Control, Submitter | TBD |
|
||||
| 6 | **NAP** (ผู้พัฒนาระบบ) | System Developer | Superadmin, Support | Nattanin P. |
|
||||
|
||||
---
|
||||
|
||||
@@ -85,6 +89,7 @@ Go-Live ✅
|
||||
**ต้องผ่านทั้งหมดก่อน Sign-off:**
|
||||
|
||||
#### Functional Requirements
|
||||
|
||||
- [ ] AC-AUTH-001~005 ผ่าน (Authentication)
|
||||
- [ ] AC-ADMIN-001~005 ผ่าน (User & Org Management)
|
||||
- [ ] AC-CORR-001~002 ผ่าน (Correspondence Core)
|
||||
@@ -94,20 +99,24 @@ Go-Live ✅
|
||||
- [ ] AC-STOR-001 ผ่าน (File Storage + ClamAV)
|
||||
|
||||
#### Security & Compliance
|
||||
|
||||
- [ ] AC-SEC-001~005 ผ่าน (OWASP Top 10 Security)
|
||||
- [ ] AC-AUDIT-001 ผ่าน (Audit Log Coverage)
|
||||
- [ ] Penetration Test ผ่าน (Pre Go-Live)
|
||||
|
||||
#### Performance
|
||||
|
||||
- [ ] AC-PERF-001 ผ่าน (Response Time < 200ms P90)
|
||||
- [ ] AC-PERF-003 ผ่าน (Doc Number Concurrent Safe)
|
||||
|
||||
#### Operations
|
||||
|
||||
- [ ] AC-DATA-001 ผ่าน (Backup & DR Test)
|
||||
- [ ] Monitoring Stack ทำงาน (Grafana แสดง Metrics)
|
||||
- [ ] Alerting ตั้งค่าแล้ว (PagerDuty/Slack หรือ LINE)
|
||||
|
||||
#### Readiness
|
||||
|
||||
- [ ] Training ทุก Role เสร็จแล้ว (>90% Attendance)
|
||||
- [ ] User Accounts ทุกองค์กรสร้างแล้ว
|
||||
- [ ] Support LINE Group พร้อม
|
||||
@@ -118,21 +127,23 @@ Go-Live ✅
|
||||
### 1.5 🖊️ Stakeholder Sign-off Table
|
||||
|
||||
> **คำชี้แจง:** การลงนามในตารางนี้หมายถึง ตัวแทนองค์กรได้อ่าน รับทราบ และเห็นชอบกับ:
|
||||
>
|
||||
> 1. Feature Scope ของ LCBP3-DMS v1.8.0 ตามที่อธิบายใน `specs/01-Requirements/`
|
||||
> 2. Acceptance Criteria ตามที่กำหนดใน `01-05-acceptance-criteria.md`
|
||||
> 3. Risk Register และ Mitigation Plan ในเอกสารนี้ (ส่วนที่ 2)
|
||||
> 4. ยืนยันว่าทีมงานขององค์กรได้รับการ Training และพร้อม Go-Live
|
||||
|
||||
| Organization | ตัวแทน | ตำแหน่ง | ลายมือชื่อ | วันที่ | หมายเหตุ |
|
||||
|-------------|--------|---------|----------|-------|---------|
|
||||
| **กทท.** | | | | | |
|
||||
| **สค.** | | | | | |
|
||||
| **TEAM** | | | | | |
|
||||
| **คคง.** | | | | | |
|
||||
| **ผรม.** | | | | | |
|
||||
| **NAP** | Nattanin P. | System Architect | | | |
|
||||
| Organization | ตัวแทน | ตำแหน่ง | ลายมือชื่อ | วันที่ | หมายเหตุ |
|
||||
| ------------ | ----------- | ---------------- | ---------- | ------ | -------- |
|
||||
| **กทท.** | | | | | |
|
||||
| **สค.** | | | | | |
|
||||
| **TEAM** | | | | | |
|
||||
| **คคง.** | | | | | |
|
||||
| **ผรม.** | | | | | |
|
||||
| **NAP** | Nattanin P. | System Architect | | | |
|
||||
|
||||
**เงื่อนไข Go-Live:**
|
||||
|
||||
- ต้องได้รับ Sign-off จากอย่างน้อย **4 จาก 5 องค์กร** (กทท., สค., TEAM, คคง./ผรม. อย่างน้อย 1)
|
||||
- กทท. **ต้องลงนาม** ในฐานะ Project Owner (Mandatory)
|
||||
- หาก < 4 ลายเซ็น → ต้องนัด Emergency Review ก่อน Go-Live
|
||||
@@ -143,9 +154,9 @@ Go-Live ✅
|
||||
|
||||
> เพิ่ม Issues ที่พบระหว่าง UAT ที่นี่ ก่อน Sign-off
|
||||
|
||||
| # | Issue | Priority | หน่วยงานที่พบ | Status | Resolution / Timeline |
|
||||
|---|-------|---------|--------------|--------|----------------------|
|
||||
| — | *ยังไม่มี Issue (UAT ยังไม่เริ่ม)* | — | — | — | — |
|
||||
| # | Issue | Priority | หน่วยงานที่พบ | Status | Resolution / Timeline |
|
||||
| --- | ---------------------------------- | -------- | ------------- | ------ | --------------------- |
|
||||
| — | _ยังไม่มี Issue (UAT ยังไม่เริ่ม)_ | — | — | — | — |
|
||||
|
||||
---
|
||||
|
||||
@@ -164,12 +175,12 @@ Go-Live ✅
|
||||
🔴 C = Critical 🟠 H = High 🟡 M = Medium 🟢 L = Low
|
||||
```
|
||||
|
||||
| Level | Action Required |
|
||||
|-------|----------------|
|
||||
| 🔴 Critical | แก้ก่อน Go-Live — Blocker |
|
||||
| 🟠 High | ต้องมี Mitigation Plan ก่อน Go-Live |
|
||||
| 🟡 Medium | ต้องมี Contingency Plan |
|
||||
| 🟢 Low | Monitor + Document |
|
||||
| Level | Action Required |
|
||||
| ----------- | ----------------------------------- |
|
||||
| 🔴 Critical | แก้ก่อน Go-Live — Blocker |
|
||||
| 🟠 High | ต้องมี Mitigation Plan ก่อน Go-Live |
|
||||
| 🟡 Medium | ต้องมี Contingency Plan |
|
||||
| 🟢 Low | Monitor + Document |
|
||||
|
||||
---
|
||||
|
||||
@@ -181,21 +192,23 @@ Go-Live ✅
|
||||
|
||||
**RISK-001: ผู้ใช้ปฏิเสธการเปลี่ยนแปลง (User Adoption Failure)**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | People / Change Management |
|
||||
| **Probability** | สูง (3) — คนที่คุ้นชิน Email มักต้านระบบใหม่ |
|
||||
| **Impact** | วิกฤต (4) — ระบบดีแค่ไหนก็ไร้ประโยชน์ถ้าคนไม่ใช้ |
|
||||
| **Level** | 🔴 Critical (3×4=12) |
|
||||
| Attribute | Detail |
|
||||
| ----------------- | ------------------------------------------------------- |
|
||||
| **Category** | People / Change Management |
|
||||
| **Probability** | สูง (3) — คนที่คุ้นชิน Email มักต้านระบบใหม่ |
|
||||
| **Impact** | วิกฤต (4) — ระบบดีแค่ไหนก็ไร้ประโยชน์ถ้าคนไม่ใช้ |
|
||||
| **Level** | 🔴 Critical (3×4=12) |
|
||||
| **Trigger Signs** | Login Rate < 50% ในสัปดาห์แรก, Support Tickets > 30/วัน |
|
||||
|
||||
**Mitigation (ก่อน Go-Live):**
|
||||
|
||||
- Training ทุก Role ครบตาม `00-06-training-plan.md`
|
||||
- Train-the-Trainer ทุกองค์กร (Internal Champion)
|
||||
- Demo Session ก่อน Go-Live: แสดงว่าระบบช่วยลดงานจริง
|
||||
- ผู้บริหารทุกองค์กร Endorse การใช้ระบบใหม่อย่างเป็นทางการ
|
||||
|
||||
**Contingency (ถ้าเกิดขึ้น):**
|
||||
|
||||
- Hypercare Period: เพิ่ม NAP On-site Support 1 สัปดาห์แรก
|
||||
- "Buddy System": Internal Trainer นั่งข้างๆ User ใหม่ 2-3 วันแรก
|
||||
- Quick Win Campaign: รางวัล/การยอมรับสำหรับ "First 10 Submitters"
|
||||
@@ -206,21 +219,23 @@ Go-Live ✅
|
||||
|
||||
**RISK-002: Data Migration Legacy ผิดพลาดหรือล่าช้า**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Technical / Data |
|
||||
| **Probability** | สูง (3) — ข้อมูลเก่ามักมี Format ไม่สม่ำเสมอ |
|
||||
| **Impact** | สูง (3) — เอกสารเก่าหาย/ผิด → ความน่าเชื่อถือระบบลดลง |
|
||||
| **Level** | 🔴 Critical (3×3=9) |
|
||||
| Attribute | Detail |
|
||||
| ----------------- | ------------------------------------------------------- |
|
||||
| **Category** | Technical / Data |
|
||||
| **Probability** | สูง (3) — ข้อมูลเก่ามักมี Format ไม่สม่ำเสมอ |
|
||||
| **Impact** | สูง (3) — เอกสารเก่าหาย/ผิด → ความน่าเชื่อถือระบบลดลง |
|
||||
| **Level** | 🔴 Critical (3×3=9) |
|
||||
| **Trigger Signs** | Migration Error Rate > 5%, Duration > กำหนด + 2 สัปดาห์ |
|
||||
|
||||
**Mitigation (ก่อน Go-Live):**
|
||||
|
||||
- กำหนด Legacy Data Scope ที่ชัดเจน (ดู Gap 7): วันที่เริ่มต้น, ประเภทเอกสาร
|
||||
- Test Migration บน Staging ก่อน (Dry Run 3 รอบ)
|
||||
- Validation Script ตรวจ Record Count + Sample Check หลัง Migrate
|
||||
- เก็บ Legacy System ไว้ Read-only อย่างน้อย 3 เดือน
|
||||
|
||||
**Contingency (ถ้าเกิดขึ้น):**
|
||||
|
||||
- Rollback Plan: เปิด Legacy System กลับมา Operate แบบ Parallel
|
||||
- Manual Entry Team: กำหนดทีม Manual Key-in เอกสาร Critical ที่ Migrate ไม่ได้
|
||||
- Timeline Extension: เลื่อน Go-Live ได้สูงสุด 4 สัปดาห์ ถ้า Migration ล้มเหลว > 20%
|
||||
@@ -231,15 +246,16 @@ Go-Live ✅
|
||||
|
||||
**RISK-003: Security Breach / Unauthorized Access**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Security |
|
||||
| **Probability** | ต่ำ (1) — Internal Network, Authentication แข็ง |
|
||||
| **Impact** | วิกฤต (4) — ข้อมูลโครงการ Confidential รั่วไหล |
|
||||
| **Level** | 🟠 High (1×4=4) → **ยก Priority เพราะ Impact สูงมาก** |
|
||||
| Attribute | Detail |
|
||||
| ----------------- | --------------------------------------------------------------- |
|
||||
| **Category** | Security |
|
||||
| **Probability** | ต่ำ (1) — Internal Network, Authentication แข็ง |
|
||||
| **Impact** | วิกฤต (4) — ข้อมูลโครงการ Confidential รั่วไหล |
|
||||
| **Level** | 🟠 High (1×4=4) → **ยก Priority เพราะ Impact สูงมาก** |
|
||||
| **Trigger Signs** | Failed Login Spike, Unauthorized 403 Burst, File Access Anomaly |
|
||||
|
||||
**Mitigation (ก่อน Go-Live):**
|
||||
|
||||
- Penetration Test โดยทีมภายนอก ก่อน Go-Live
|
||||
- Security Checklist `ADR-016` ผ่านทั้งหมด
|
||||
- ClamAV Virus Scan ทุกไฟล์อัปโหลด
|
||||
@@ -247,6 +263,7 @@ Go-Live ✅
|
||||
- JWT + CASL RBAC + Helmet.js + Rate Limiting ครบ
|
||||
|
||||
**Contingency (ถ้าเกิดขึ้น):**
|
||||
|
||||
- Incident Response Plan: ปิดระบบ + แจ้ง กทท. ภายใน 1 ชั่วโมง
|
||||
- Audit Log ทุก Access → ตรวจ Forensics ได้
|
||||
- Password Reset Force ทุก User ที่อาจได้รับผลกระทบ
|
||||
@@ -262,21 +279,23 @@ Go-Live ✅
|
||||
|
||||
**RISK-004: Infrastructure Downtime (QNAP / Docker)**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Infrastructure / Operations |
|
||||
| **Probability** | กลาง (2) — Hardware ล้มเหลวได้ |
|
||||
| **Impact** | สูง (3) — ระบบใช้งานไม่ได้ ส่งผลต่อ Deadline เอกสาร |
|
||||
| **Level** | 🟠 High (2×3=6) |
|
||||
| **Trigger Signs** | Uptime Alert < 99.5%, Container Crash, Disk Full |
|
||||
| Attribute | Detail |
|
||||
| ----------------- | --------------------------------------------------- |
|
||||
| **Category** | Infrastructure / Operations |
|
||||
| **Probability** | กลาง (2) — Hardware ล้มเหลวได้ |
|
||||
| **Impact** | สูง (3) — ระบบใช้งานไม่ได้ ส่งผลต่อ Deadline เอกสาร |
|
||||
| **Level** | 🟠 High (2×3=6) |
|
||||
| **Trigger Signs** | Uptime Alert < 99.5%, Container Crash, Disk Full |
|
||||
|
||||
**Mitigation:**
|
||||
|
||||
- Docker Health Check + Auto-restart Policy ทุก Container
|
||||
- Monitoring: Prometheus + Grafana Alerts (Slack/LINE)
|
||||
- Database Backup ทุกวัน (MariaDB Dump + Volume Snapshot)
|
||||
- RTO < 4 ชั่วโมง, RPO < 1 ชั่วโมง ตาม ADR-015
|
||||
|
||||
**Contingency:**
|
||||
|
||||
- ASUSTOR NAS พร้อม Rollover ถ้า QNAP ล้ม (Manual Process)
|
||||
- Runbook: `specs/04-Infrastructure-OPS/` สำหรับ Common Failure Scenarios
|
||||
- Emergency Contact: ทีม QNAP Support + NAP On-call
|
||||
@@ -287,21 +306,23 @@ Go-Live ✅
|
||||
|
||||
**RISK-005: Workflow DSL Configuration ผิดพลาด**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Technical / Configuration |
|
||||
| **Probability** | กลาง (2) — DSL ซับซ้อน, Config เยอะ |
|
||||
| **Impact** | สูง (3) — Workflow เดินผิด → เอกสารติดอยู่ในระบบ |
|
||||
| **Level** | 🟠 High (2×3=6) |
|
||||
| Attribute | Detail |
|
||||
| ----------------- | ----------------------------------------------------------- |
|
||||
| **Category** | Technical / Configuration |
|
||||
| **Probability** | กลาง (2) — DSL ซับซ้อน, Config เยอะ |
|
||||
| **Impact** | สูง (3) — Workflow เดินผิด → เอกสารติดอยู่ในระบบ |
|
||||
| **Level** | 🟠 High (2×3=6) |
|
||||
| **Trigger Signs** | Workflow State ไม่เปลี่ยน, User ร้องเรียนว่า Approve ไม่ได้ |
|
||||
|
||||
**Mitigation:**
|
||||
|
||||
- UAT ทดสอบ Workflow ทุก Document Type จนครบ (ตาม AC-WF-001~006)
|
||||
- Force Proceed สำหรับ Document Control เป็น Safety Valve
|
||||
- Workflow DSL ถูก Version Control (Git) → Rollback ได้
|
||||
- Unit Test ครอบคลุม Transition ทุก State ใน DSL
|
||||
|
||||
**Contingency:**
|
||||
|
||||
- Force Proceed: Document Control ข้าม Step ที่ติดขัดได้ทันที
|
||||
- Admin สามารถ Edit Workflow Definition + Force Re-evaluate ได้
|
||||
- Hotfix Deploy ภายใน 24 ชั่วโมง สำหรับ Bug Priority P1
|
||||
@@ -312,21 +333,23 @@ Go-Live ✅
|
||||
|
||||
**RISK-006: Document Number Duplication (Race Condition)**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Technical / Data Integrity |
|
||||
| **Probability** | ต่ำ (1) — Redis Redlock + Optimistic Lock ป้องกัน |
|
||||
| **Impact** | วิกฤต (4) — เลขซ้ำทำให้ระบบไม่น่าเชื่อถือ |
|
||||
| **Level** | 🟠 High (1×4=4) |
|
||||
| **Trigger Signs** | Duplicate Key Error ใน Document Numbering Log |
|
||||
| Attribute | Detail |
|
||||
| ----------------- | ------------------------------------------------- |
|
||||
| **Category** | Technical / Data Integrity |
|
||||
| **Probability** | ต่ำ (1) — Redis Redlock + Optimistic Lock ป้องกัน |
|
||||
| **Impact** | วิกฤต (4) — เลขซ้ำทำให้ระบบไม่น่าเชื่อถือ |
|
||||
| **Level** | 🟠 High (1×4=4) |
|
||||
| **Trigger Signs** | Duplicate Key Error ใน Document Numbering Log |
|
||||
|
||||
**Mitigation:**
|
||||
|
||||
- Redis Redlock + DB Optimistic Locking (ADR-002)
|
||||
- Two-Phase Commit (Reserve → Confirm)
|
||||
- Load Test: 50 concurrent requests → Assert ไม่มี Duplicate (AC-PERF-003)
|
||||
- Unique Constraint ระดับ DB เป็น Last Resort
|
||||
|
||||
**Contingency:**
|
||||
|
||||
- DB Constraint ป้องกัน Record Duplicate จาก SQL Level
|
||||
- Audit Log บันทึกทุก Operation → ตรวจสอบและ Correct ได้
|
||||
- Admin API: Void + Re-issue เลขที่ผิดพลาด
|
||||
@@ -341,12 +364,12 @@ Go-Live ✅
|
||||
|
||||
**RISK-007: Email / LINE Notification Delivery Failure**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Integration |
|
||||
| Attribute | Detail |
|
||||
| --------------- | --------------------------------------------- |
|
||||
| **Category** | Integration |
|
||||
| **Probability** | กลาง (2) — Email Server / LINE API อาจมีปัญหา |
|
||||
| **Impact** | ปานกลาง (2) — User ไม่รู้มีงาน → Delay |
|
||||
| **Level** | 🟡 Medium (2×2=4) |
|
||||
| **Impact** | ปานกลาง (2) — User ไม่รู้มีงาน → Delay |
|
||||
| **Level** | 🟡 Medium (2×2=4) |
|
||||
|
||||
**Mitigation:** BullMQ Retry 3 ครั้ง + Dead Letter Queue + In-App Notification Fallback
|
||||
|
||||
@@ -358,12 +381,12 @@ Go-Live ✅
|
||||
|
||||
**RISK-008: Search Index Out of Sync (Elasticsearch)**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Technical |
|
||||
| **Probability** | กลาง (2) — Index lag เกิดได้ |
|
||||
| **Impact** | ปานกลาง (2) — ค้นหาไม่เห็นเอกสารใหม่ชั่วคราว |
|
||||
| **Level** | 🟡 Medium (2×2=4) |
|
||||
| Attribute | Detail |
|
||||
| --------------- | -------------------------------------------- |
|
||||
| **Category** | Technical |
|
||||
| **Probability** | กลาง (2) — Index lag เกิดได้ |
|
||||
| **Impact** | ปานกลาง (2) — ค้นหาไม่เห็นเอกสารใหม่ชั่วคราว |
|
||||
| **Level** | 🟡 Medium (2×2=4) |
|
||||
|
||||
**Mitigation:** Eventual Consistency — Index ทันที หลัง Document Submit (BullMQ Job)
|
||||
|
||||
@@ -375,19 +398,21 @@ Go-Live ✅
|
||||
|
||||
**RISK-009: Scope Creep จาก Stakeholders ระหว่าง UAT**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Project Management |
|
||||
| Attribute | Detail |
|
||||
| --------------- | ---------------------------------------------- |
|
||||
| **Category** | Project Management |
|
||||
| **Probability** | สูง (3) — UAT มักทำให้เห็น Feature ใหม่ที่อยาก |
|
||||
| **Impact** | ปานกลาง (2) — Delay Go-Live ถ้าไม่จัดการ |
|
||||
| **Level** | 🟡 Medium (3×2=6) |
|
||||
| **Impact** | ปานกลาง (2) — Delay Go-Live ถ้าไม่จัดการ |
|
||||
| **Level** | 🟡 Medium (3×2=6) |
|
||||
|
||||
**Mitigation:**
|
||||
|
||||
- ใช้ Acceptance Criteria (`01-05`) เป็น Scope Gate — ถ้าไม่อยู่ใน AC → Phase 2
|
||||
- Change Request Process: ทุก Change Request ต้องผ่าน PO Review ก่อน Accept
|
||||
- "Parking Lot" List สำหรับ Feature ที่ดีแต่ไม่ใช่ MVP
|
||||
|
||||
**Contingency:**
|
||||
|
||||
- Emergency Change: กรณีที่ Change มีผล Business Critical → PO + กทท. ตัดสิน
|
||||
- Timeline Extension: ≤ 2 สัปดาห์ สำหรับ Critical Change ที่ทุกฝ่ายเห็นชอบ
|
||||
|
||||
@@ -397,12 +422,12 @@ Go-Live ✅
|
||||
|
||||
**RISK-010: Third-party Service Dependency (ClamAV / Redis / Elasticsearch)**
|
||||
|
||||
| Attribute | Detail |
|
||||
|-----------|--------|
|
||||
| **Category** | Technical / Infrastructure |
|
||||
| Attribute | Detail |
|
||||
| --------------- | -------------------------------------- |
|
||||
| **Category** | Technical / Infrastructure |
|
||||
| **Probability** | ต่ำ (1) — On-Premise, ไม่ขึ้น Internet |
|
||||
| **Impact** | สูง (3) — ระบบส่วนหนึ่งหยุดทำงาน |
|
||||
| **Level** | 🟡 Medium (1×3=3) |
|
||||
| **Impact** | สูง (3) — ระบบส่วนหนึ่งหยุดทำงาน |
|
||||
| **Level** | 🟡 Medium (1×3=3) |
|
||||
|
||||
**Mitigation:** Circuit Breaker Pattern — ถ้า Service รอง (Search, Notification) ล่ม → Core CRUD ทำงานต่อ (Graceful Degradation)
|
||||
|
||||
@@ -414,31 +439,31 @@ Go-Live ✅
|
||||
|
||||
#### 🟢 LOW — Monitor & Document
|
||||
|
||||
| Risk | Description | Owner |
|
||||
|------|-------------|-------|
|
||||
| **RISK-011** | ClamAV False Positive — ปฏิเสธไฟล์ปกติ | Nattanin (Whitelist Update) |
|
||||
| **RISK-012** | Browser Compatibility — ระบบไม่ทำงานบน IE/Old Safari | Nattanin (Modern Browser Policy) |
|
||||
| **RISK-013** | Large File Upload Timeout (>100MB) | Nattanin (Nginx Timeout Config) |
|
||||
| **RISK-014** | User กรอกข้อมูลผิด Format แล้วเข้าใจผิดว่าระบบ Bug | Training (FAQ ข้อที่พบบ่อย) |
|
||||
| **RISK-015** | Monitoring Stack (Grafana) ล่มทำให้ไม่เห็น Metrics | Nattanin (Alert ผ่าน Uptime Kuma) |
|
||||
| Risk | Description | Owner |
|
||||
| ------------ | ---------------------------------------------------- | --------------------------------- |
|
||||
| **RISK-011** | ClamAV False Positive — ปฏิเสธไฟล์ปกติ | Nattanin (Whitelist Update) |
|
||||
| **RISK-012** | Browser Compatibility — ระบบไม่ทำงานบน IE/Old Safari | Nattanin (Modern Browser Policy) |
|
||||
| **RISK-013** | Large File Upload Timeout (>100MB) | Nattanin (Nginx Timeout Config) |
|
||||
| **RISK-014** | User กรอกข้อมูลผิด Format แล้วเข้าใจผิดว่าระบบ Bug | Training (FAQ ข้อที่พบบ่อย) |
|
||||
| **RISK-015** | Monitoring Stack (Grafana) ล่มทำให้ไม่เห็น Metrics | Nattanin (Alert ผ่าน Uptime Kuma) |
|
||||
|
||||
---
|
||||
|
||||
### 2.3 Risk Summary Dashboard
|
||||
|
||||
| Risk ID | Description | Level | Owner | Status |
|
||||
|---------|-------------|-------|-------|--------|
|
||||
| RISK-001 | User Adoption Failure | 🔴 Critical | NAP + Trainers | 🔄 Mitigating |
|
||||
| RISK-002 | Data Migration Error | 🔴 Critical | NAP + สค. | 🔄 Mitigating |
|
||||
| RISK-003 | Security Breach | 🔴 Critical→🟠 High | NAP + กทท. IT | 🔄 Mitigating |
|
||||
| RISK-004 | Infrastructure Downtime | 🟠 High | NAP + กทท. IT | 🔄 Mitigating |
|
||||
| RISK-005 | Workflow Config Error | 🟠 High | NAP | ✅ AC Test Coverage |
|
||||
| RISK-006 | Doc Number Duplicate | 🟠 High | NAP | ✅ Load Test + DB Constraint |
|
||||
| RISK-007 | Notification Failure | 🟡 Medium | NAP | ✅ BullMQ Retry + Fallback |
|
||||
| RISK-008 | ES Index Out of Sync | 🟡 Medium | NAP | ✅ Eventual Consistency |
|
||||
| RISK-009 | Scope Creep | 🟡 Medium | NAP (PO) | 🔄 AC as Gate |
|
||||
| RISK-010 | 3rd Party Service Failure | 🟡 Medium | NAP | ✅ Graceful Degradation |
|
||||
| RISK-011~015 | Low Risks (5 items) | 🟢 Low | NAP | 📋 Documented |
|
||||
| Risk ID | Description | Level | Owner | Status |
|
||||
| ------------ | ------------------------- | ------------------- | -------------- | ---------------------------- |
|
||||
| RISK-001 | User Adoption Failure | 🔴 Critical | NAP + Trainers | 🔄 Mitigating |
|
||||
| RISK-002 | Data Migration Error | 🔴 Critical | NAP + สค. | 🔄 Mitigating |
|
||||
| RISK-003 | Security Breach | 🔴 Critical→🟠 High | NAP + กทท. IT | 🔄 Mitigating |
|
||||
| RISK-004 | Infrastructure Downtime | 🟠 High | NAP + กทท. IT | 🔄 Mitigating |
|
||||
| RISK-005 | Workflow Config Error | 🟠 High | NAP | ✅ AC Test Coverage |
|
||||
| RISK-006 | Doc Number Duplicate | 🟠 High | NAP | ✅ Load Test + DB Constraint |
|
||||
| RISK-007 | Notification Failure | 🟡 Medium | NAP | ✅ BullMQ Retry + Fallback |
|
||||
| RISK-008 | ES Index Out of Sync | 🟡 Medium | NAP | ✅ Eventual Consistency |
|
||||
| RISK-009 | Scope Creep | 🟡 Medium | NAP (PO) | 🔄 AC as Gate |
|
||||
| RISK-010 | 3rd Party Service Failure | 🟡 Medium | NAP | ✅ Graceful Degradation |
|
||||
| RISK-011~015 | Low Risks (5 items) | 🟢 Low | NAP | 📋 Documented |
|
||||
|
||||
---
|
||||
|
||||
@@ -472,43 +497,48 @@ Go-Live:
|
||||
|
||||
### 3.1 Change Request Types
|
||||
|
||||
| Type | ตัวอย่าง | ผู้อนุมัติ | Timeline |
|
||||
|------|---------|----------|---------|
|
||||
| **Emergency Fix** | Security Bug, System Down | NAP PO + กทท. | < 4 ชั่วโมง |
|
||||
| **Critical Change** | Business Rule ผิดพลาด Critical | NAP PO + 2 Stakeholders | < 2 วัน |
|
||||
| **Standard Change** | UI Improvement, Minor Feature | NAP PO | Sprint (2 สัปดาห์) |
|
||||
| **Phase Change** | Feature ใหม่นอก MVP Scope | NAP PO + ทุกองค์กร | Phase 2 Planning |
|
||||
| Type | ตัวอย่าง | ผู้อนุมัติ | Timeline |
|
||||
| ------------------- | ------------------------------ | ----------------------- | ------------------ |
|
||||
| **Emergency Fix** | Security Bug, System Down | NAP PO + กทท. | < 4 ชั่วโมง |
|
||||
| **Critical Change** | Business Rule ผิดพลาด Critical | NAP PO + 2 Stakeholders | < 2 วัน |
|
||||
| **Standard Change** | UI Improvement, Minor Feature | NAP PO | Sprint (2 สัปดาห์) |
|
||||
| **Phase Change** | Feature ใหม่นอก MVP Scope | NAP PO + ทุกองค์กร | Phase 2 Planning |
|
||||
|
||||
### 3.2 Change Request Form (Template)
|
||||
|
||||
```markdown
|
||||
## Change Request #[CR-XXX]
|
||||
|
||||
**วันที่:**
|
||||
**ผู้ขอ:**
|
||||
**Organization:**
|
||||
**วันที่:**
|
||||
**ผู้ขอ:**
|
||||
**Organization:**
|
||||
**Priority:** Emergency / Critical / Standard
|
||||
|
||||
### คำอธิบาย
|
||||
|
||||
[อธิบายการเปลี่ยนแปลงที่ต้องการ]
|
||||
|
||||
### เหตุผลธุรกิจ
|
||||
|
||||
[ทำไมต้องเปลี่ยน? ผลกระทบถ้าไม่เปลี่ยน?]
|
||||
|
||||
### Acceptance Criteria ของ Change นี้
|
||||
|
||||
[เกณฑ์การ "Done" ของ Change นี้]
|
||||
|
||||
### Impact Assessment
|
||||
- ผลกระทบต่อ Features อื่น:
|
||||
|
||||
- ผลกระทบต่อ Features อื่น:
|
||||
- ผลกระทบต่อ Timeline:
|
||||
- RP&DO (Risk):
|
||||
- RP&DO (Risk):
|
||||
|
||||
### Decision
|
||||
- [ ] Approved → Sprint: ___
|
||||
- [ ] Deferred → Phase: ___
|
||||
- [ ] Rejected → เหตุผล: ___
|
||||
|
||||
**Approved by:** _______________ Date: ___________
|
||||
- [ ] Approved → Sprint: \_\_\_
|
||||
- [ ] Deferred → Phase: \_\_\_
|
||||
- [ ] Rejected → เหตุผล: \_\_\_
|
||||
|
||||
**Approved by:** ******\_\_\_****** Date: ****\_\_\_****
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
# 📊 KPI Baseline Data & Measurement Plan — LCBP3-DMS v1.8.0
|
||||
|
||||
---
|
||||
|
||||
title: 'KPI Baseline Data, Measurement Methodology, and Success Tracking'
|
||||
version: 1.0.0
|
||||
status: DRAFT — Baseline Collection Pending
|
||||
owner: Nattanin Peancharoen (Product Owner)
|
||||
last_updated: 2026-03-11
|
||||
related:
|
||||
- specs/00-Overview/00-03-product-vision.md
|
||||
- specs/00-Overview/README.md
|
||||
- specs/01-Requirements/01-05-acceptance-criteria.md
|
||||
- specs/00-Overview/00-04-stakeholder-signoff-and-risk.md
|
||||
|
||||
- specs/00-Overview/00-03-product-vision.md
|
||||
- specs/00-Overview/README.md
|
||||
- specs/01-Requirements/01-05-acceptance-criteria.md
|
||||
- specs/00-Overview/00-04-stakeholder-signoff-and-risk.md
|
||||
|
||||
---
|
||||
|
||||
> [!IMPORTANT]
|
||||
@@ -27,36 +30,38 @@ Business Goal → Success Metric → KPI → Baseline → Target → Measurement
|
||||
|
||||
### Category ของ KPIs
|
||||
|
||||
| Category | วัดอะไร | Primary Audience |
|
||||
|----------|--------|----------------|
|
||||
| **Efficiency** | ลดเวลาและลดงานซ้ำซ้อน | PM, ผู้บริหาร |
|
||||
| **Data Quality** | ความถูกต้องและสมบูรณ์ของข้อมูล | Document Control |
|
||||
| **Adoption** | การใช้งานระบบจริง | PO, IT |
|
||||
| **System Performance** | ความเสถียรและความเร็ว | Dev, IT |
|
||||
| **User Satisfaction** | ความพึงพอใจของผู้ใช้ | PO, Management |
|
||||
| **Security/Compliance** | ความปลอดภัยและการตรวจสอบ | กทท., Auditor |
|
||||
| Category | วัดอะไร | Primary Audience |
|
||||
| ----------------------- | ------------------------------ | ---------------- |
|
||||
| **Efficiency** | ลดเวลาและลดงานซ้ำซ้อน | PM, ผู้บริหาร |
|
||||
| **Data Quality** | ความถูกต้องและสมบูรณ์ของข้อมูล | Document Control |
|
||||
| **Adoption** | การใช้งานระบบจริง | PO, IT |
|
||||
| **System Performance** | ความเสถียรและความเร็ว | Dev, IT |
|
||||
| **User Satisfaction** | ความพึงพอใจของผู้ใช้ | PO, Management |
|
||||
| **Security/Compliance** | ความปลอดภัยและการตรวจสอบ | กทท., Auditor |
|
||||
|
||||
---
|
||||
|
||||
## 2. 📋 KPI Register พร้อม Baseline
|
||||
|
||||
### KPI-EFF-001: RFA Cycle Time (วัฏจักรอนุมัติ)
|
||||
|
||||
**Category:** Efficiency | **Priority:** 🔴 Critical
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | เวลาเฉลี่ยตั้งแต่ Contractor ส่ง RFA จนถึงได้รับคำตอบสุดท้าย |
|
||||
| **หน่วย** | วัน (Calendar Days) |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — ประมาณ 14–21 วัน (จาก Email เดิม) |
|
||||
| **Target (Month 1)** | ≤ 7 วัน |
|
||||
| **Target (Month 3)** | ≤ 5 วัน |
|
||||
| **Target (Month 6)** | ≤ 3 วัน |
|
||||
| **วิธีเก็บ Baseline** | Analyze Email Thread: วัน Submit Email → วัน Reply สุดท้าย (30 RFAs ล่าสุด) |
|
||||
| Attribute | Value |
|
||||
| ----------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
||||
| **คำอธิบาย** | เวลาเฉลี่ยตั้งแต่ Contractor ส่ง RFA จนถึงได้รับคำตอบสุดท้าย |
|
||||
| **หน่วย** | วัน (Calendar Days) |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — ประมาณ 14–21 วัน (จาก Email เดิม) |
|
||||
| **Target (Month 1)** | ≤ 7 วัน |
|
||||
| **Target (Month 3)** | ≤ 5 วัน |
|
||||
| **Target (Month 6)** | ≤ 3 วัน |
|
||||
| **วิธีเก็บ Baseline** | Analyze Email Thread: วัน Submit Email → วัน Reply สุดท้าย (30 RFAs ล่าสุด) |
|
||||
| **วิธีวัดหลัง Go-Live** | `SELECT AVG(DATEDIFF(closed_date, submitted_date)) FROM workflow_instances WHERE type='RFA' AND status='CLOSED'` |
|
||||
| **Frequency** | Monthly Report |
|
||||
| **Owner** | PO + สค. (Data Collection) |
|
||||
| **Frequency** | Monthly Report |
|
||||
| **Owner** | PO + สค. (Data Collection) |
|
||||
|
||||
**ข้อมูล Baseline ที่ต้องเก็บ:**
|
||||
|
||||
```
|
||||
แบบฟอร์ม Baseline RFA:
|
||||
- เลขที่ RFA (เดิม):
|
||||
@@ -71,133 +76,142 @@ Business Goal → Success Metric → KPI → Baseline → Target → Measurement
|
||||
---
|
||||
|
||||
### KPI-EFF-002: Document Number Error Rate
|
||||
|
||||
**Category:** Efficiency + Data Quality | **Priority:** 🔴 Critical
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | % ของเลขเอกสารที่ผิดพลาด (ซ้ำ, ผิด Format, ต้องยกเลิกและออกใหม่) |
|
||||
| **หน่วย** | % จากเอกสารทั้งหมดที่ออกในเดือนนั้น |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — ประมาณ 5–15% (จากการนับมือ) |
|
||||
| **Target** | 0% (Zero Tolerance — ระบบ Auto-Number) |
|
||||
| **วิธีเก็บ Baseline** | สัมภาษณ์ Document Control แต่ละองค์กร + นับจากเอกสาร 3 เดือนล่าสุด |
|
||||
| Attribute | Value |
|
||||
| ----------------------- | ------------------------------------------------------------------------ |
|
||||
| **คำอธิบาย** | % ของเลขเอกสารที่ผิดพลาด (ซ้ำ, ผิด Format, ต้องยกเลิกและออกใหม่) |
|
||||
| **หน่วย** | % จากเอกสารทั้งหมดที่ออกในเดือนนั้น |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — ประมาณ 5–15% (จากการนับมือ) |
|
||||
| **Target** | 0% (Zero Tolerance — ระบบ Auto-Number) |
|
||||
| **วิธีเก็บ Baseline** | สัมภาษณ์ Document Control แต่ละองค์กร + นับจากเอกสาร 3 เดือนล่าสุด |
|
||||
| **วิธีวัดหลัง Go-Live** | Count `document_number_reservations.status = 'CANCELLED'` / Total Issued |
|
||||
| **Frequency** | Monthly |
|
||||
| **Owner** | Document Control (Baseline) + System (Auto-measure) |
|
||||
| **Frequency** | Monthly |
|
||||
| **Owner** | Document Control (Baseline) + System (Auto-measure) |
|
||||
|
||||
---
|
||||
|
||||
### KPI-EFF-003: Time to Find Document (ค้นหาเอกสาร)
|
||||
|
||||
**Category:** Efficiency | **Priority:** 🟠 High
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | เวลาเฉลี่ยที่ใช้ค้นหาเอกสารที่ต้องการ |
|
||||
| **หน่วย** | นาที |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — ประมาณ 15–30 นาที (ผ่าน Email/Drive แบบเดิม) |
|
||||
| **Target** | < 1 นาที (ผ่าน Elasticsearch) |
|
||||
| **วิธีเก็บ Baseline** | User Survey + Observation: จับเวลาค้นหาเอกสาร 5 ครั้ง × 5 User |
|
||||
| **วิธีวัดหลัง Go-Live** | Search Response Time จาก Elasticsearch API Metrics + User Survey |
|
||||
| **Frequency** | Quarterly Survey + Continuous System Metric |
|
||||
| **Owner** | PO |
|
||||
| Attribute | Value |
|
||||
| ----------------------- | ------------------------------------------------------------------ |
|
||||
| **คำอธิบาย** | เวลาเฉลี่ยที่ใช้ค้นหาเอกสารที่ต้องการ |
|
||||
| **หน่วย** | นาที |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — ประมาณ 15–30 นาที (ผ่าน Email/Drive แบบเดิม) |
|
||||
| **Target** | < 1 นาที (ผ่าน Elasticsearch) |
|
||||
| **วิธีเก็บ Baseline** | User Survey + Observation: จับเวลาค้นหาเอกสาร 5 ครั้ง × 5 User |
|
||||
| **วิธีวัดหลัง Go-Live** | Search Response Time จาก Elasticsearch API Metrics + User Survey |
|
||||
| **Frequency** | Quarterly Survey + Continuous System Metric |
|
||||
| **Owner** | PO |
|
||||
|
||||
---
|
||||
|
||||
### KPI-EFF-004: Manual Follow-up Calls Reduction
|
||||
|
||||
**Category:** Efficiency | **Priority:** 🟠 High
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | จำนวนครั้งที่ต้องโทร/Line เพื่อถามสถานะเอกสารต่อสัปดาห์ |
|
||||
| **หน่วย** | ครั้ง/สัปดาห์ (per Document Control) |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — บันทึก 2 สัปดาห์ก่อน Go-Live |
|
||||
| **Target** | ลดลง > 80% (Real-time tracking ช่วย) |
|
||||
| **วิธีเก็บ Baseline** | Document Control บันทึกจำนวน Follow-up Calls ต่อวัน 2 สัปดาห์ก่อน Go-Live |
|
||||
| **วิธีวัดหลัง Go-Live** | Survey (Month 1, Month 3): "สัปดาห์ที่ผ่านมาโทรถามสถานะเอกสารกี่ครั้ง?" |
|
||||
| **Frequency** | Monthly Survey |
|
||||
| **Owner** | PO + Document Control |
|
||||
| Attribute | Value |
|
||||
| ----------------------- | ------------------------------------------------------------------------- |
|
||||
| **คำอธิบาย** | จำนวนครั้งที่ต้องโทร/Line เพื่อถามสถานะเอกสารต่อสัปดาห์ |
|
||||
| **หน่วย** | ครั้ง/สัปดาห์ (per Document Control) |
|
||||
| **Baseline (As-Is)** | 📋 **รอเก็บข้อมูล** — บันทึก 2 สัปดาห์ก่อน Go-Live |
|
||||
| **Target** | ลดลง > 80% (Real-time tracking ช่วย) |
|
||||
| **วิธีเก็บ Baseline** | Document Control บันทึกจำนวน Follow-up Calls ต่อวัน 2 สัปดาห์ก่อน Go-Live |
|
||||
| **วิธีวัดหลัง Go-Live** | Survey (Month 1, Month 3): "สัปดาห์ที่ผ่านมาโทรถามสถานะเอกสารกี่ครั้ง?" |
|
||||
| **Frequency** | Monthly Survey |
|
||||
| **Owner** | PO + Document Control |
|
||||
|
||||
---
|
||||
|
||||
### KPI-ADOPT-001: User Adoption Rate (Login Rate)
|
||||
|
||||
**Category:** Adoption | **Priority:** 🔴 Critical
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | % ของ Active Users ที่ Login เข้าระบบอย่างน้อย 1 ครั้ง/วัน |
|
||||
| **หน่วย** | % จาก Total Active User Accounts |
|
||||
| **Baseline** | N/A (ระบบใหม่ — ไม่มี Baseline) |
|
||||
| **Target Week 1** | > 50% |
|
||||
| **Target Month 1** | > 70% |
|
||||
| **Target Month 3** | > 90% |
|
||||
| **วิธีวัด** | `SELECT COUNT(DISTINCT user_id) / total_users FROM audit_logs WHERE action='USER_LOGIN' AND created_at >= today-1` |
|
||||
| **Dashboard** | Grafana Panel: "Daily Active Users" |
|
||||
| **Frequency** | Daily (Hypercare) → Weekly (Month 2+) |
|
||||
| **Owner** | PO + IT |
|
||||
| Attribute | Value |
|
||||
| ------------------ | ------------------------------------------------------------------------------------------------------------------ |
|
||||
| **คำอธิบาย** | % ของ Active Users ที่ Login เข้าระบบอย่างน้อย 1 ครั้ง/วัน |
|
||||
| **หน่วย** | % จาก Total Active User Accounts |
|
||||
| **Baseline** | N/A (ระบบใหม่ — ไม่มี Baseline) |
|
||||
| **Target Week 1** | > 50% |
|
||||
| **Target Month 1** | > 70% |
|
||||
| **Target Month 3** | > 90% |
|
||||
| **วิธีวัด** | `SELECT COUNT(DISTINCT user_id) / total_users FROM audit_logs WHERE action='USER_LOGIN' AND created_at >= today-1` |
|
||||
| **Dashboard** | Grafana Panel: "Daily Active Users" |
|
||||
| **Frequency** | Daily (Hypercare) → Weekly (Month 2+) |
|
||||
| **Owner** | PO + IT |
|
||||
|
||||
---
|
||||
|
||||
### KPI-ADOPT-002: Feature Adoption Rate (Core Workflows)
|
||||
|
||||
**Category:** Adoption | **Priority:** 🟠 High
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | % ของ Active Users ที่ใช้ Core Feature จริง (ไม่ใช่แค่ Login) |
|
||||
| **หน่วย** | % |
|
||||
| **Target Month 1** | > 50% ใช้ Dashboard + Search |
|
||||
| **Target Month 3** | > 80% ใช้ Workflow (Submit/Approve อย่างน้อย 1 ครั้ง) |
|
||||
| **วิธีวัด** | Audit Log Analysis: count unique users ที่มี action = 'DOCUMENT_SUBMITTED' หรือ 'WORKFLOW_TRANSITION' |
|
||||
| **Frequency** | Monthly |
|
||||
| **Owner** | PO |
|
||||
| Attribute | Value |
|
||||
| ------------------ | ----------------------------------------------------------------------------------------------------- |
|
||||
| **คำอธิบาย** | % ของ Active Users ที่ใช้ Core Feature จริง (ไม่ใช่แค่ Login) |
|
||||
| **หน่วย** | % |
|
||||
| **Target Month 1** | > 50% ใช้ Dashboard + Search |
|
||||
| **Target Month 3** | > 80% ใช้ Workflow (Submit/Approve อย่างน้อย 1 ครั้ง) |
|
||||
| **วิธีวัด** | Audit Log Analysis: count unique users ที่มี action = 'DOCUMENT_SUBMITTED' หรือ 'WORKFLOW_TRANSITION' |
|
||||
| **Frequency** | Monthly |
|
||||
| **Owner** | PO |
|
||||
|
||||
---
|
||||
|
||||
### KPI-ADOPT-003: Support Ticket Volume Trend
|
||||
|
||||
**Category:** Adoption | **Priority:** 🟠 High
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | จำนวน Support Tickets ต่อสัปดาห์ (Trend ลดลง = ระบบ Usable มากขึ้น) |
|
||||
| **หน่วย** | Tickets/สัปดาห์ |
|
||||
| **Baseline** | N/A |
|
||||
| **Target Week 1** | < 30 tickets (Hypercare acceptable) |
|
||||
| **Target Month 1** | < 15 tickets |
|
||||
| **Target Month 3** | < 5 tickets |
|
||||
| **วิธีวัด** | LINE Group message count (manual) หรือ Helpdesk ticketing tool ถ้ามี |
|
||||
| **Frequency** | Weekly |
|
||||
| **Owner** | NAP Support |
|
||||
| Attribute | Value |
|
||||
| ------------------ | -------------------------------------------------------------------- |
|
||||
| **คำอธิบาย** | จำนวน Support Tickets ต่อสัปดาห์ (Trend ลดลง = ระบบ Usable มากขึ้น) |
|
||||
| **หน่วย** | Tickets/สัปดาห์ |
|
||||
| **Baseline** | N/A |
|
||||
| **Target Week 1** | < 30 tickets (Hypercare acceptable) |
|
||||
| **Target Month 1** | < 15 tickets |
|
||||
| **Target Month 3** | < 5 tickets |
|
||||
| **วิธีวัด** | LINE Group message count (manual) หรือ Helpdesk ticketing tool ถ้ามี |
|
||||
| **Frequency** | Weekly |
|
||||
| **Owner** | NAP Support |
|
||||
|
||||
---
|
||||
|
||||
### KPI-PERF-001: API Response Time (P90)
|
||||
|
||||
**Category:** System Performance | **Priority:** 🔴 Critical
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | 90th Percentile response time ของ API requests ทั้งหมด |
|
||||
| **หน่วย** | Milliseconds |
|
||||
| **Target** | < 200ms (P90) ตาม AC-PERF-001 |
|
||||
| **Alert Threshold** | > 500ms ต่อเนื่อง 5 นาที → Alert |
|
||||
| **Critical** | > 1000ms ต่อเนื่อง 1 นาที → PagerDuty |
|
||||
| **วิธีวัด** | Prometheus + Grafana: `histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[5m]))` |
|
||||
| **Frequency** | Continuous (Real-time dashboard) |
|
||||
| **Owner** | NAP Dev |
|
||||
| Attribute | Value |
|
||||
| ------------------- | ----------------------------------------------------------------------------------------------- |
|
||||
| **คำอธิบาย** | 90th Percentile response time ของ API requests ทั้งหมด |
|
||||
| **หน่วย** | Milliseconds |
|
||||
| **Target** | < 200ms (P90) ตาม AC-PERF-001 |
|
||||
| **Alert Threshold** | > 500ms ต่อเนื่อง 5 นาที → Alert |
|
||||
| **Critical** | > 1000ms ต่อเนื่อง 1 นาที → PagerDuty |
|
||||
| **วิธีวัด** | Prometheus + Grafana: `histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[5m]))` |
|
||||
| **Frequency** | Continuous (Real-time dashboard) |
|
||||
| **Owner** | NAP Dev |
|
||||
|
||||
---
|
||||
|
||||
### KPI-PERF-002: System Uptime
|
||||
|
||||
**Category:** System Performance | **Priority:** 🔴 Critical
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | % ของเวลาที่ระบบพร้อมใช้งาน (ในเวลาทำงาน 08:00-18:00) |
|
||||
| **หน่วย** | % |
|
||||
| **Target** | ≥ 99.5% (ตาม ADR-015) |
|
||||
| **คำนวณ** | ≥ 99.5% = Downtime ≤ 2.16 ชม./เดือน |
|
||||
| **วิธีวัด** | Uptime Kuma + Prometheus: Health Check Endpoint |
|
||||
| **Frequency** | Real-time + Monthly SLA Report |
|
||||
| **Owner** | NAP Dev + IT |
|
||||
| Attribute | Value |
|
||||
| ------------- | ----------------------------------------------------- |
|
||||
| **คำอธิบาย** | % ของเวลาที่ระบบพร้อมใช้งาน (ในเวลาทำงาน 08:00-18:00) |
|
||||
| **หน่วย** | % |
|
||||
| **Target** | ≥ 99.5% (ตาม ADR-015) |
|
||||
| **คำนวณ** | ≥ 99.5% = Downtime ≤ 2.16 ชม./เดือน |
|
||||
| **วิธีวัด** | Uptime Kuma + Prometheus: Health Check Endpoint |
|
||||
| **Frequency** | Real-time + Monthly SLA Report |
|
||||
| **Owner** | NAP Dev + IT |
|
||||
|
||||
**Uptime Calculation Template:**
|
||||
|
||||
```
|
||||
เดือน: __________
|
||||
Total Hours (08:00-18:00, วันทำงาน): ___ ชั่วโมง
|
||||
@@ -208,76 +222,81 @@ Uptime %: ((Total Hours × 60 - Downtime) / (Total Hours × 60)) × 100
|
||||
---
|
||||
|
||||
### KPI-PERF-003: File Scan Success Rate
|
||||
|
||||
**Category:** Security | **Priority:** 🟠 High
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | % ของไฟล์อัปโหลดที่ถูก Scan โดย ClamAV สำเร็จ (ไม่ใช่ Skip หรือ Error) |
|
||||
| **หน่วย** | % |
|
||||
| **Target** | ≥ 99.9% (ทุกไฟล์ต้อง Scan) |
|
||||
| **วิธีวัด** | Audit Log: COUNT(action='FILE_VIRUS_SCAN_COMPLETED') / COUNT(action='FILE_UPLOADED') |
|
||||
| **Frequency** | Daily Check |
|
||||
| **Owner** | NAP Dev |
|
||||
| Attribute | Value |
|
||||
| ------------- | ------------------------------------------------------------------------------------ |
|
||||
| **คำอธิบาย** | % ของไฟล์อัปโหลดที่ถูก Scan โดย ClamAV สำเร็จ (ไม่ใช่ Skip หรือ Error) |
|
||||
| **หน่วย** | % |
|
||||
| **Target** | ≥ 99.9% (ทุกไฟล์ต้อง Scan) |
|
||||
| **วิธีวัด** | Audit Log: COUNT(action='FILE_VIRUS_SCAN_COMPLETED') / COUNT(action='FILE_UPLOADED') |
|
||||
| **Frequency** | Daily Check |
|
||||
| **Owner** | NAP Dev |
|
||||
|
||||
---
|
||||
|
||||
### KPI-SAT-001: User Satisfaction Score (CSAT)
|
||||
|
||||
**Category:** User Satisfaction | **Priority:** 🟠 High
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | คะแนนความพึงพอใจโดยรวมของผู้ใช้ระบบ (1–5) |
|
||||
| **หน่วย** | คะแนน (1.0–5.0) |
|
||||
| **Baseline** | N/A |
|
||||
| **Target Month 1** | ≥ 3.5/5.0 (ยังอยู่ใน Learning Curve) |
|
||||
| **Target Month 3** | ≥ 4.0/5.0 |
|
||||
| **Target Month 6** | ≥ 4.3/5.0 |
|
||||
| **วิธีวัด** | Google Forms Survey (แบบสอบถาม) |
|
||||
| **Frequency** | Month 1, Month 3, Month 6 |
|
||||
| **Owner** | PO |
|
||||
| Attribute | Value |
|
||||
| ------------------ | ----------------------------------------- |
|
||||
| **คำอธิบาย** | คะแนนความพึงพอใจโดยรวมของผู้ใช้ระบบ (1–5) |
|
||||
| **หน่วย** | คะแนน (1.0–5.0) |
|
||||
| **Baseline** | N/A |
|
||||
| **Target Month 1** | ≥ 3.5/5.0 (ยังอยู่ใน Learning Curve) |
|
||||
| **Target Month 3** | ≥ 4.0/5.0 |
|
||||
| **Target Month 6** | ≥ 4.3/5.0 |
|
||||
| **วิธีวัด** | Google Forms Survey (แบบสอบถาม) |
|
||||
| **Frequency** | Month 1, Month 3, Month 6 |
|
||||
| **Owner** | PO |
|
||||
|
||||
---
|
||||
|
||||
### KPI-SAT-002: System Ease of Use Score (SUS-lite)
|
||||
|
||||
**Category:** User Satisfaction | **Priority:** 🟡 Medium
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | "ระบบนี้ง่ายต่อการใช้งาน" (1=ไม่เห็นด้วยมาก, 5=เห็นด้วยมาก) |
|
||||
| **หน่วย** | คะแนน (1.0–5.0) |
|
||||
| **Target Month 3** | ≥ 4.0/5.0 |
|
||||
| **วิธีวัด** | ใน Survey เดียวกับ KPI-SAT-001 |
|
||||
| **Frequency** | Month 1, Month 3 |
|
||||
| **Owner** | PO |
|
||||
| Attribute | Value |
|
||||
| ------------------ | ----------------------------------------------------------- |
|
||||
| **คำอธิบาย** | "ระบบนี้ง่ายต่อการใช้งาน" (1=ไม่เห็นด้วยมาก, 5=เห็นด้วยมาก) |
|
||||
| **หน่วย** | คะแนน (1.0–5.0) |
|
||||
| **Target Month 3** | ≥ 4.0/5.0 |
|
||||
| **วิธีวัด** | ใน Survey เดียวกับ KPI-SAT-001 |
|
||||
| **Frequency** | Month 1, Month 3 |
|
||||
| **Owner** | PO |
|
||||
|
||||
---
|
||||
|
||||
### KPI-SEC-001: Audit Log Coverage Rate
|
||||
|
||||
**Category:** Security/Compliance | **Priority:** 🔴 Critical
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | % ของ User Actions ที่ถูกบันทึกใน Audit Log |
|
||||
| **หน่วย** | % |
|
||||
| **Target** | 100% (ทุก Action ต้องบันทึก — AC-AUDIT-001) |
|
||||
| **วิธีวัด** | Spot Check: ทำ Action → ตรวจ audit_logs ว่ามี Record หรือไม่ (Manual QA ก่อน Go-Live) |
|
||||
| **Frequency** | Pre Go-Live Audit + Monthly Spot Check |
|
||||
| **Owner** | NAP Dev |
|
||||
| Attribute | Value |
|
||||
| ------------- | ------------------------------------------------------------------------------------- |
|
||||
| **คำอธิบาย** | % ของ User Actions ที่ถูกบันทึกใน Audit Log |
|
||||
| **หน่วย** | % |
|
||||
| **Target** | 100% (ทุก Action ต้องบันทึก — AC-AUDIT-001) |
|
||||
| **วิธีวัด** | Spot Check: ทำ Action → ตรวจ audit_logs ว่ามี Record หรือไม่ (Manual QA ก่อน Go-Live) |
|
||||
| **Frequency** | Pre Go-Live Audit + Monthly Spot Check |
|
||||
| **Owner** | NAP Dev |
|
||||
|
||||
---
|
||||
|
||||
### KPI-SEC-002: Security Incident Count
|
||||
|
||||
**Category:** Security | **Priority:** 🔴 Critical
|
||||
|
||||
| Attribute | Value |
|
||||
|-----------|-------|
|
||||
| **คำอธิบาย** | จำนวน Security Incidents ที่ตรวจพบ (Unauthorized access, Virus, etc.) |
|
||||
| **หน่วย** | จำนวนครั้ง |
|
||||
| **Target** | 0 (Zero Incidents ในเวลาทำงาน) |
|
||||
| **Threshold** | > 0 Critical → Immediate escalation |
|
||||
| **วิธีวัด** | Security Audit Log Dashboard (Grafana) |
|
||||
| **Frequency** | Daily Check (Hypercare) → Weekly |
|
||||
| **Owner** | NAP Dev + IT |
|
||||
| Attribute | Value |
|
||||
| ------------- | --------------------------------------------------------------------- |
|
||||
| **คำอธิบาย** | จำนวน Security Incidents ที่ตรวจพบ (Unauthorized access, Virus, etc.) |
|
||||
| **หน่วย** | จำนวนครั้ง |
|
||||
| **Target** | 0 (Zero Incidents ในเวลาทำงาน) |
|
||||
| **Threshold** | > 0 Critical → Immediate escalation |
|
||||
| **วิธีวัด** | Security Audit Log Dashboard (Grafana) |
|
||||
| **Frequency** | Daily Check (Hypercare) → Weekly |
|
||||
| **Owner** | NAP Dev + IT |
|
||||
|
||||
---
|
||||
|
||||
@@ -313,7 +332,7 @@ Form B: Document Number Error (KPI-EFF-002)
|
||||
จากเอกสาร 3 เดือนล่าสุด:
|
||||
- เอกสารที่ออกทั้งหมด: ___ ฉบับ
|
||||
- เลขที่ผิดพลาด/ซ้ำ ต้องยกเลิก: ___ ฉบับ
|
||||
- Error Rate: ___%
|
||||
- Error Rate: ___%
|
||||
|
||||
Form C: Follow-up Calls (KPI-EFF-004)
|
||||
────────────────────────────────────
|
||||
@@ -353,27 +372,31 @@ Section 2: ความคาดหวังจากระบบใหม่
|
||||
|
||||
```markdown
|
||||
# Monthly KPI Report — LCBP3-DMS
|
||||
|
||||
Period: [เดือน ปี] | Generated: [วันที่]
|
||||
|
||||
## 🟢 On Track / 🟡 Watch / 🔴 Off Track
|
||||
|
||||
| KPI | Baseline | Target | Actual | Status | Delta |
|
||||
|-----|---------|--------|--------|--------|-------|
|
||||
| RFA Cycle Time | ___ วัน | ≤ 5 วัน | ___ วัน | 🟢/🟡/🔴 | ___% |
|
||||
| Doc Number Error | ___% | 0% | ___% | 🟢/🟡/🔴 | ___% |
|
||||
| User Adoption | N/A | ≥ 70% | ___% | 🟢/🟡/🔴 | ___% |
|
||||
| API P90 | N/A | < 200ms | ___ms | 🟢/🟡/🔴 | ___% |
|
||||
| Uptime | N/A | ≥ 99.5% | ___% | 🟢/🟡/🔴 | ___% |
|
||||
| CSAT Score | N/A | ≥ 4.0 | ___ | 🟢/🟡/🔴 | ___% |
|
||||
| KPI | Baseline | Target | Actual | Status | Delta |
|
||||
| ---------------- | ---------- | ------- | ---------- | -------- | ------- |
|
||||
| RFA Cycle Time | \_\_\_ วัน | ≤ 5 วัน | \_\_\_ วัน | 🟢/🟡/🔴 | \_\_\_% |
|
||||
| Doc Number Error | \_\_\_% | 0% | \_\_\_% | 🟢/🟡/🔴 | \_\_\_% |
|
||||
| User Adoption | N/A | ≥ 70% | \_\_\_% | 🟢/🟡/🔴 | \_\_\_% |
|
||||
| API P90 | N/A | < 200ms | \_\_\_ms | 🟢/🟡/🔴 | \_\_\_% |
|
||||
| Uptime | N/A | ≥ 99.5% | \_\_\_% | 🟢/🟡/🔴 | \_\_\_% |
|
||||
| CSAT Score | N/A | ≥ 4.0 | \_\_\_ | 🟢/🟡/🔴 | \_\_\_% |
|
||||
|
||||
## 🔍 Highlights
|
||||
|
||||
[Key findings this month]
|
||||
|
||||
## ⚠️ Issues & Actions
|
||||
|
||||
| Issue | Impact | Action | Owner | Deadline |
|
||||
...
|
||||
|
||||
## 📈 Trend Charts
|
||||
|
||||
[Link to Grafana Dashboard]
|
||||
```
|
||||
|
||||
@@ -381,22 +404,22 @@ Period: [เดือน ปี] | Generated: [วันที่]
|
||||
|
||||
## 5. 📈 Target vs. Baseline Summary Table
|
||||
|
||||
| KPI ID | ชื่อ KPI | หน่วย | Baseline | Target M1 | Target M3 | Target M6 |
|
||||
|--------|---------|------|---------|----------|----------|----------|
|
||||
| KPI-EFF-001 | RFA Cycle Time | วัน | ~14-21 | ≤ 7 | ≤ 5 | ≤ 3 |
|
||||
| KPI-EFF-002 | Doc Number Error | % | ~5-15% | < 1% | 0% | 0% |
|
||||
| KPI-EFF-003 | Time to Find Doc | นาที | ~15-30 | < 3 | < 1 | < 1 |
|
||||
| KPI-EFF-004 | Follow-up Calls | ครั้ง/สัปดาห์ | ~10-20 | < 10 | < 5 | < 2 |
|
||||
| KPI-ADOPT-001 | User Adoption | % | N/A | > 50% | > 70% | > 90% |
|
||||
| KPI-ADOPT-002 | Feature Adoption | % | N/A | > 30% | > 60% | > 80% |
|
||||
| KPI-ADOPT-003 | Support Tickets | ครั้ง/สัปดาห์ | N/A | < 30 | < 15 | < 5 |
|
||||
| KPI-PERF-001 | API Response P90 | ms | N/A | < 200 | < 200 | < 200 |
|
||||
| KPI-PERF-002 | System Uptime | % | N/A | ≥ 99.5% | ≥ 99.5% | ≥ 99.9% |
|
||||
| KPI-PERF-003 | File Scan Success | % | N/A | 100% | 100% | 100% |
|
||||
| KPI-SAT-001 | CSAT Score | /5.0 | Survey Pre | ≥ 3.5 | ≥ 4.0 | ≥ 4.3 |
|
||||
| KPI-SAT-002 | Ease of Use | /5.0 | Survey Pre | ≥ 3.5 | ≥ 4.0 | ≥ 4.2 |
|
||||
| KPI-SEC-001 | Audit Coverage | % | N/A | 100% | 100% | 100% |
|
||||
| KPI-SEC-002 | Security Incidents | ครั้ง | N/A | 0 | 0 | 0 |
|
||||
| KPI ID | ชื่อ KPI | หน่วย | Baseline | Target M1 | Target M3 | Target M6 |
|
||||
| ------------- | ------------------ | ------------- | ---------- | --------- | --------- | --------- |
|
||||
| KPI-EFF-001 | RFA Cycle Time | วัน | ~14-21 | ≤ 7 | ≤ 5 | ≤ 3 |
|
||||
| KPI-EFF-002 | Doc Number Error | % | ~5-15% | < 1% | 0% | 0% |
|
||||
| KPI-EFF-003 | Time to Find Doc | นาที | ~15-30 | < 3 | < 1 | < 1 |
|
||||
| KPI-EFF-004 | Follow-up Calls | ครั้ง/สัปดาห์ | ~10-20 | < 10 | < 5 | < 2 |
|
||||
| KPI-ADOPT-001 | User Adoption | % | N/A | > 50% | > 70% | > 90% |
|
||||
| KPI-ADOPT-002 | Feature Adoption | % | N/A | > 30% | > 60% | > 80% |
|
||||
| KPI-ADOPT-003 | Support Tickets | ครั้ง/สัปดาห์ | N/A | < 30 | < 15 | < 5 |
|
||||
| KPI-PERF-001 | API Response P90 | ms | N/A | < 200 | < 200 | < 200 |
|
||||
| KPI-PERF-002 | System Uptime | % | N/A | ≥ 99.5% | ≥ 99.5% | ≥ 99.9% |
|
||||
| KPI-PERF-003 | File Scan Success | % | N/A | 100% | 100% | 100% |
|
||||
| KPI-SAT-001 | CSAT Score | /5.0 | Survey Pre | ≥ 3.5 | ≥ 4.0 | ≥ 4.3 |
|
||||
| KPI-SAT-002 | Ease of Use | /5.0 | Survey Pre | ≥ 3.5 | ≥ 4.0 | ≥ 4.2 |
|
||||
| KPI-SEC-001 | Audit Coverage | % | N/A | 100% | 100% | 100% |
|
||||
| KPI-SEC-002 | Security Incidents | ครั้ง | N/A | 0 | 0 | 0 |
|
||||
|
||||
---
|
||||
|
||||
@@ -407,19 +430,19 @@ Period: [เดือน ปี] | Generated: [วันที่]
|
||||
```yaml
|
||||
# Prometheus Metrics to Collect:
|
||||
panels:
|
||||
- title: "RFA Cycle Time (Avg)"
|
||||
- title: 'RFA Cycle Time (Avg)'
|
||||
query: |
|
||||
avg(
|
||||
timestamp(workflow_closed_at) - timestamp(workflow_submitted_at)
|
||||
) by (month) WHERE type = 'rfa'
|
||||
unit: days
|
||||
|
||||
- title: "Daily Active Users"
|
||||
|
||||
- title: 'Daily Active Users'
|
||||
query: |
|
||||
count(distinct user_id) FROM audit_logs
|
||||
WHERE action = 'USER_LOGIN' AND date = today
|
||||
|
||||
- title: "API P90 Response Time"
|
||||
|
||||
- title: 'API P90 Response Time'
|
||||
query: |
|
||||
histogram_quantile(0.90,
|
||||
rate(http_request_duration_seconds_bucket[5m])
|
||||
@@ -427,14 +450,14 @@ panels:
|
||||
unit: ms
|
||||
alert_threshold: 500
|
||||
|
||||
- title: "System Uptime (30d)"
|
||||
- title: 'System Uptime (30d)'
|
||||
query: avg_over_time(up[30d]) * 100
|
||||
unit: percent
|
||||
|
||||
- title: "File Virus Scan Queue"
|
||||
|
||||
- title: 'File Virus Scan Queue'
|
||||
query: bullmq_queue_size{queue="virus-scan"}
|
||||
|
||||
- title: "Support Tickets This Week"
|
||||
|
||||
- title: 'Support Tickets This Week'
|
||||
query: custom_metric (manual input)
|
||||
```
|
||||
|
||||
@@ -442,7 +465,7 @@ panels:
|
||||
|
||||
```sql
|
||||
-- KPI-EFF-001: RFA Cycle Time (ต่อเดือน)
|
||||
SELECT
|
||||
SELECT
|
||||
DATE_FORMAT(wi.submitted_at, '%Y-%m') AS month,
|
||||
COUNT(*) AS total_rfas,
|
||||
AVG(DATEDIFF(wi.closed_at, wi.submitted_at)) AS avg_days,
|
||||
@@ -457,11 +480,11 @@ GROUP BY DATE_FORMAT(wi.submitted_at, '%Y-%m')
|
||||
ORDER BY month DESC;
|
||||
|
||||
-- KPI-ADOPT-001: Daily Active Users
|
||||
SELECT
|
||||
SELECT
|
||||
DATE(created_at) AS date,
|
||||
COUNT(DISTINCT user_id) AS daily_active_users,
|
||||
(SELECT COUNT(*) FROM users WHERE is_active = 1) AS total_active_users,
|
||||
ROUND(COUNT(DISTINCT user_id) * 100.0 /
|
||||
ROUND(COUNT(DISTINCT user_id) * 100.0 /
|
||||
(SELECT COUNT(*) FROM users WHERE is_active = 1), 1) AS adoption_rate
|
||||
FROM audit_logs
|
||||
WHERE action = 'USER_LOGIN'
|
||||
@@ -470,7 +493,7 @@ GROUP BY DATE(created_at)
|
||||
ORDER BY date DESC;
|
||||
|
||||
-- KPI-EFF-002: Document Number Error Rate
|
||||
SELECT
|
||||
SELECT
|
||||
DATE_FORMAT(created_at, '%Y-%m') AS month,
|
||||
COUNT(*) AS total_reserved,
|
||||
SUM(CASE WHEN status = 'CANCELLED' THEN 1 ELSE 0 END) AS cancelled,
|
||||
@@ -530,6 +553,7 @@ Q9. คะแนนรวม (NPS): 0-10 — "คุณจะแนะนำร
|
||||
|
||||
```markdown
|
||||
# LCBP3-DMS Monthly KPI Review — [เดือน ปี]
|
||||
|
||||
วันที่: | เวลา: 30 นาที | ผู้เข้าร่วม: PO, IT, Document Control Lead
|
||||
|
||||
## Agenda
|
||||
@@ -538,15 +562,12 @@ Q9. คะแนนรวม (NPS): 0-10 — "คุณจะแนะนำร
|
||||
- Performance KPIs: Uptime, API Response
|
||||
- Efficiency KPIs: RFA Cycle Time, Error Rate
|
||||
- Adoption KPIs: DAU, Feature Adoption
|
||||
|
||||
2. Status Discussion (10 นาที)
|
||||
- 🔴 Off Track KPIs: root cause + action plan
|
||||
- 🟡 Watch KPIs: monitoring plan
|
||||
|
||||
3. User Feedback Summary (5 นาที)
|
||||
- Key themes from support tickets
|
||||
- Survey results (if applicable)
|
||||
|
||||
4. Actions for Next Month (5 นาที)
|
||||
- [Action] | [Owner] | [Deadline]
|
||||
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
# 🎓 Training & Change Management Plan — LCBP3-DMS v1.8.0
|
||||
|
||||
---
|
||||
|
||||
title: 'Training & Change Management Plan'
|
||||
version: 1.0.0
|
||||
status: DRAFT
|
||||
owner: Nattanin Peancharoen (Product Owner / System Architect)
|
||||
last_updated: 2026-03-11
|
||||
related:
|
||||
- specs/00-Overview/README.md
|
||||
- specs/01-Requirements/01-01-objectives.md
|
||||
- specs/01-Requirements/01-02-business-rules/01-02-01-rbac-matrix.md
|
||||
|
||||
- specs/00-Overview/README.md
|
||||
- specs/01-Requirements/01-01-objectives.md
|
||||
- specs/01-Requirements/01-02-business-rules/01-02-01-rbac-matrix.md
|
||||
|
||||
---
|
||||
|
||||
## 1. 🎯 วัตถุประสงค์
|
||||
@@ -17,6 +20,7 @@ related:
|
||||
> **"ระบบที่ดีที่สุดก็ล้มเหลวได้ ถ้าผู้ใช้ไม่รู้วิธีใช้"**
|
||||
|
||||
แผนนี้ครอบคลุม:
|
||||
|
||||
1. **Training Curriculum** — หลักสูตรฝึกอบรมแยกต่อ Role
|
||||
2. **Training Materials** — สื่อและเอกสารการฝึกอบรม
|
||||
3. **Train-the-Trainer** — กระบวนการเตรียม Trainer ภายในองค์กร
|
||||
@@ -59,13 +63,13 @@ T+1 เดือน:
|
||||
|
||||
## 3. 👥 Target Audience & Training Groups
|
||||
|
||||
| Group | Role ในระบบ | ผู้เข้าอบรม | ระยะเวลา | รูปแบบ |
|
||||
|-------|------------|------------|---------|-------|
|
||||
| **A** | Superadmin | ทีม NAP (1-2 คน) | 4 ชั่วโมง | 1-on-1 Workshop |
|
||||
| **B** | Org Admin | 1 คนต่อองค์กร × 5 องค์กร | 3 ชั่วโมง | Group Workshop |
|
||||
| **C** | Document Control | 1-3 คนต่อองค์กร | 4 ชั่วโมง | Group Workshop |
|
||||
| **D** | Engineer / Reviewer | หลายคนต่อองค์กร | 2 ชั่วโมง | Group + Self-paced |
|
||||
| **E** | Viewer / Auditor | ผู้บริหาร + Observer | 1 ชั่วโมง | Video + Quick Guide |
|
||||
| Group | Role ในระบบ | ผู้เข้าอบรม | ระยะเวลา | รูปแบบ |
|
||||
| ----- | ------------------- | ------------------------ | --------- | ------------------- |
|
||||
| **A** | Superadmin | ทีม NAP (1-2 คน) | 4 ชั่วโมง | 1-on-1 Workshop |
|
||||
| **B** | Org Admin | 1 คนต่อองค์กร × 5 องค์กร | 3 ชั่วโมง | Group Workshop |
|
||||
| **C** | Document Control | 1-3 คนต่อองค์กร | 4 ชั่วโมง | Group Workshop |
|
||||
| **D** | Engineer / Reviewer | หลายคนต่อองค์กร | 2 ชั่วโมง | Group + Self-paced |
|
||||
| **E** | Viewer / Auditor | ผู้บริหาร + Observer | 1 ชั่วโมง | Video + Quick Guide |
|
||||
|
||||
> **หมายเหตุ:** Train-the-Trainer: แต่ละองค์กรมี Trainer 1 คน ก่อนอบรมองค์กรอื่น
|
||||
|
||||
@@ -77,20 +81,21 @@ T+1 เดือน:
|
||||
|
||||
**เป้าหมาย:** ดูแลระบบทั้งหมด, Config Master Data, จัดการ Permission
|
||||
|
||||
| Module | หัวข้อ | เวลา |
|
||||
|--------|--------|------|
|
||||
| A1 | System Architecture Overview (ภาพรวมระบบ, Docker, QNAP) | 30 นาที |
|
||||
| A2 | สร้าง Organization, Project, Contract | 30 นาที |
|
||||
| A3 | User Management — สร้าง/แก้ไข/Deactivate User | 20 นาที |
|
||||
| A4 | Document Number Template Config | 30 นาที |
|
||||
| A5 | Workflow DSL — อ่านและแก้ไข Workflow Definitions | 45 นาที |
|
||||
| A6 | Permission & RBAC Matrix — กำหนดสิทธิ์ระดับ Global | 30 นาที |
|
||||
| A7 | Audit Log & Security Monitoring | 20 นาที |
|
||||
| A8 | Backup & Restore (DR Runbook) | 20 นาที |
|
||||
| A9 | Troubleshooting Guide (Common Issues) | 15 นาที |
|
||||
| — | **Q&A + Hands-on Practice** | 20 นาที |
|
||||
| Module | หัวข้อ | เวลา |
|
||||
| ------ | ------------------------------------------------------- | ------- |
|
||||
| A1 | System Architecture Overview (ภาพรวมระบบ, Docker, QNAP) | 30 นาที |
|
||||
| A2 | สร้าง Organization, Project, Contract | 30 นาที |
|
||||
| A3 | User Management — สร้าง/แก้ไข/Deactivate User | 20 นาที |
|
||||
| A4 | Document Number Template Config | 30 นาที |
|
||||
| A5 | Workflow DSL — อ่านและแก้ไข Workflow Definitions | 45 นาที |
|
||||
| A6 | Permission & RBAC Matrix — กำหนดสิทธิ์ระดับ Global | 30 นาที |
|
||||
| A7 | Audit Log & Security Monitoring | 20 นาที |
|
||||
| A8 | Backup & Restore (DR Runbook) | 20 นาที |
|
||||
| A9 | Troubleshooting Guide (Common Issues) | 15 นาที |
|
||||
| — | **Q&A + Hands-on Practice** | 20 นาที |
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
- [ ] Admin Quick Reference Card (A4 1 หน้า)
|
||||
- [ ] System Admin Runbook (PDF)
|
||||
- [ ] Access ไปยัง Grafana + phpMyAdmin Dashboard
|
||||
@@ -101,19 +106,20 @@ T+1 เดือน:
|
||||
|
||||
**เป้าหมาย:** จัดการ User ภายในองค์กร, กำหนดสิทธิ์ระดับ Org
|
||||
|
||||
| Module | หัวข้อ | เวลา |
|
||||
|--------|--------|------|
|
||||
| B1 | ภาพรวมระบบและ Role ของ Org Admin | 20 นาที |
|
||||
| B2 | เพิ่ม/แก้ไข/Deactivate User ในองค์กร | 30 นาที |
|
||||
| B3 | กำหนด Role: Document Control / Editor / Viewer | 20 นาที |
|
||||
| B4 | Assign User เข้า Project และ Contract | 20 นาที |
|
||||
| B5 | ดู Audit Log ภายในองค์กร | 15 นาที |
|
||||
| B6 | จัดการ Tags สำหรับองค์กร | 15 นาที |
|
||||
| B7 | การรับมือ Lock Account / Reset Password | 20 นาที |
|
||||
| — | **Hands-on Practice บน Staging** | 30 นาที |
|
||||
| — | **Q&A** | 10 นาที |
|
||||
| Module | หัวข้อ | เวลา |
|
||||
| ------ | ---------------------------------------------- | ------- |
|
||||
| B1 | ภาพรวมระบบและ Role ของ Org Admin | 20 นาที |
|
||||
| B2 | เพิ่ม/แก้ไข/Deactivate User ในองค์กร | 30 นาที |
|
||||
| B3 | กำหนด Role: Document Control / Editor / Viewer | 20 นาที |
|
||||
| B4 | Assign User เข้า Project และ Contract | 20 นาที |
|
||||
| B5 | ดู Audit Log ภายในองค์กร | 15 นาที |
|
||||
| B6 | จัดการ Tags สำหรับองค์กร | 15 นาที |
|
||||
| B7 | การรับมือ Lock Account / Reset Password | 20 นาที |
|
||||
| — | **Hands-on Practice บน Staging** | 30 นาที |
|
||||
| — | **Q&A** | 10 นาที |
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
- [ ] Org Admin User Manual (PDF, 10-15 หน้า)
|
||||
- [ ] User Onboarding Checklist
|
||||
|
||||
@@ -123,27 +129,29 @@ T+1 เดือน:
|
||||
|
||||
**เป้าหมาย:** สร้าง/ส่ง/ติดตามเอกสารทุกประเภท, จัดการ Workflow
|
||||
|
||||
| Module | หัวข้อ | เวลา |
|
||||
|--------|--------|------|
|
||||
| C1 | ภาพรวมระบบ DMS — ทำไมต้องเปลี่ยนจาก Email? | 15 นาที |
|
||||
| C2 | Login + Dashboard + My Tasks | 15 นาที |
|
||||
| C3 | **สร้าง Correspondence** — Draft → Submit → Track | 30 นาที |
|
||||
| C4 | **สร้าง RFA + Shop Drawing** — Draft → Submit via Transmittal | 45 นาที |
|
||||
| C5 | Upload ไฟล์ — Drag-and-Drop, Main vs Supporting, Virus Scan | 20 นาที |
|
||||
| C6 | **Circulation Sheet** — สร้าง, Assign, กำหนด Deadline | 30 นาที |
|
||||
| C7 | ติดตามสถานะ Workflow + Workflow Diagram | 20 นาที |
|
||||
| C8 | Force Proceed / Revert Workflow (กรณีพิเศษ) | 15 นาที |
|
||||
| C9 | ค้นหาเอกสาร + Advanced Filter | 15 นาที |
|
||||
| C10 | Notification Settings + LINE Notify | 15 นาที |
|
||||
| — | **Hands-on: ทำ Scenario จริงบน Staging** | 40 นาที |
|
||||
| — | **Q&A** | 20 นาที |
|
||||
| Module | หัวข้อ | เวลา |
|
||||
| ------ | ------------------------------------------------------------- | ------- |
|
||||
| C1 | ภาพรวมระบบ DMS — ทำไมต้องเปลี่ยนจาก Email? | 15 นาที |
|
||||
| C2 | Login + Dashboard + My Tasks | 15 นาที |
|
||||
| C3 | **สร้าง Correspondence** — Draft → Submit → Track | 30 นาที |
|
||||
| C4 | **สร้าง RFA + Shop Drawing** — Draft → Submit via Transmittal | 45 นาที |
|
||||
| C5 | Upload ไฟล์ — Drag-and-Drop, Main vs Supporting, Virus Scan | 20 นาที |
|
||||
| C6 | **Circulation Sheet** — สร้าง, Assign, กำหนด Deadline | 30 นาที |
|
||||
| C7 | ติดตามสถานะ Workflow + Workflow Diagram | 20 นาที |
|
||||
| C8 | Force Proceed / Revert Workflow (กรณีพิเศษ) | 15 นาที |
|
||||
| C9 | ค้นหาเอกสาร + Advanced Filter | 15 นาที |
|
||||
| C10 | Notification Settings + LINE Notify | 15 นาที |
|
||||
| — | **Hands-on: ทำ Scenario จริงบน Staging** | 40 นาที |
|
||||
| — | **Q&A** | 20 นาที |
|
||||
|
||||
**Hands-on Scenarios (Staging):**
|
||||
|
||||
1. สร้าง Correspondence → Submit → Track Workflow
|
||||
2. สร้าง RFA + Transmittal → ส่ง → รอ Response
|
||||
3. รับ Correspondence → สร้าง Circulation → Assign
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
- [ ] Document Control User Manual (PDF, 20-30 หน้า)
|
||||
- [ ] Quick Reference Card: Document Types & Workflow States
|
||||
- [ ] Video Tutorial: "สร้างและส่ง RFA" (15 นาที)
|
||||
@@ -155,18 +163,19 @@ T+1 เดือน:
|
||||
|
||||
**เป้าหมาย:** รับและ Review เอกสาร, ตอบ RFA, ดู Circulation
|
||||
|
||||
| Module | หัวข้อ | เวลา |
|
||||
|--------|--------|------|
|
||||
| D1 | Login + Dashboard + Notification Bell | 15 นาที |
|
||||
| D2 | ดู Correspondence ที่รับเข้ามา + PDF Viewer | 20 นาที |
|
||||
| D3 | **Review RFA** — Approved / w.Comments / Rejected | 30 นาที |
|
||||
| D4 | ดู Shop Drawing ใน PDF Viewer (Streaming) | 15 นาที |
|
||||
| D5 | ตอบ Circulation ที่ได้รับมอบหมาย | 15 นาที |
|
||||
| D6 | ค้นหาเอกสาร + ดู Workflow History | 10 นาที |
|
||||
| D7 | ตั้งค่า Notification (Email/LINE) | 5 นาที |
|
||||
| — | **Q&A** | 10 นาที |
|
||||
| Module | หัวข้อ | เวลา |
|
||||
| ------ | ------------------------------------------------- | ------- |
|
||||
| D1 | Login + Dashboard + Notification Bell | 15 นาที |
|
||||
| D2 | ดู Correspondence ที่รับเข้ามา + PDF Viewer | 20 นาที |
|
||||
| D3 | **Review RFA** — Approved / w.Comments / Rejected | 30 นาที |
|
||||
| D4 | ดู Shop Drawing ใน PDF Viewer (Streaming) | 15 นาที |
|
||||
| D5 | ตอบ Circulation ที่ได้รับมอบหมาย | 15 นาที |
|
||||
| D6 | ค้นหาเอกสาร + ดู Workflow History | 10 นาที |
|
||||
| D7 | ตั้งค่า Notification (Email/LINE) | 5 นาที |
|
||||
| — | **Q&A** | 10 นาที |
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
- [ ] Reviewer Quick Guide (A4 2 หน้า)
|
||||
- [ ] Video Tutorial: "วิธี Review RFA" (10 นาที)
|
||||
|
||||
@@ -176,16 +185,17 @@ T+1 เดือน:
|
||||
|
||||
**เป้าหมาย:** ดู Dashboard, ค้นหา, ดาวน์โหลดรายงาน
|
||||
|
||||
| Module | หัวข้อ | เวลา |
|
||||
|--------|--------|------|
|
||||
| E1 | Login + Dashboard Overview | 10 นาที |
|
||||
| E2 | ค้นหาเอกสารและดู Status | 15 นาที |
|
||||
| E3 | อ่านเอกสารใน PDF Viewer | 10 นาที |
|
||||
| E4 | ดู Audit Log (สำหรับ Auditor) | 10 นาที |
|
||||
| E5 | ตั้งค่า Notification | 5 นาที |
|
||||
| — | **Q&A** | 10 นาที |
|
||||
| Module | หัวข้อ | เวลา |
|
||||
| ------ | ----------------------------- | ------- |
|
||||
| E1 | Login + Dashboard Overview | 10 นาที |
|
||||
| E2 | ค้นหาเอกสารและดู Status | 15 นาที |
|
||||
| E3 | อ่านเอกสารใน PDF Viewer | 10 นาที |
|
||||
| E4 | ดู Audit Log (สำหรับ Auditor) | 10 นาที |
|
||||
| E5 | ตั้งค่า Notification | 5 นาที |
|
||||
| — | **Q&A** | 10 นาที |
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
- [ ] Viewer Quick Start (A4 1 หน้า, ภาษาไทย + อังกฤษ)
|
||||
|
||||
---
|
||||
@@ -194,26 +204,26 @@ T+1 เดือน:
|
||||
|
||||
### 5.1 เอกสาร (Documents)
|
||||
|
||||
| Material | Target | สถานะ | Deadline |
|
||||
|----------|--------|-------|---------|
|
||||
| System Admin Runbook | Group A | ⬜ ต้องสร้าง | T-4 สัปดาห์ |
|
||||
| Org Admin User Manual | Group B | ⬜ ต้องสร้าง | T-4 สัปดาห์ |
|
||||
| Document Control User Manual | Group C | ⬜ ต้องสร้าง | T-4 สัปดาห์ |
|
||||
| Reviewer Quick Guide | Group D | ⬜ ต้องสร้าง | T-3 สัปดาห์ |
|
||||
| Viewer Quick Start | Group E | ⬜ ต้องสร้าง | T-3 สัปดาห์ |
|
||||
| Glossary / คำศัพท์ระบบ | ทุก Role | ✅ มี (`00-02-glossary.md`) | — |
|
||||
| FAQ (10 ข้อพบบ่อย) | Group C, D | ⬜ ต้องสร้าง | T-2 สัปดาห์ |
|
||||
| Material | Target | สถานะ | Deadline |
|
||||
| ---------------------------- | ---------- | --------------------------- | ----------- |
|
||||
| System Admin Runbook | Group A | ⬜ ต้องสร้าง | T-4 สัปดาห์ |
|
||||
| Org Admin User Manual | Group B | ⬜ ต้องสร้าง | T-4 สัปดาห์ |
|
||||
| Document Control User Manual | Group C | ⬜ ต้องสร้าง | T-4 สัปดาห์ |
|
||||
| Reviewer Quick Guide | Group D | ⬜ ต้องสร้าง | T-3 สัปดาห์ |
|
||||
| Viewer Quick Start | Group E | ⬜ ต้องสร้าง | T-3 สัปดาห์ |
|
||||
| Glossary / คำศัพท์ระบบ | ทุก Role | ✅ มี (`00-02-glossary.md`) | — |
|
||||
| FAQ (10 ข้อพบบ่อย) | Group C, D | ⬜ ต้องสร้าง | T-2 สัปดาห์ |
|
||||
|
||||
### 5.2 Video Tutorials
|
||||
|
||||
| Video | ความยาว | Target | สถานะ |
|
||||
|-------|--------|--------|-------|
|
||||
| ภาพรวมระบบ (System Intro) | 5 นาที | ทุก Role | ⬜ |
|
||||
| วิธีสร้างและส่ง Correspondence | 10 นาที | Group C | ⬜ |
|
||||
| วิธีสร้างและส่ง RFA + Transmittal | 15 นาที | Group C | ⬜ |
|
||||
| วิธี Review RFA | 10 นาที | Group D | ⬜ |
|
||||
| วิธีสร้าง Circulation Sheet | 8 นาที | Group C | ⬜ |
|
||||
| ค้นหาเอกสารและใช้ Filter | 5 นาที | ทุก Role | ⬜ |
|
||||
| Video | ความยาว | Target | สถานะ |
|
||||
| --------------------------------- | ------- | -------- | ----- |
|
||||
| ภาพรวมระบบ (System Intro) | 5 นาที | ทุก Role | ⬜ |
|
||||
| วิธีสร้างและส่ง Correspondence | 10 นาที | Group C | ⬜ |
|
||||
| วิธีสร้างและส่ง RFA + Transmittal | 15 นาที | Group C | ⬜ |
|
||||
| วิธี Review RFA | 10 นาที | Group D | ⬜ |
|
||||
| วิธีสร้าง Circulation Sheet | 8 นาที | Group C | ⬜ |
|
||||
| ค้นหาเอกสารและใช้ Filter | 5 นาที | ทุก Role | ⬜ |
|
||||
|
||||
> **เครื่องมือแนะนำ:** OBS Studio (Screen Record) + CapCut / DaVinci Resolve (Edit) + Loom (Quick Share)
|
||||
|
||||
@@ -222,6 +232,7 @@ T+1 เดือน:
|
||||
```markdown
|
||||
Scenario 1: "ส่ง RFA ครั้งแรก" (Group C)
|
||||
───────────────────────────────────────
|
||||
|
||||
1. Login ด้วย Account Contractor A
|
||||
2. Upload Shop Drawing (ไฟล์ PDF ตัวอย่าง)
|
||||
3. สร้าง RFA Type: Shop Drawing — Discipline: STR
|
||||
@@ -230,6 +241,7 @@ Scenario 1: "ส่ง RFA ครั้งแรก" (Group C)
|
||||
|
||||
Scenario 2: "Review และ Approve RFA" (Group D)
|
||||
─────────────────────────────────────────────
|
||||
|
||||
1. Login ด้วย Account Engineer (TEAM หรือ คคง.)
|
||||
2. ดู Notification Bell → เปิด RFA ที่ได้รับ
|
||||
3. ดู Shop Drawing ใน PDF Viewer
|
||||
@@ -238,6 +250,7 @@ Scenario 2: "Review และ Approve RFA" (Group D)
|
||||
|
||||
Scenario 3: "สร้าง Circulation และติดตาม" (Group C)
|
||||
───────────────────────────────────────────────
|
||||
|
||||
1. รับเอกสาร Correspondence ใน Inbox
|
||||
2. สร้าง Circulation Sheet → Assign Main, Action, Info
|
||||
3. กำหนด Deadline 3 วัน
|
||||
@@ -250,18 +263,22 @@ Scenario 3: "สร้าง Circulation และติดตาม" (Group C)
|
||||
## 6. 🏆 Train-the-Trainer Program
|
||||
|
||||
### 6.1 เป้าหมาย
|
||||
|
||||
แต่ละองค์กรมี **Internal Trainer** 1 คน ที่สามารถ:
|
||||
|
||||
- สอน User ใหม่ในองค์กรได้ด้วยตัวเอง
|
||||
- ตอบ FAQ เบื้องต้นโดยไม่ต้องติดต่อ NAP
|
||||
- รายงาน Issues ผ่าน Support Channel ได้ถูกต้อง
|
||||
|
||||
### 6.2 Internal Trainer คุณสมบัติ
|
||||
|
||||
- มักเป็น **Document Control** อาวุโส หรือ Org Admin
|
||||
- เข้าร่วม Training Group A หรือ C ก่อน
|
||||
- ผ่าน Hands-on Practice Scenario ทั้ง 3 ครบ
|
||||
- ได้รับ "Trainer Kit" (Materials + Access พิเศษ)
|
||||
|
||||
### 6.3 Trainer Kit
|
||||
|
||||
```
|
||||
📦 Trainer Kit ประกอบด้วย:
|
||||
├── 📄 User Manuals (ทุก Role) — สำหรับแจกจ่าย
|
||||
@@ -294,36 +311,39 @@ Level 4 — Dev Team (Hotfix / Patch)
|
||||
|
||||
### 7.2 Support Channels
|
||||
|
||||
| Channel | ใช้เมื่อ | Response Time |
|
||||
|---------|---------|--------------|
|
||||
| Channel | ใช้เมื่อ | Response Time |
|
||||
| -------------------------------- | ------------------------- | ------------------------- |
|
||||
| **LINE Group** (NAP-DMS Support) | ปัญหาเร่งด่วน, ถามวิธีใช้ | 2-4 ชั่วโมง (ในเวลาทำงาน) |
|
||||
| **Email** nattanin@[domain] | รายงาน Bug, ขอ Feature | 1-2 วันทำการ |
|
||||
| **FAQ Document** | ปัญหาทั่วไป | ทันที (Self-service) |
|
||||
| **Video Tutortials** | ต้องการดูวิธีใช้ซ้ำ | ทันที (Self-service) |
|
||||
| **Email** nattanin@[domain] | รายงาน Bug, ขอ Feature | 1-2 วันทำการ |
|
||||
| **FAQ Document** | ปัญหาทั่วไป | ทันที (Self-service) |
|
||||
| **Video Tutortials** | ต้องการดูวิธีใช้ซ้ำ | ทันที (Self-service) |
|
||||
|
||||
### 7.3 Hypercare Period (Go-Live Month 1)
|
||||
|
||||
**สัปดาห์ 1-2 (Go-Live):**
|
||||
|
||||
- NAP ทีม On-Call: 08:00–18:00 ทุกวันทำการ
|
||||
- Daily Check-in กับ Internal Trainers ทุกองค์กร (15 นาที)
|
||||
- Bug Tracker: บันทึก Issues ทั้งหมด (Priority P0-P3)
|
||||
|
||||
**สัปดาห์ 3-4:**
|
||||
|
||||
- On-Call: ตามปกติ (Response ภายใน 4 ชั่วโมง)
|
||||
- Weekly Review: สรุป Issues + แก้ไข + FAQ Update
|
||||
|
||||
**หลัง 1 เดือน:**
|
||||
|
||||
- Standard Support (Level 1-4 ตามปกติ)
|
||||
- Monthly Review Meeting
|
||||
|
||||
### 7.4 Bug Priority & SLA
|
||||
|
||||
| Priority | ตัวอย่าง | Response | Resolution |
|
||||
|----------|---------|---------|-----------|
|
||||
| **P0 — Critical** | ระบบล่ม, Data Loss | 30 นาที | 4 ชั่วโมง |
|
||||
| **P1 — High** | Login ไม่ได้, เอกสารหาย | 2 ชั่วโมง | 24 ชั่วโมง |
|
||||
| **P2 — Medium** | Feature ทำงานผิด | 4 ชั่วโมง | 3 วัน |
|
||||
| **P3 — Low** | UI ผิดเล็กน้อย, Typo | 24 ชั่วโมง | 2 สัปดาห์ |
|
||||
| Priority | ตัวอย่าง | Response | Resolution |
|
||||
| ----------------- | ----------------------- | ---------- | ---------- |
|
||||
| **P0 — Critical** | ระบบล่ม, Data Loss | 30 นาที | 4 ชั่วโมง |
|
||||
| **P1 — High** | Login ไม่ได้, เอกสารหาย | 2 ชั่วโมง | 24 ชั่วโมง |
|
||||
| **P2 — Medium** | Feature ทำงานผิด | 4 ชั่วโมง | 3 วัน |
|
||||
| **P3 — Low** | UI ผิดเล็กน้อย, Typo | 24 ชั่วโมง | 2 สัปดาห์ |
|
||||
|
||||
---
|
||||
|
||||
@@ -331,55 +351,59 @@ Level 4 — Dev Team (Hotfix / Patch)
|
||||
|
||||
### 8.1 Communication Timeline
|
||||
|
||||
| เวลา | ข้อความ | ช่องทาง | ผู้รับ |
|
||||
|------|---------|---------|-------|
|
||||
| T-8 สัปดาห์ | Announcement: ระบบใหม่กำลังจะมา | Email + LINE | ผู้บริหารทุกองค์กร |
|
||||
| T-4 สัปดาห์ | Training Schedule แจ้งรายละเอียด | Email | Org Admin ทุกองค์กร |
|
||||
| T-2 สัปดาห์ | Training Reminder + Staging Access | Email + LINE | ทุก User |
|
||||
| T-1 สัปดาห์ | "1 สัปดาห์แล้ว!" + Go-Live Date | Email + LINE | ทุก User |
|
||||
| Go-Live Day | Go-Live Announcement + Support Contact | Email + LINE | ทุก User |
|
||||
| T+2 สัปดาห์ | Feedback Survey (Google Form) | Email | ผู้ใช้งานทุกคน |
|
||||
| T+1 เดือน | Summary Report ต่อผู้บริหาร | Meeting | Project Management |
|
||||
| เวลา | ข้อความ | ช่องทาง | ผู้รับ |
|
||||
| ----------- | -------------------------------------- | ------------ | ------------------- |
|
||||
| T-8 สัปดาห์ | Announcement: ระบบใหม่กำลังจะมา | Email + LINE | ผู้บริหารทุกองค์กร |
|
||||
| T-4 สัปดาห์ | Training Schedule แจ้งรายละเอียด | Email | Org Admin ทุกองค์กร |
|
||||
| T-2 สัปดาห์ | Training Reminder + Staging Access | Email + LINE | ทุก User |
|
||||
| T-1 สัปดาห์ | "1 สัปดาห์แล้ว!" + Go-Live Date | Email + LINE | ทุก User |
|
||||
| Go-Live Day | Go-Live Announcement + Support Contact | Email + LINE | ทุก User |
|
||||
| T+2 สัปดาห์ | Feedback Survey (Google Form) | Email | ผู้ใช้งานทุกคน |
|
||||
| T+1 เดือน | Summary Report ต่อผู้บริหาร | Meeting | Project Management |
|
||||
|
||||
### 8.2 Key Messages
|
||||
|
||||
**สำหรับผู้บริหาร:**
|
||||
|
||||
> "ระบบ LCBP3-DMS ช่วยให้ติดตามสถานะเอกสารได้ Real-time, ลดเวลา Cycle RFA จาก 2 สัปดาห์เหลือ 3 วัน, และมี Audit Trail ครบถ้วน"
|
||||
|
||||
**สำหรับ Document Control:**
|
||||
|
||||
> "ระบบนี้ช่วยลดการทำงานซ้ำซ้อนจาก Email ไปสู่ Workflow อัตโนมัติ เลขเอกสารออกอัตโนมัติ ไม่ต้องจำหรือนับมือ"
|
||||
|
||||
**สำหรับ Engineer / Reviewer:**
|
||||
|
||||
> "รับ Notification ทันทีเมื่อมี RFA ใหม่ ดู PDF ในระบบโดยไม่ต้อง Download คลิก Approve ได้เลย"
|
||||
|
||||
### 8.3 Resistance Management
|
||||
|
||||
| กลุ่มที่อาจต้าน | เหตุผล | วิธีรับมือ |
|
||||
|--------------|-------|-----------|
|
||||
| ผู้ใช้ที่คุ้นชิน Email | "Email ง่ายกว่า" | แสดง Case Study: วันไหน RFA ตกหล่น |
|
||||
| ผู้บริหารอาวุโส | "ไม่ถนัด IT" | เน้น: ดูสถานะได้ 1 คลิก, ไม่ต้องโทรถาม |
|
||||
| Document Control | "งานเพิ่มขึ้น" | แสดง: Auto-Number, Auto-Notify ลดงานจริง |
|
||||
| IT/Ops ที่คุ้นระบบเดิม | "Server อะไรอีก" | ADR-015, Docker ง่ายต่อ Maintain |
|
||||
| กลุ่มที่อาจต้าน | เหตุผล | วิธีรับมือ |
|
||||
| ---------------------- | ---------------- | ---------------------------------------- |
|
||||
| ผู้ใช้ที่คุ้นชิน Email | "Email ง่ายกว่า" | แสดง Case Study: วันไหน RFA ตกหล่น |
|
||||
| ผู้บริหารอาวุโส | "ไม่ถนัด IT" | เน้น: ดูสถานะได้ 1 คลิก, ไม่ต้องโทรถาม |
|
||||
| Document Control | "งานเพิ่มขึ้น" | แสดง: Auto-Number, Auto-Notify ลดงานจริง |
|
||||
| IT/Ops ที่คุ้นระบบเดิม | "Server อะไรอีก" | ADR-015, Docker ง่ายต่อ Maintain |
|
||||
|
||||
---
|
||||
|
||||
## 9. 📊 Training KPIs & Success Criteria
|
||||
|
||||
| KPI | Target | วิธีวัด |
|
||||
|-----|--------|--------|
|
||||
| Training Attendance | > 90% ของ Users ทุก Group | Sign-in Sheet |
|
||||
| Post-Training Quiz Score | > 80% เฉลี่ย | Online Quiz (Google Form) |
|
||||
| Hands-on Scenario Pass Rate | > 90% ทำ Scenario 1-3 ได้ | Trainer Assessment |
|
||||
| Support Tickets Week 1 | < 20 tickets (แสดง Training มีประสิทธิภาพ) | Support Log |
|
||||
| User Adoption Month 1 | > 70% Login ทุกวันทำการ | System Analytics |
|
||||
| User Adoption Month 3 | > 90% Active Users | System Analytics |
|
||||
| Satisfaction Score | > 4.0/5.0 | Feedback Survey (T+2 สัปดาห์) |
|
||||
| KPI | Target | วิธีวัด |
|
||||
| --------------------------- | ------------------------------------------ | ----------------------------- |
|
||||
| Training Attendance | > 90% ของ Users ทุก Group | Sign-in Sheet |
|
||||
| Post-Training Quiz Score | > 80% เฉลี่ย | Online Quiz (Google Form) |
|
||||
| Hands-on Scenario Pass Rate | > 90% ทำ Scenario 1-3 ได้ | Trainer Assessment |
|
||||
| Support Tickets Week 1 | < 20 tickets (แสดง Training มีประสิทธิภาพ) | Support Log |
|
||||
| User Adoption Month 1 | > 70% Login ทุกวันทำการ | System Analytics |
|
||||
| User Adoption Month 3 | > 90% Active Users | System Analytics |
|
||||
| Satisfaction Score | > 4.0/5.0 | Feedback Survey (T+2 สัปดาห์) |
|
||||
|
||||
---
|
||||
|
||||
## 10. ✅ Training Readiness Checklist (Pre Go-Live)
|
||||
|
||||
### Materials
|
||||
|
||||
- [ ] System Admin Runbook สร้างเสร็จ + Review แล้ว
|
||||
- [ ] Document Control User Manual สร้างเสร็จ
|
||||
- [ ] Quick Guides (Reviewer, Viewer) สร้างเสร็จ
|
||||
@@ -388,18 +412,21 @@ Level 4 — Dev Team (Hotfix / Patch)
|
||||
- [ ] Training Scenarios (Staging Data) เตรียมพร้อม
|
||||
|
||||
### Infrastructure
|
||||
|
||||
- [ ] Staging Environment Deploy แล้ว (Mirror Production)
|
||||
- [ ] Test Users ทุก Role สร้างแล้ว (1 ชุดต่อ Org)
|
||||
- [ ] Email + LINE Notify บน Staging ทำงาน (Test Mode)
|
||||
- [ ] Staging URL แจ้ง Trainers แล้ว
|
||||
|
||||
### People
|
||||
|
||||
- [ ] Internal Trainer แต่ละองค์กร ระบุชื่อแล้ว
|
||||
- [ ] Train-the-Trainer Session เสร็จแล้ว
|
||||
- [ ] Training Schedule แจ้งทุกคนแล้ว
|
||||
- [ ] Support LINE Group สร้างแล้ว + เพิ่ม Users
|
||||
|
||||
### Process
|
||||
|
||||
- [ ] Bug Report Process อธิบายให้ Trainers แล้ว
|
||||
- [ ] Escalation Path ชัดเจน
|
||||
- [ ] Hypercare Schedule ตกลงกันแล้ว (ว่าใครรับผิดชอบวันไหน)
|
||||
|
||||
+28
-32
@@ -202,34 +202,34 @@ lcbp3/
|
||||
|
||||
### Documentation
|
||||
|
||||
| Category | Document | Description |
|
||||
| ------------------ | ---------------------------------------------------------------------------------- | ------------------------------------- |
|
||||
| **Overview** | [Glossary](./00-02-glossary.md) | Technical terminology & abbreviations |
|
||||
| **Overview** | [Quick Start](./00-01-quick-start.md) | 5-minute getting started guide |
|
||||
| **Overview** | [🎯 Product Vision](./00-03-product-vision.md) | Vision Statement, Strategy, Guardrails |
|
||||
| **Overview** | [📊 KPI Baseline & Measurement](./00-05-kpi-baseline.md) | 14 KPIs, Baseline Forms, SQL Queries |
|
||||
| **Overview** | [🎓 Training Plan](./00-06-training-plan.md) | Training curriculum & change management |
|
||||
| **Overview** | [📋 Stakeholder Sign-off & Risk](./00-04-stakeholder-signoff-and-risk.md) | Sign-off process, Risk Register, Change Control |
|
||||
| **Overview** | [🚀 Release Management Policy](../04-Infrastructure-OPS/04-08-release-management-policy.md) | SemVer, Release Gates, Hotfix, Rollback Policy |
|
||||
| **Requirements** | [📖 User Stories](../01-Requirements/01-04-user-stories.md) | 27 User Stories (8 Epics, MoSCoW) |
|
||||
| **Requirements** | [🛡️ Edge Cases & Business Rules](../01-Requirements/01-06-edge-cases-and-rules.md) | 37 Edge Cases ป้องกัน Bug |
|
||||
| **Requirements** | [🖼️ UI/UX Wireframes](../01-Requirements/01-07-ui-wireframes.md) | 26 Screens, Navigation Map, Design System |
|
||||
| **Data** | [📦 Migration Business Scope](../03-Data-and-Storage/03-06-migration-business-scope.md) | 20,000 Docs, 3 Tiers, Go/No-Go Gates |
|
||||
| **Requirements** | [✅ Acceptance Criteria (UAT)](../01-Requirements/01-05-acceptance-criteria.md) | MVP Go-Live criteria & UAT Sign-off |
|
||||
| **Requirements** | [Functional Requirements](../01-requirements/01-03-functional-requirements.md) | Feature specifications |
|
||||
| **Requirements** | [Document Numbering](../01-requirements/01-03.11-document-numbering.md) | Document numbering requirements |
|
||||
| **Architecture** | [System Architecture](../02-architecture/02-01-system-architecture.md) | Overall system design |
|
||||
| **Architecture** | [Data Model](../02-architecture/02-03-data-model.md) | Database schema |
|
||||
| **Architecture** | [API Design](../02-architecture/02-02-api-design.md) | REST API specifications |
|
||||
| **Implementation** | [Backend Guidelines](../03-implementation/03-02-backend-guidelines.md) | Backend coding standards |
|
||||
| **Implementation** | [Frontend Guidelines](../03-implementation/03-03-frontend-guidelines.md) | Frontend coding standards |
|
||||
| **Implementation** | [Document Numbering Implementation](../03-implementation/03-04-document-numbering.md) | Document numbering implementation |
|
||||
| **Implementation** | [Testing Strategy](../03-implementation/03-05-testing-strategy.md) | Testing approach |
|
||||
| **Operations** | [Deployment Guide](../04-operations/04-01-deployment-guide.md) | How to deploy |
|
||||
| **Operations** | [Monitoring](../04-operations/04-03-monitoring-alerting.md) | Monitoring & alerts |
|
||||
| **Operations** | [Document Numbering Operations](../04-operations/04-08-document-numbering-operations.md) | Doc numbering ops guide |
|
||||
| **Decisions** | [ADR Index](../05-decisions/README.md) | Architecture decisions |
|
||||
| **Tasks** | [Backend Tasks](../06-tasks/README.md) | Development tasks |
|
||||
| Category | Document | Description |
|
||||
| ------------------ | ------------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
||||
| **Overview** | [Glossary](./00-02-glossary.md) | Technical terminology & abbreviations |
|
||||
| **Overview** | [Quick Start](./00-01-quick-start.md) | 5-minute getting started guide |
|
||||
| **Overview** | [🎯 Product Vision](./00-03-product-vision.md) | Vision Statement, Strategy, Guardrails |
|
||||
| **Overview** | [📊 KPI Baseline & Measurement](./00-05-kpi-baseline.md) | 14 KPIs, Baseline Forms, SQL Queries |
|
||||
| **Overview** | [🎓 Training Plan](./00-06-training-plan.md) | Training curriculum & change management |
|
||||
| **Overview** | [📋 Stakeholder Sign-off & Risk](./00-04-stakeholder-signoff-and-risk.md) | Sign-off process, Risk Register, Change Control |
|
||||
| **Overview** | [🚀 Release Management Policy](../04-Infrastructure-OPS/04-08-release-management-policy.md) | SemVer, Release Gates, Hotfix, Rollback Policy |
|
||||
| **Requirements** | [📖 User Stories](../01-Requirements/01-04-user-stories.md) | 27 User Stories (8 Epics, MoSCoW) |
|
||||
| **Requirements** | [🛡️ Edge Cases & Business Rules](../01-Requirements/01-06-edge-cases-and-rules.md) | 37 Edge Cases ป้องกัน Bug |
|
||||
| **Requirements** | [🖼️ UI/UX Wireframes](../01-Requirements/01-07-ui-wireframes.md) | 26 Screens, Navigation Map, Design System |
|
||||
| **Data** | [📦 Migration Business Scope](../03-Data-and-Storage/03-06-migration-business-scope.md) | 20,000 Docs, 3 Tiers, Go/No-Go Gates |
|
||||
| **Requirements** | [✅ Acceptance Criteria (UAT)](../01-Requirements/01-05-acceptance-criteria.md) | MVP Go-Live criteria & UAT Sign-off |
|
||||
| **Requirements** | [Functional Requirements](../01-requirements/01-03-functional-requirements.md) | Feature specifications |
|
||||
| **Requirements** | [Document Numbering](../01-requirements/01-03.11-document-numbering.md) | Document numbering requirements |
|
||||
| **Architecture** | [System Architecture](../02-architecture/02-01-system-architecture.md) | Overall system design |
|
||||
| **Architecture** | [Data Model](../02-architecture/02-03-data-model.md) | Database schema |
|
||||
| **Architecture** | [API Design](../02-architecture/02-02-api-design.md) | REST API specifications |
|
||||
| **Implementation** | [Backend Guidelines](../03-implementation/03-02-backend-guidelines.md) | Backend coding standards |
|
||||
| **Implementation** | [Frontend Guidelines](../03-implementation/03-03-frontend-guidelines.md) | Frontend coding standards |
|
||||
| **Implementation** | [Document Numbering Implementation](../03-implementation/03-04-document-numbering.md) | Document numbering implementation |
|
||||
| **Implementation** | [Testing Strategy](../03-implementation/03-05-testing-strategy.md) | Testing approach |
|
||||
| **Operations** | [Deployment Guide](../04-operations/04-01-deployment-guide.md) | How to deploy |
|
||||
| **Operations** | [Monitoring](../04-operations/04-03-monitoring-alerting.md) | Monitoring & alerts |
|
||||
| **Operations** | [Document Numbering Operations](../04-operations/04-08-document-numbering-operations.md) | Doc numbering ops guide |
|
||||
| **Decisions** | [ADR Index](../05-decisions/README.md) | Architecture decisions |
|
||||
| **Tasks** | [Backend Tasks](../06-tasks/README.md) | Development tasks |
|
||||
|
||||
### Key ADRs
|
||||
|
||||
@@ -246,13 +246,11 @@ lcbp3/
|
||||
### For Developers
|
||||
|
||||
1. **Read Documentation**
|
||||
|
||||
- Start with [Quick Start Guide](./00-01-quick-start.md)
|
||||
- Review [System Architecture](../02-architecture/02-01-system-architecture.md)
|
||||
- Study [Backend](../03-implementation/03-02-backend-guidelines.md) / [Frontend](../03-implementation/03-03-frontend-guidelines.md) guidelines
|
||||
|
||||
2. **Setup Development Environment**
|
||||
|
||||
- Clone repository
|
||||
- Install Docker & Docker Compose
|
||||
- Run `docker-compose up`
|
||||
@@ -268,13 +266,11 @@ lcbp3/
|
||||
### For Operations Team
|
||||
|
||||
1. **Infrastructure Setup**
|
||||
|
||||
- Review [Environment Setup](../04-operations/04-02-environment-setup.md)
|
||||
- Configure QNAP Container Station
|
||||
- Setup Docker Compose
|
||||
|
||||
2. **Deployment**
|
||||
|
||||
- Follow [Deployment Guide](../04-operations/04-01-deployment-guide.md)
|
||||
- Configure [Backup & Recovery](../04-operations/04-04-backup-recovery.md)
|
||||
- Setup [Monitoring](../04-operations/04-03-monitoring-alerting.md)
|
||||
|
||||
Reference in New Issue
Block a user