วันอาทิตย์ที่ 4 ตุลาคม พ.ศ. 2552

แพทเทิร์น Agile – ยืนประชุมประจำวัน

"คนเรายืนนานๆแล้วเมื่อย ถ้าต้องยืนประชุมจะได้ไม่เยิ่นเยื้อ หาข้อสรุปได้เร็วๆไม่เสียเวลาทุกคน"

Agile เน้นการสื่อสารบ่อยๆ นั่นหมายถึงแต่ละวันสมาชิกในทีมควรมีเวลาเล่าให้คนอื่นฟังถึงความคืบหน้าและ ปัญหาที่ติดที่คนอื่นอาจช่วยได้ ให้ทุกคนฟัง แต่ทำยังไงให้ประชุมไม่ยืดเยื้อ จนเสียเวลาทำงาน หรือนานจนหมดสมาธิ

แรงผลักดันทั้งแง่บวกและลบ
- การสื่อสารระหว่างสมาชิกในทีมเป็นสิ่งสำคัญ สมาชิกในทีมควรรู้ถึงความคืบหน้าของโครงการโดยรวมจากสิ่งที่สมาชิกแต่ละคนทำอยู่
- เวลาเป็นของมีค่า ทีมพัฒนาควรใช้เวลาส่วนใหญ่วางแผน ออกแบบ เขียน และทดสอบโปรแกรม ถ้าต้องเสียเวลาประชุมบ่อยๆครั้งละนานๆคงไม่เหมาะ
- การได้เล่าถึงปัญหาที่เราติดอยู่ อาจมีคนอื่นรู้วิธีแก้ปัญหาสามารถช่วยเหลือได้
- การประชุมสำหรับทีมที่มีสมาชิกมากๆ มักยืดเยื้อ และฟังดูเป็นทางการ
- ประชุมสั้นไป อาจทำให้ได้ข้อมูลไม่ละเอียดพอที่ทุกคนจะเข้าใจตรงกัน

ดังนั้น

เราควรจะจัดประชุมรับฟังความคืบหน้าของสมาชิกในทีมทุกคน จัดประชุมเป็นรายวันโดยให้แต่ละคนสรุปถึงสิ่งที่ตนทำในวันที่ผ่านมา ปัญหาที่ตนติดอยู่ และสิ่งที่คาดว่าจะทำในวันนั้น โดยแต่ละคนไม่ควรใช้เวลาเกินหนึ่งนาที เพื่อป้องกันความยืดเยื้อจากการประชุมนานๆ ให้ทุกคนยืนประชุม เพื่อเป็นการบังคับไม่ให้ประชุมนานจนคนยืนทนไม่ไหว ควรจำกัดเวลาประชุมไม่ให้เกินสิบหรือสิบห้านาที เรื่องไหนที่คิดว่าจะยืดเยื้อ ต้องรีบหยุดและไปคุยนอกรอบแทน

ประโยชน์
- ประชุมรายวัน ช่วยการสื่อสารข่าวสารในทีมให้ทันเหตุการณ์
- ปัญหาที่เราเล่าให้ทีมฟัง อาจมีคนเคยเจอและรู้วิธีแก้ ทำให้เราไม่ต้องเสียเวลาค้นวิธีแก้ปัญหาเอง
- ทุกคนรู้ว่่าถ้าประชุมนาน จะต้องยืนจนเมื่อย ทำให้ตัดสินใจว่าเรื่องไหนควรคุยต่างหาก เรื่องไหนที่ต้องรีบตัดสินใจ เรื่องไหนควรคุยนอกรอบ
- การได้ฟังตัวอย่างดีๆจากความคืบหน้าของผู้อื่น ทำให้เราอยากมีผลงานให้เทียบเท่าหรือทำให้ดียิ่งขึ้น
- การยืนประชุมไม่เหมาะสำหรับทุกเรื่อง เรื่องที่ต้องใช้เวลานาน ควรใช้วิธีการประชุมแบบปกติ
- ถ้าจัดประชุมตอนเช้า เป็นการลดปัญหาคนมาทำงานสายไปในตัว

เทคนิคในทางปฏิบัติ

Agile พยายามหลีกเลี่ยงอะไรที่เป็นทางการ แต่ในขณะเดียวกันวิธีนี้จะประสบความสำเร็จเมื่อทุกคนต้องมีวินัยมีความรับ ผิดชอบสูง การประชุมที่ใช้เวลาสั้นๆจึงสำคัญมากที่ทุกคนต้องตรงเวลา การยืนประชุมครั้งแรก อาจต้องมีคนแนะนำถึงขั้นตอน ส่วนใหญ่สมาชิกจะยืนล้อมเป็นวงในพื้นที่ว่างๆที่ใกล้จุดที่สมาชิกส่วนใหญ่ทำ งาน ไม่จำเป็นต้องจัดในห้องประชุม เพื่อลดความเป็นทางการลง ถ้าทีมมีการใช้ฝาผนังเก็บข้อมูลโครงการ เช่น story card, burnup chart ก็ควรประชุมใกล้ๆฝาผนังเพื่อจะได้ง่ายต่อการอ้างอิงถึงข้อมูลบนฝาผนัง ถ้าการประชุมนอกห้องประชุมส่งเสียงดังรบกวนทีมอื่นจริงๆ ค่อยย้ายไปที่ห้องประชุม

ผู้นำประชุมอาจเป็นผู้จัดการโครงการ ที่เล่าให้คนในทีมฟังถึงข่าวสารที่น่าสนใจ ความคืบหน้า และประเด็นที่เกี่ยวข้องจากทีมอื่นหรือจากองค์กร แล้วให้สมาชิกในทีมแต่ละคน เล่าให้ฟังถึงสิ่งที่ตนทำในวันที่ผ่านมา สิ่งที่ติดขัดที่ผู้อื่นสามารถช่วยเหลือได้ และสิ่งที่ตนตั้งใจที่จะทำในวันนั้น เพื่อเป็นการป้องกันปัญหาว่าถึงคิวใครเป็นคนคุย อาจใช้ปากกาหนึ่งแท่งเป็นตัวกำหนดว่าคนที่ถือปากกาเท่านั้นที่จะเป็นผู้พูด ให้คนอื่นฟัง นอกจากใช้ปากกาแล้ว อาจใช้สื่ออะไรก็ได้ อย่าง ลูกเทนนิส ตุ๊กตา ลูกบอล ก็จะเป็นการลดความเป็นทางการของการประชุม ผู้ดูแลการประชุมควรคอยสังเกตและควบคุมเวลาการพูดของแต่ละคนไม่ให้ยืดเยื้อ หรือนอกเรื่อง ถ้ามีหัวข้ออะไรที่ต้องใช้เวลาคุย หรือการตัดสินใจที่ต้องคิดนาน ก็ให้แยกไปคุยนอกรอบไป

บางครั้งการเรียงคิวพูดทีละคนอาจทำให้คนที่เตรียมพูดคนถัดไป ไม่สนใจคนอื่นฟังเพราะต้องเตรียมคิดว่าตัวเองจะพูดอะไรบ้าง ดังนั้นเราอาจกำหนดสุ่มว่าใครควรจะเป็นผู้พูดคนถัดไป เทคนิคนึงก็คือ การโยนปากกาที่คนพูดๆเสร็จ ไปให้ใครก็ได้ที่ต้องการให้พูดต่อ ห้ามส่งให้คนที่อยู่ข้างๆตน จะทำให้แต่ละคนต้องเตรียมเรื่องที่จะพูดให้เรียบร้อยก่อนประชุม และตั้งใจฟังคนอื่นพูดมากขึ้น

ทีมที่มีขนาดใหญ่มากๆอาจมีปัญหาในการควบคุมเวลาและหาสถานที่ที่ใหญ่พอที่ ทุกคนจะยืนประชุมได้ และทำให้ฟังลำบากถ้าคนพูดอยู่ไกลและพูดเสียงเบา ปัญหานี้ไม่ควรมีเพราะ agile ไม่ส่งเสริมให้ทีมมีขนาดใหญ่เกินไป สิบคนน่าจะเป็นจำนวนสูงสุดของทีม ถ้าทีมไหนมีสามาชิกเกิน ควรแบ่งออกเป็นทีมย่อย โดยแต่ละทีมอาจให้ผู้จัดการทีม เป็นผู้ประสานงานข้ามทีมย่อย

แพทเทิร์นที่เกี่ยวข้อง
การยืนประชุมเป็นส่วนหนึ่งของกิจกรรมสำคัญของทีม Agile โดยเล่าถึงความคืบหน้าจากแผนที่่วางจาก การประชุมการวางแผนระดับ Iteration โดยแต่ละคนจะรายงานถึงความคืบหน้าของ Story card ที่ตนทำอยู่


ที่มา http://www.thaidev.org/?p=68