Kanban คืออะไร? ช่วยควบคุม flow งานให้ทีมทำงานได้ดีขึ้นได้อย่างไร? by

27
Dec
0

ตามที่เกริ่นไว้จากบทความเดือนที่แล้ว “การสร้างวัฒนธรรมการทำงานเป็นทีมที่มีประสิทธิภาพ” ซึ่งเป็นการเล่าถึงการสร้างสภาพแวดล้อมของทีมที่น่าทำงานด้วยกันขึ้นมาระหว่างเรากับเพื่อนร่วมงาน ครั้งนี้มาเป็นรูปธรรมเอาไว้ช่วยให้ Process เดินไวขึ้นครับ :) แน่นอนว่าถ้าเราดันไม่กินเส้นกับเพื่อนร่วมงาน หรือมีการเมืองในองค์กร มีการโทษกันไปมา บทความนี้คงจะไม่มีประโยชน์อะไร ต้องไปอ่านบทความที่แล้วให้ดีซะก่อนครับ

Kanban ที่มาเริ่มต้นมาจากระบบการทำงานของ Toyota ซึ่งประสบความสำเร็จอย่างมากจนทำให้สามารถผลิตรถออกมาได้ไวกว่าคู่แข่งทั่วโลกจนครองตลาดไปได้มาก สำหรับวงการ Software ได้ถูก David J. Anderson จับนำมาปรับปรุงให้เข้ากับ Software Development เพื่อการพัฒนา Software ได้อย่างรวดเร็วที่สุดด้วยเช่นกัน และสุดท้ายถูกนำไปเป็นส่วนหนึ่งของ Lean Software Development รวมไปถึงถูกจัดให้เป็น Agile อีกแบบหนึ่งนอกเหนือไปจาก Scrum อีกด้วย

Kanban มีกฎอยู่แค่ 3 ข้อ (Scrum มี 9)

  1. Visualize the workflow – แสดง flow การทำงานของระบบให้ออกมาให้เห็นภาพอย่างชัดเจน สามารถบอกได้ว่าขณะนี้งานไปติดขัดที่จุดไหน อย่างไรให้ชัดเจน
  2. Limit Work In Progress (WIP) – จุดหลักของ Kanban เลยคือการ limit งานต่อหนึ่งหน่วยย่อย เช่นงานสำหรับ Development ห้ามถือเกิน 2 งานเพื่อป้องกันไม่ให้งาน Overload มากเกินไป และจะทำให้สูญเสียเวลาไปมากกว่าที่ควรจะเป็น
  3. Measure the lead time – วัดผลการทำงานและปรับปรุงให้ดียิ่งขึ้นไปอีก ตรงนี้จะเรียกว่า Cycle time หรือค่าเฉลี่ยที่ Card 1 อันจะอยู่บนบอร์ดตั้งแต่เริ่มต้นไปจนถึงขึ้นบน production จริง

ข้อดีของ Kanban

  1. เหมาะกับการทำงานหลายๆ project พร้อมกันมากกว่า Scrum
  2. เหมาะกับการทำงาน Maintain, Support ระบบแก้ bug ที่โผล่มาแบบปัจจุบันทันด่วนไปพร้อมๆ กับการพัฒนา feature มาก เพราะสามารถเปลี่ยนแปลงได้เกือบตลอดเวลา ไม่ต้องรอให้จบ sprint
  3. เหมาะกับทีมงานที่มี Specialist อยู่ในทีม และต้องการการ share resource จาก specialist คนนี้พร้อมๆ กัน โดยที่ไม่ทำให้ specialist คนนี้มีงาน overload เกินไป
  4. แน่นอน หากเป็นงาน backend, frontend แยกกันและไม่สามารถฝึกให้คนในทีมเขียนได้ทั้งสองอย่างพร้อมๆ กันได้ Kanban จะช่วยตรงจุดนี้ได้ในแง่การจัดการ flow เช่นงาน backend เสร็จแล้ว รอ frontend หยิบไปทำต่อ ในขณะที่ backend ก็ทำงานใหม่หลังจากส่งงานต่อให้ frontend แล้วทันที ทำให้ไม่มีการว่างงานเกิดขึ้น
  5. หากงานใหญ่ไม่สามารถซอยให้เล็กลงได้แล้วจริงๆ ก็ไม่ใช่ปัญหาสำหรับ Kanban เพราะไม่มี sprint เป็นตัวจำกัดอีกแล้ว
  6. เสริมสร้างความช่วยเหลือระหว่างคนในทีม เนื่องจากแค่มองบอร์ดจะรู้ทันทีว่าตอนนี้งานติดอยู่ที่ใครมากที่สุด (เป็น bottleneck ของ flow ในขณะนั้น) เพื่อนร่วมงานที่เหลือก็จะเข้าไปช่วยกัน เพื่อทำให้ bottleneck ของงานหายไปโดยเร็วที่สุด และสุดท้ายจะสามารถทำงานงาน flow ต่อไปได้ ทำให้งานโดยภาพรวมเสร็จสิ้นมากขึ้น
  7. ช่วยแก้ปัญหา “ทำงานโน่นนิด นี่หน่อย เยอะมาก แต่ไม่เสร็จซักกะงาน” ได้เป็นอย่างดี ด้วย WIP

kanbanandscruminfoqversionfinal
ตัวอย่าง Kanban Board

จากรูปจะเห็นว่า Selected มี (2) ต่อท้าย หมายถึงช่องนี้สามารถรับงานได้แค่ 2 งานเท่านั้น ห้ามยัดมามากกว่านี้ ส่วน Develop จะเป้น (3) ก็คือรับทำงานพร้อมกันไม่เกิน 3 งาน ส่วนของ Deploy ว่างอยู่ซึ่งสามารถดึง A (Done แล้ว) ไปทำต่อได้ และ Live! ก็คือขึ้นบน Production สำเร็จนั่นเอง 1 cycle time คือ card 1 ใบที่วิ่งผ่านตั้งแต่ selected ถึง live! ใช้เวลาทั้งหมดเท่าไรนั่นเอง

จริงๆ ยังมีรายละเอียดอีกมาก แต่ไปอ่านเพิ่มเติมได้ที่

http://www.infoq.com/minibooks/kanban-scrum-minibook

ปล. ขอบคุณพี่กรที่มาแบ่งปันเรื่อง Kanban ให้ผมและคนอื่นๆ รู้ครับ :)

ปล 2. Practice ต่างๆ อย่าง TDD, Pair Programming, Code Review, Retrospective, Standup Meeting ก็ยังหยิบมาใช้ได้ แค่ว่าจะไม่ fix ว่าต้องทำเมื่อไหร่ อาจ set ให้มีเฉพาะเวลาที่จำเป็นเท่านั้น ไม่ใช่ว่าห้ามทำ

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน