ทำไมทีมที่มีตารางงานเต็ม 100% ถึงส่งงานช้าลง คำอธิบายจากสมการ Kingman
เวลารอในคิวไม่ได้เพิ่มตามอัตราการใช้งานแบบเส้นตรง เพราะสมการมีพจน์ ρ/(1−ρ) ซึ่งนำอัตราการใช้งานมาหารด้วยสัดส่วนกำลังที่ยังว่าง สมการ Kingman ชี้ว่าปุ่มที่ทีมเล็กกดได้จริงโดยไม่ต้องขอเพิ่มคน คือการลดความเหวี่ยงของงานที่ไหลเข้ามา

งานด่วนแทรกเข้ามาชิ้นเดียวกลางสัปดาห์ งานทั้งบอร์ดก็เลื่อนตามกัน งานที่นัดส่งวันศุกร์ถูกเลื่อนไปสัปดาห์หน้า ส่วนงานที่ควรเริ่มสัปดาห์หน้าก็ไม่ได้เริ่มเลยตลอดสปรินต์ พอถึงรอบรีวิว ไม่มีใครอธิบายได้ว่าทำไมงานที่ estimate ไว้สองวันถึงทำให้ตารางทั้งเดือนเลื่อนตาม ทั้งที่ทีมยังทำงานเท่าเดิม ไม่มีใครหายไปไหน และตารางก็ยังเต็มทุกช่องตามแผน
อาการนี้อธิบายได้ด้วยคณิตศาสตร์ที่มีมาตั้งแต่ปี 1961 เมื่อ John Kingman นักคณิตศาสตร์เผยแพร่วิธีประมาณเวลารอเฉลี่ยของงานในคิว ปัจจุบันวิธีนี้เรียกว่า สมการ Kingman หรือสมการ VUT สมการนี้ใช้ประมาณค่า ไม่ได้ให้คำตอบเป๊ะ แต่น่าประหลาดที่มันกลับแม่นเป็นพิเศษในสภาพเดียวกับที่ทีมกำลังเจอ นั่นคือเมื่อระบบทำงานใกล้เต็มกำลัง
Kent Beck นำสมการนี้มาอธิบายงานพัฒนาซอฟต์แวร์ในจดหมายข่าว Software Design: Tidy First? ตอน Busy is Short Volatility โดยชี้ว่าสมการ Kingman คือฐานคิดทางคณิตศาสตร์ของอาการยุ่งจนงานช้า และเป็นฐานคิดที่สวนสัญชาตญาณ
เวลารอในคิวเป็นผลคูณของสามอย่าง

สมการนี้ประมาณเวลารอเฉลี่ยด้วยผลคูณของสามพจน์ ได้แก่ อัตราการใช้งาน (utilization) ความผันผวน (variability) และเวลาทำงานต่อชิ้น (service time) ตัวย่อของทั้งสามพจน์ทำให้สมการนี้มีอีกชื่อว่าสมการ VUT จุดสำคัญอยู่ที่พจน์เหล่านี้คูณกัน เพราะถ้าเพียงพจน์เดียวมีค่าสูง มันจะขยายผลของพจน์อื่น ไม่ได้แค่บวกเพิ่มเข้าไป
พจน์แรกทำให้ตารางที่เต็มกลายเป็นปัญหา พจน์นี้เขียนเป็น ρ/(1−ρ) โดย ρ คืออัตราการใช้งาน ซึ่งคำนวณจากอัตราที่งานไหลเข้ามาหารด้วยอัตราที่ทำงานเสร็จ สำหรับระบบที่คิวยังทรงตัว ค่านี้จึงไม่น้อยกว่า 0 แต่ต้องต่ำกว่า 1 เพราะอัตราที่งานไหลเข้าต้องต่ำกว่าอัตราที่ทำงานเสร็จ จุดสำคัญคือตัวหาร 1−ρ ซึ่งหมายถึงสัดส่วนกำลังที่ยังว่าง ยิ่งรับงานเข้ามาด้วยอัตราที่ใกล้กับอัตราที่ทำงานเสร็จ กำลังว่างก็ยิ่งเหลือน้อย ตัวหารก็ยิ่งเล็ก และผลลัพธ์จะยิ่งโตเร็วกว่าที่สัญชาตญาณคาดไว้มาก
| อัตราการใช้งาน | ค่าของพจน์ ρ/(1−ρ) |
|---|---|
| 50% | 1 |
| 80% | 4 |
| 90% | 9 |
| 95% | 19 |
| 98% | 49 |
ตัวเลขในคอลัมน์ขวาเป็นค่าของพจน์เดียวในสมการ ไม่ได้บอกว่าทีมต้องรอกี่วันหรือกี่ชั่วโมง และนำไปแปลงเป็นหน่วยเวลาโดยตรงไม่ได้ ตัวเลขเหล่านี้แสดงให้เห็นว่าตัวคูณเร่งขึ้นแค่ไหนในแต่ละช่วง เมื่ออัตราการใช้งานเพิ่มจาก 50% เป็น 80% หรือเพิ่ม 30 จุดเปอร์เซ็นต์ ตัวคูณขยับจาก 1 เป็น 4 แต่เมื่ออัตราการใช้งานเพิ่มจาก 90% เป็น 95% หรือเพียง 5 จุดเปอร์เซ็นต์ ตัวคูณกลับขยับจาก 9 เป็น 19 การเพิ่มอัตราการใช้งานอีกนิดเดียวในตอนที่อัตราการใช้งานสูงอยู่แล้ว จึงมีต้นทุนต่างจากตอนที่อัตราการใช้งานยังต่ำอย่างมาก
เมื่อ ρ เข้าใกล้ 1 ตัวหารจะเข้าใกล้ศูนย์ ค่าจึงพุ่งเข้าหาอนันต์ Christoph Roser เขียนไว้ตรงๆ ว่า ถ้างานไหลเข้ามาเร็วกว่าที่ทำเสร็จ เวลารอจะพุ่งเข้าหาอนันต์ และแม้งานจะไหลเข้ามาเร็วเท่ากับอัตราที่ทำเสร็จพอดี เวลารอก็ยังพุ่งเข้าหาอนันต์อยู่ดี ดังนั้นจุดที่ฟังดูปลอดภัยที่สุดในการวางแผนอย่างการรับงานเข้ามาเท่าที่ทำไหวพอดี จึงไม่ใช่จุดที่คิวจะนิ่ง

ปุ่มที่สองคือความเหวี่ยง กดได้โดยไม่ต้องเพิ่มคน
พจน์ที่สองคือความผันผวน เขียนเป็น (ca² + cs²)/2 และรวมความเหวี่ยงจากสองแหล่งที่ต่างกัน ca วัดความเหวี่ยงของจังหวะที่งานเข้ามา โดยนำส่วนเบี่ยงเบนมาตรฐานของช่วงเวลาระหว่างงานแต่ละชิ้นมาหารด้วยค่าเฉลี่ย ส่วน cs วัดความเหวี่ยงของเวลาทำงานต่อชิ้นด้วยวิธีเดียวกัน ทั้งคู่จึงเป็น coefficient of variation คือค่าที่บอกความเหวี่ยงเทียบกับค่าเฉลี่ย ค่าแรกจะสูงเมื่องานเข้ามาเป็นกระจุกแทนที่จะทยอยเข้า ส่วนค่าหลังจะสูงเมื่อขนาดงานใน backlog ต่างกันมาก บางใบใช้เวลาครึ่งวัน บางใบใช้เวลาสองสัปดาห์ และไม่มีใครรู้ล่วงหน้าว่าใบไหนจะเป็นแบบไหน
Christoph Roser อธิบายสมการนี้ไว้อย่างละเอียดใน บทความบน AllAboutLean โดยใช้บริบทของสายการผลิตในโรงงาน ไม่ใช่ทีมซอฟต์แวร์ ตัวอย่างที่เขาคำนวณช่วยให้เห็นชัดว่าตัวเลขเหล่านี้มาจากไหน งานเข้ามาเฉลี่ยทุก 10 นาที โดยมีส่วนเบี่ยงเบนมาตรฐาน 8 นาที และใช้เวลาทำเสร็จเฉลี่ยชิ้นละ 8 นาที โดยมีส่วนเบี่ยงเบนมาตรฐาน 7 นาที อัตราการใช้งานจึงเท่ากับ 80% ส่วน ca เท่ากับ 0.8 และ cs เท่ากับ 0.875 สมการทำนายเวลารอเฉลี่ยไว้ที่ 22.49 นาที เมื่อเขานำเงื่อนไขชุดเดียวกันไปจำลองด้วยการแจกแจงคนละแบบ ผลลัพธ์คือ 20.8 นาทีเมื่อใช้การแจกแจงแบบ Lognormal, 21.19 นาทีเมื่อใช้แบบ Weibull และ 18.16 นาทีเมื่อใช้แบบ Pearson Type V ทั้งสามค่าเกาะอยู่รอบตัวเลขที่สมการทำนายไว้ ทั้งที่สมการเป็นเพียงการประมาณ
เนื่องจากพจน์อัตราการใช้งานกับพจน์ความผันผวนคูณกัน แค่พจน์ใดพจน์หนึ่งมีค่าสูง คิวก็ยาวขึ้นแล้ว และถ้าสูงพร้อมกันทั้งคู่ ผลของสองพจน์ก็ยิ่งขยายกัน ในทางกลับกัน หากลดค่าพจน์ใดพจน์หนึ่งลง ผลลัพธ์ทั้งก้อนก็ลดตาม Roser จึงสรุปแนวทางปฏิบัติไว้เป็นคู่ ถ้าความผันผวนสูง ให้ลดอัตราการใช้งาน ถ้าอัตราการใช้งานสูง ให้ลดความผันผวน ทีมที่ขอเพิ่มคนไม่ได้จึงยังลดพจน์ความผันผวนได้ เท่าที่ควบคุมจังหวะงานเข้าและเวลาทำงานต่อชิ้นได้
ความยุ่งเต็มพิกัดคือการขายความผันผวน

Kent Beck เปรียบการทำให้ทีมยุ่งกับการขายความผันผวนรูปแบบหนึ่งที่สังเกตได้ยากที่สุด และกรอบนี้ตรงกับสิ่งที่สมการบอกพอดี ทีมที่จองงานไว้เต็ม 100% ได้ประโยชน์เล็กๆ แต่แน่นอนในทุกวันที่ไม่มีอะไรผิดแผน ทุกชั่วโมงของทุกคนมีงานรองรับ ตัวเลขการใช้ทรัพยากรดูดี และรายงานก็ดูคุ้มค่า แต่ต้นทุนจะไปโผล่ในวันที่เกิดเรื่องไม่คาดคิด ซึ่งเป็นวันที่มาถึงเสมอ วันนั้นทีมอยู่ในช่วงที่เส้นโค้งตั้งชันแล้ว ถ้าทีมรับงานแทรกจนทำให้อัตรางานเข้าสูงขึ้น ρ ก็จะขยับไปในช่วงที่เวลารอเฉลี่ยของทั้งคิวเพิ่มขึ้นเร็วกว่าช่วงอื่นมาก ต่างจากช่วงที่อัตราการใช้งานยังต่ำ ซึ่งการเพิ่มอัตราการใช้งานเท่ากันจะทำให้เวลารอเฉลี่ยขยับน้อยกว่า
ประโยคที่หยิบไปใช้ในห้องประชุมได้คือ ตารางที่เต็ม 100% เท่ากับยืมเวลาของสัปดาห์หน้ามาใช้ในสัปดาห์นี้ เมื่อฝ่ายบริหารถามว่าทำไมงานถึงช้าลงทั้งที่ทีมยุ่งขึ้น ก็อธิบายได้ด้วยกลไกที่ชัดเจน ในกรณีนี้ ความช้าไม่ได้เกิดจากคนทำงานช้าลง แต่เกิดจากสัดส่วนกำลังที่ยังว่างในตัวหารลดลง
ปรับอะไรได้บ้างในสปรินต์หน้า
- เว้นช่องว่างไว้ตั้งแต่ตอนวางแผน อย่ารอให้เกิดไฟไหม้ก่อน เพราะช่องว่างที่กันไว้จะช่วยไม่ให้ ρ ไต่เข้าสู่ช่วงที่เส้นโค้งตั้งชัน
- ตั้งเพดานงานที่รับเข้าคิวพร้อมกัน ตัวตั้งของ ρ คืออัตราที่งานไหลเข้ามา ถ้าทีมเติมงานใหม่เข้าคิวทุกครั้งที่มีคนว่าง อัตรานั้นจะไล่ตามอัตราที่ทำเสร็จไปเรื่อยๆ ซึ่งเป็นกรณีที่ Roser บอกว่าเวลารอยังพุ่งเข้าหาอนันต์อยู่ดี เพดาน WIP จึงช่วยได้ก็ต่อเมื่อมันทำให้ทีมปฏิเสธงานใหม่จริง
- ซอยงานก้อนใหญ่ที่ estimate ไม่ได้ให้เล็กลง งานที่มีขนาดใกล้เคียงกันจะทำให้
csต่ำลง และลดเวลารอได้โดยที่คุณไม่ต้องเพิ่มจำนวนคน - แยกเลนงานแทรกออกจากงานตามแผน งานด่วนที่ยัดเข้าคิวเดียวกับงานตามแผนทำให้จังหวะงานเข้าของคิวนั้นกระชากขึ้น ซึ่งก็คือ
caที่สูงขึ้น ถ้ากันกำลังคนไว้ส่วนหนึ่งสำหรับงานแทรกตั้งแต่ต้นสปรินต์ แล้วให้งานด่วนใช้ได้เท่าที่โควตานั้นรับไหว คิวงานตามแผนจะเจอจังหวะงานเข้าที่สม่ำเสมอกว่าเดิม - เลิกใช้อัตราการใช้งานเป็นตัวชี้วัดความสำเร็จของทีม ตามสมการ เมื่อพจน์อื่นเท่าเดิม ยิ่งค่านี้สูง เวลารอก็ยิ่งยาวขึ้น ตัวเลขที่สมการพูดถึงโดยตรงคือเวลารอในคิว ซึ่งเป็นส่วนหนึ่งของ lead time ที่ลูกค้าเห็น จึงควรเอาตัวนั้นมาดูมากกว่าเปอร์เซ็นต์ที่คนในทีมถูกจองไว้
ข้อจำกัดของสมการก็ต้องพูดให้ครบ สมการนี้สร้างขึ้นสำหรับคิวแบบ G/G/1 ซึ่งมีคิวงานเพียงคิวเดียวและหน่วยให้บริการเพียงหน่วยเดียว Roser เองบอกว่าคิวแบบนี้พบได้ยากในโลกจริง ทีมพัฒนาที่มีหลายคนรับงานพร้อมกันจึงไม่ตรงกับโมเดลนี้เป๊ะ เขายังเขียนไว้ตรงๆ ว่าสมการนี้ใช้คำนวณระบบจริงได้จำกัด คุณค่าของมันอยู่ที่ความสัมพันธ์ที่แสดงให้เห็น
แหล่งข้อมูลที่อ้างในบทความนี้ไม่ได้ระบุว่าอัตราการใช้งานที่เหมาะสมคือกี่เปอร์เซ็นต์ Roser บอกเพียงทิศทางว่า ยิ่งอัตราการใช้งานต่ำ lead time ก็ยิ่งสั้น พร้อมเตือนว่าต้องแลกกับความคุ้มค่าของเงินทุนที่ลดลง แต่ละทีมจึงต้องชั่งน้ำหนักเองว่าตัวเลขใดพอดี อย่างไรก็ตาม สมการให้คำตอบไว้แล้วที่ปลายสเกลด้านหนึ่ง เมื่ออัตราการใช้งานเข้าใกล้ 100% ค่าจะพุ่งเข้าหาอนันต์
ที่มา:
- บทความ Busy is Short Volatility จากจดหมายข่าว Software Design: Tidy First? ของ Kent Beck
- บทความ The Kingman Formula จาก AllAboutLean.com
- เอกสารอ้างอิง Kingman's formula จาก Wikipedia
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
NotebookLM ฉบับเข้าใจง่าย โยนเอกสารให้ AI อ่าน แล้วได้สรุป พอดแคสต์ และคลังความรู้ส่วนตัว
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
Claude Cowork · The Business Playbook

ฉบับภาษาไทย 15 บท เรียนรู้ผ่านโปรเจกต์จำลองต่อเนื่องทั้งเล่ม ตั้งแต่ตั้งค่า Workspace จัดการไฟล์ เชื่อมแอป ตั้งระบบอัตโนมัติ จนถึงสร้าง Plugin


