Files
wms-app/sdlc/ISO29110-audit-storytelling.md
T

184 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BRN WMS (200-WMS-26-001-00) — บทเล่าเรื่องสำหรับวันตรวจประเมิน ISO/IEC 29110
เอกสารช่วยจำสำหรับทีม ใช้เล่าเรื่องโครงการต่อผู้ตรวจประเมินตั้งแต่เปิดจนปิดโครงการ ทุกประโยคต้องชี้ไปที่เอกสารจริงได้ทันที
ถ้าผู้ตรวจถามสิ่งที่ไม่มีในเอกสาร ให้ตอบตามจริงว่า "ไม่ได้บันทึกไว้" ห้ามแต่งเพิ่ม
## วิธีใช้
- เล่าตามลำดับบทที่ 1–8 ใช้เวลารวมประมาณ 25–30 นาที แล้วเปิดให้ผู้ตรวจเลือกเส้นสอบกลับเอง
- แต่ละบทมี **ผู้เล่า** **เอกสารที่เปิด** และ **ประโยคหลัก** ให้เปิดเอกสารบนจอก่อนพูดทุกครั้ง
- ผู้เข้าตรวจมี 2 คน: **PM (ApS)** เล่ากระบวนการบริหารโครงการ (PM) และ **SA (NoC)** เล่ากระบวนการพัฒนา (SI)
- งานของ Developer (ThS), QA (PaNg), Document Control (YaB) และ Project Sponsor (SeV) ให้เล่าจากบันทึก โดยอ้างชื่อผู้รับผิดชอบตามเอกสาร
เช่น "ตาม Test Report ที่คุณปริญ (PaNg) บันทึก…" ห้ามตอบแทนในเรื่องที่บันทึกไม่ได้ระบุ ให้ตอบว่าจะประสานผู้รับผิดชอบ
- แบ่งงานตอนผู้ตรวจถาม: คำถามเรื่องแผน ความก้าวหน้า ความเสี่ยง การเปลี่ยนแปลง การตรวจรับ → PM; ความต้องการ การออกแบบ Code การทดสอบ การสอบกลับ → SA
## โครงเรื่องในหนึ่งย่อหน้า
โครงการพัฒนาระบบบริหารจัดการคลังสินค้า 11 ระบบงาน ระยะเวลา 232 วัน (5 ม.ค. – 24 ส.ค. 69) ทีม 6 คน
เราตั้ง Baseline ความต้องการ 80 รายการก่อนเริ่มพัฒนา ควบคุมงานด้วยรายงานความก้าวหน้า 15 งวดและการประชุม 11 ครั้ง
ตรวจสอบเอกสาร 4 รอบ ทดสอบ 45 Test Case แล้ว **พบข้อบกพร่องระดับสูง 4 รายการ** ซึ่งเราบันทึกตามจริง แจ้งผู้รับมอบ
และผู้รับมอบตรวจรับแบบมีเงื่อนไขให้แก้ไขภายใต้การบำรุงรักษา — เรื่องนี้คือจุดแข็งของกระบวนการ ไม่ใช่จุดอ่อน
## เส้นเวลา (ใช้เปิดเรื่อง)
| ช่วงเวลา | เหตุการณ์สำคัญ | หลักฐาน |
|---|---|---|
| 5 ม.ค. 69 | ประชุมเปิดโครงการ | Statement of Work, Minutes of Meeting 5 ม.ค. |
| 16–23 ม.ค. 69 | ระบุผู้มีส่วนได้ส่วนเสีย อนุมัติกฎบัตร | Stakeholder Register, Project Charter, MoM 23 ม.ค. |
| 6–18 ก.พ. 69 | ความต้องการ 80 รายการ แผนโครงการ ตั้ง Baseline | Customer Requirements, Software Project Plan, Work Schedule, MoM 18 ก.พ. |
| 19 ก.พ. – 29 พ.ค. 69 | ออกแบบและพัฒนา ตั้ง Baseline การพัฒนา 29 พ.ค. (`a0677d6`) | SRS, Software Design, Correction Register ISS-001–027 |
| 17 มี.ค. / 29 พ.ค. / 31 ก.ค. / 17 ส.ค. 69 | ตรวจสอบเอกสาร 4 รอบ (3+3+3+6 ชม.) | Verification Results V0.1–V1.0 |
| 31 ก.ค. 69 | Test Case 45 รายการ และ Traceability Record | Test Case and Test Procedures, Traceability Record |
| 3–10 ส.ค. 69 | แก้ไขหลัง Baseline (ISS-028) และอนุมัติแผนทดสอบ | Correction Register, MoM 10 ส.ค. |
| 10–14 ส.ค. 69 | ทดสอบระบบและ UAT บน Build `b2c4374` | Test Report, Validation Results |
| 17 ส.ค. 69 | ชุดติดตั้ง Docker และ Baseline ส่งมอบ `6c39700`; ตรวจสอบรอบที่ 4 | Software Configuration, Verification Results V1.0 |
| 19 ส.ค. 69 | ประชุมสรุปผลทดสอบและ UAT | MoM 19 ส.ค. |
| 22–23 ส.ค. 69 | อบรมผู้ใช้ 6 คน ปิดงานควบคุมปฏิบัติการ OP-001/OP-002 | Training Report, Product Operation Guide |
| 24 ส.ค. 69 | ตรวจรับแบบมีเงื่อนไขและปิดโครงการ | Acceptance Report, MoM 24 ส.ค., List of Evidence |
---
## บทที่ 1 — ทำไมต้องมีโครงการนี้ และใครเกี่ยวข้อง
**ผู้เล่า:** PM (ApS)
**เปิด:** Statement of Work → Project Charter Report → Stakeholder Register → Software Project Plan §5
**ประโยคหลัก**
- "บริษัทบันทึกคลังสินค้าแยกจากงานขายและบัญชี ยอดไม่ตรงกัน เราจึงตั้งโครงการรวม 11 ระบบงานไว้ในระบบเดียว ระยะเวลา 232 วัน"
- "ผู้มีส่วนได้ส่วนเสียมี 10 กลุ่ม คือทีม 6 คน และผู้ใช้ 4 กลุ่ม — ฝ่ายคลัง ฝ่ายขาย/จัดซื้อ ฝ่ายบัญชี และผู้ดูแลระบบ
รายชื่อชุดเดียวกันอยู่ทั้งใน Stakeholder Register และ Software Project Plan §5.1–5.2"
**ถ้าถูกถาม:** "ใครอนุมัติขอบเขต?" → Project Sponsor (SeV) อนุมัติกฎบัตรในการประชุม 23 ม.ค. 69 เปิด Project Charter หน้าลงนามและ MoM 23 ม.ค.
## บทที่ 2 — วางแผนและตั้ง Baseline ก่อนลงมือ
**ผู้เล่า:** SA (NoC) เล่าความต้องการ แล้วส่งต่อ PM (ApS) เล่าแผนและความเสี่ยง
**เปิด:** Customer Requirements → Software Project Plan §6–§9 → Work Schedule → MoM 18 ก.พ.
**ประโยคหลัก**
- "เราเก็บความต้องการ 80 รายการใน 14 หมวด (CR01–CR14) ลูกค้าสรุปผลยอมรับทุกรายการ แล้วตั้ง Baseline ในการประชุม 18 ก.พ. 69 ก่อนเริ่มพัฒนา 19 ก.พ."
- "แผนกำหนดความเสี่ยง 8 ข้อ (R1–R8) และแผนตรวจสอบ 4 รอบ รวม 15 ชั่วโมง ตามข้อแนะนำให้ตรวจราวทุก 2 เดือน"
**ถ้าถูกถาม:** "ความเสี่ยงไหนเกิดจริง?" → R1 (ความต้องการเปลี่ยนระหว่างพัฒนา) เกิดจริงในเรื่อง Rack → Bin (บทที่ 4)
และ R4/R5 (ข้อมูลรั่วข้ามบริษัท, ความลับรั่ว) ปรากฏเป็นข้อบกพร่อง ISS-031/ISS-032 ในรอบทดสอบ (บทที่ 6)
## บทที่ 3 — พัฒนาและควบคุมงาน
**ผู้เล่า:** PM (ApS) เล่าการติดตามงาน แล้วส่งต่อ SA (NoC) เล่าการพัฒนาและการควบคุม Source Code
**เปิด:** Progress Status Record (เลือก 1 งวด) → Minutes of Meeting ที่แนบ → Correction Register → Software Configuration
**ประโยคหลัก**
- "เราออกรายงานความก้าวหน้า 15 งวด ทุกฉบับถูกนำเสนอในการประชุมที่มีรายงานการประชุมรองรับ ดูได้จากช่อง 'สิ่งแนบ' ของรายงานการประชุม"
- "การประชุมแต่ละครั้งจัดในวันทำการ หลังงานที่ทบทวนเสร็จอย่างน้อย 5 วัน เพื่อให้มีเวลาตรวจผลงานก่อนรายงานว่าเสร็จ"
- "ข้อบกพร่องที่พบระหว่างพัฒนา 28 รายการ (ISS-001–028) ทุกรายการเชื่อมกับ Commit ที่แก้และ Test Case ที่ใช้ตรวจ"
- "Source Code อยู่บน Branch `main` เท่านั้น สำรองไปยัง Backup Remote ตั้ง Baseline การพัฒนา 29 พ.ค. และ Baseline ส่งมอบ `6c39700`"
**ตัวอย่างที่ควรเปิดให้ดู:** PSR 17 มี.ค. 69 → นำเสนอในการประชุม 23 มี.ค. 69 ซึ่งทบทวนงาน Security & Database (Commit สุดท้าย 17 มี.ค.)
## บทที่ 4 — การควบคุมการเปลี่ยนแปลง
**ผู้เล่า:** PM (ApS)
**เปิด:** Change Report ส่วนที่ 1–3 → MoM 18 พ.ค. → Correction Register ISS-023
**ประโยคหลัก**
- "เราใช้เกณฑ์ว่า 'ถ้าไม่ทำ ยังส่งมอบได้หรือไม่' ถ้ายังส่งมอบได้ ไม่ถือเป็นคำขอเปลี่ยนแปลง แต่บันทึกการพิจารณาไว้ทุกเรื่อง"
- "มี 3 เรื่องที่ผ่านการพิจารณา ไม่มีเรื่องใดเข้าเกณฑ์ จึงไม่มีคำขอเปลี่ยนแปลงตลอดโครงการ"
- "ตัวอย่าง: ที่ประชุม 18 พ.ค. มีมติเปลี่ยนคำว่า Rack เป็น Bin ทั้งระบบ เป็นการเปลี่ยนคำเรียก ไม่เพิ่มฟังก์ชัน ไม่กระทบ Man-day
ทีมแก้ใน Commit `8f57ab5` (27 พ.ค.) และพบว่าเปลี่ยนไม่ครบ จึงบันทึก ISS-023 และแก้ใน `5df6736` (28 พ.ค.)"
**ถ้าถูกถาม:** "8 เดือนไม่มี CR เลยหรือ?" → เปิดเกณฑ์ใน Change Report ส่วนที่ 1 แล้วไล่ทั้ง 3 เรื่องด้วยคำถามเดียวกัน
## บทที่ 5 — ตรวจสอบเอกสาร (Verification)
**ผู้เล่า:** SA (NoC) — ผู้ตรวจในบันทึกคือ PaNg และ NoC ส่วน YaB ควบคุมเอกสาร
**เปิด:** Software Project Plan §8.1 → Verification Results V0.1, V0.2, V0.3, V1.0
**ประโยคหลัก**
- "ตรวจสอบตามแผน 4 รอบ: 17 มี.ค. (แผนและความต้องการ), 29 พ.ค. (SRS และการออกแบบ), 31 ก.ค. (ชุดทดสอบและการสอบกลับ), 17 ส.ค. (ทุกสิ่งส่งมอบ)"
- "รอบสุดท้ายเราบันทึก **ไม่ผ่าน 2 รายการ** คือผลการทดสอบที่ยังมีข้อบกพร่องคงค้าง และชุดติดตั้ง Docker ที่ยังไม่ได้ทดสอบ แล้วเสนอให้ตรวจรับพร้อมแผนแก้ไข"
## บทที่ 6 — ทดสอบระบบและทดสอบการยอมรับ
**ผู้เล่า:** SA (NoC) — ผู้ทดสอบในบันทึกคือ PaNg (ทดสอบระบบ) และ SeV (UAT)
**เปิด:** Test Case and Test Procedures → Traceability Record → Test Report → Validation Results → Correction Register ISS-029–032
**ประโยคหลัก**
- "Test Case 45 รายการ หนึ่งรายการต่อหนึ่ง Software Unit จัดทำพร้อม Traceability Record เมื่อ 31 ก.ค. 69"
- "ทดสอบ 10–14 ส.ค. 69 บน Build `b2c4374` — ทดสอบได้ 43 รายการ ผ่าน 38 ไม่ผ่าน 5
อีก 2 รายการ (ชุดติดตั้ง Docker) ยังไม่ได้ทดสอบ เพราะส่งมอบหลังรอบทดสอบเมื่อ 17 ส.ค."
- "ข้อบกพร่องที่พบบันทึกเป็น ISS-029–032 ระดับสูงทั้งหมด:
ไฟล์แนบเปิดได้จาก URL (ISS-029), การผ่าน GL ไม่อยู่ใน Transaction เดียวกับเอกสาร (ISS-030),
Socket.IO ไม่ตรวจ Session (ISS-031), ค่าความลับในแม่แบบค่าตั้งค่า (ISS-032)"
- "UAT ทำคู่ขนานกับการทดสอบระบบตามมติที่ประชุม 10 ส.ค. ซึ่งต่างจากเกณฑ์เข้าสู่ UAT ในเอกสาร Test Case — เราบันทึกความต่างนี้ไว้ใน Validation Results
ผลคือความต้องการ 80 รายการ ผ่าน 60 ไม่ผ่าน 11 ยังไม่ได้ทดสอบ 5 และรอดำเนินการตามแผน 4"
**ถ้าถูกถาม:** "ทำไมไม่แก้ก่อนส่งมอบ?" → ข้อบกพร่องพบในสัปดาห์สุดท้ายของโครงการ เราเลือกบันทึกและแจ้งผู้รับมอบตามจริง
แทนการแก้เร่งรีบโดยไม่มีรอบทดสอบซ้ำ ผู้รับมอบจึงกำหนดเป็นเงื่อนไขการตรวจรับ (บทที่ 7)
## บทที่ 7 — ส่งมอบ ตรวจรับ และปิดโครงการ
**ผู้เล่า:** PM (ApS) — การตัดสินใจตรวจรับเป็นของ SeV ให้เล่าตามที่บันทึกใน Acceptance Report และ MoM 24 ส.ค.
**เปิด:** MoM 19 ส.ค. → Training Report → Product Operation Guide (OP-001/OP-002) → Acceptance Report → MoM 24 ส.ค. → List of Evidence
**ประโยคหลัก**
- "ประชุม 19 ส.ค. สรุปผลทดสอบ ผู้รับมอบรับทราบข้อบกพร่องและขอแผนแก้ไขก่อนตรวจรับ"
- "อบรมผู้ใช้ 6 คนเมื่อ 22 ส.ค. ปิดงานสำรองข้อมูลอัตโนมัติและการเฝ้าระวังเมื่อ 23 ส.ค."
- "24 ส.ค. ผู้รับมอบตรวจรับ **แบบมีเงื่อนไข**: (1) แก้ ISS-029–032 และทดสอบซ้ำภายใต้การบำรุงรักษาแบบแก้ไข
(2) ทดสอบ TC-UN13.002–003 ก่อนใช้ชุดติดตั้ง Docker ในสภาพแวดล้อมจริง — กำหนดติดตามใน Action Item ของการประชุม 24 ส.ค."
**ต้องเตรียม:** สถานะปัจจุบันของการแก้ไข ISS-029–032 (ผู้ตรวจจะถามแน่นอน) — ตอบตามความคืบหน้าจริง ณ วันตรวจ
## บทที่ 8 — สิ่งที่เราเรียนรู้
**ผู้เล่า:** PM (ApS)
**เปิด:** Correction Register ส่วน Lessons Learned
**ประโยคหลัก**
- "ข้อบกพร่องทั้ง 32 รายการจัดเป็น 5 กลุ่มสาเหตุ กลุ่มใหญ่ที่สุดคือความปลอดภัยและการควบคุมสิทธิ์ (15 รายการ รวม ISS-029, 031, 032)"
- "โครงการถัดไปเราจะกำหนด Secure Coding Checklist และรูปแบบการตรวจสิทธิ์กลางตั้งแต่ช่วงออกแบบ
และตามข้อแนะนำของที่ปรึกษา จะให้ PM กับ SI เดินผ่านโปรแกรมทั้งระบบพร้อม Document Control ก่อนรอบทดสอบ"
---
## เส้นสอบกลับสำหรับสาธิต (ซ้อมให้คล่อง)
**ผู้เล่า:** SA (NoC) เปิดเอกสารตามลำดับในตาราง PM (ApS) เสริมเฉพาะขั้นการยอมรับและเงื่อนไขการตรวจรับ
**เส้นที่ผ่าน — สต๊อกต้องไม่ติดลบ**
| ขั้น | รายการ | เอกสาร |
|---|---|---|
| ความต้องการ | CR01:008 บันทึกการจ่ายสินค้าออกโดยตรวจสิทธิ์และยอดคงเหลือ | Customer Requirements |
| ความต้องการซอฟต์แวร์ | SR03:004, SR09:003 | SRS |
| การออกแบบ | UN04.002 ICS – Stock-out (`StockManager.php`, `OrderManager.php`) | Software Design |
| ข้อบกพร่องระหว่างพัฒนา | ISS-002 พบ 18 เม.ย. แก้ใน `92d116f` 24 เม.ย. | Correction Register |
| การทดสอบ | TC-UN04.002 → Passed | Test Case, Test Report |
| การยอมรับ | CR01:008 → Passed | Validation Results |
**เส้นที่ไม่ผ่าน — ความถูกต้องของ Transaction**
| ขั้น | รายการ | เอกสาร |
|---|---|---|
| ความต้องการ | CR13:001 เอกสาร + สต๊อก + GL ต้องเป็น Transaction เดียวกัน | Customer Requirements |
| ความต้องการซอฟต์แวร์ | SR09:003 | SRS |
| การออกแบบ | UN08.002 Journal & GL Posting | Software Design |
| การทดสอบ | TC-UN08.002 → Failed (เอกสารไม่ถูก Rollback เมื่อการผ่าน GL ล้มเหลว) | Test Report |
| ข้อบกพร่อง | ISS-030 คงค้าง | Correction Register |
| การยอมรับ | CR13:001 → Failed → เงื่อนไขการตรวจรับข้อ (1) | Validation Results, Acceptance Report |
## เรื่องที่ต้องพูดตรง ๆ
| ประเด็น | คำตอบสั้น |
|---|---|
| ไม่มีคำขอเปลี่ยนแปลงตลอดโครงการ | มีการพิจารณา 3 เรื่องตามเกณฑ์ ไม่มีเรื่องใดเข้าเกณฑ์ หลักฐานอยู่ใน Change Report และรายงานการประชุม |
| ข้อบกพร่องคงค้างตอนตรวจรับ | บันทึกตามจริง แจ้งผู้รับมอบ และตรวจรับแบบมีเงื่อนไข — ห้ามบอกว่าแก้เสร็จก่อน 24 ส.ค. |
| UAT ไม่เป็นไปตามเกณฑ์เข้า | ผู้สนับสนุนโครงการอนุมัติให้ทำคู่ขนานในการประชุม 10 ส.ค. และบันทึกความต่างไว้ใน Validation Results |
| ชุดติดตั้ง Docker ยังไม่ได้ทดสอบ | ส่งมอบหลังรอบทดสอบ เป็นเงื่อนไขการตรวจรับข้อ (2) |
| Baseline ส่งมอบ `6c39700` ไม่ใช่ Build ที่ทดสอบ | Build ที่ทดสอบคือ `b2c4374` ส่วนที่เพิ่มหลังจากนั้นคือข้อมูลสาธิตและชุดติดตั้ง Docker ซึ่งระบุไว้ในเงื่อนไข |
## สิ่งที่ห้ามทำในวันตรวจ
- ห้ามแก้ไขหรือเติมเอกสารย้อนหลัง ถ้ามีบันทึกใหม่ให้ลงวันที่จริง
- ห้ามตอบเกินกว่าที่เอกสารบันทึกไว้ ถ้าไม่แน่ใจให้บอกว่า "ขอตรวจสอบเอกสารก่อน" แล้วเปิดดู
- ห้ามอ้าง Commit, Branch หรือเอกสารที่เกิดหลังวันที่ของเอกสารที่กำลังพูดถึง