Agile for ?M
บอกตามตรงครับว่า ช่วง 2–3ปีหลังๆ (2021–2023) ที่ผ่านมานี้ ผมได้ไปเจอทีม Software Dev ที่ทำ Agile หรือ Scrum มาหลายรูปแบบ ซึ่งจะดูทิศทางไปแนวๆเดียวกัน และเป็นแนวที่ผมจะรู้สึกแปลกๆ ไม่ค่อยสบายใจเป็นการส่วนตัว ค่อนข้างมากอยู่พอสมควรเลย
สิ่งที่ผมรู้สึกไม่ค่อยสบายใจที่สุดก็คือการ estimate งานใน sprint ที่เดิมผมเคยทำมา เราจะใช้หลักการการใช้ point หรือ ใช้เลขลำดับ fibonacci เป็นเกณฑ์ เพื่อสื่อสารว่างานนั้นๆมีความยากง่ายในระดับไหน แต่ช่วงที่ผ่านมา ผมเจอหลายที่ถูกกำหนดให้ estimate เป็น man day หรือ man hour แทน และที่สนุกกว่าคือ วิธีการ Daily จะใช้วิธี walk the wall และคนที่เป็น facilitator คือ Scrum Master หรือ PO ซึ่งในบางทีมผมมักจะได้ยินคำถามว่า Story นั้นจะใช้เวลาอีกกี่วัน เหมือนต้องการ commmitment ให้ชัดว่ายังตรงตามที่ประเมิณไว้แน่นะ
ผมเคยพยายามตั้งคำถามให้ทีมว่า สิ่งนี้ได้ประโยชน์อย่างไร และกับใคร เพราะการที่ประเมิณ story ออกมาแล้วหน่วยเป็น days มันจะกลับมาผูกขาทีมไว้ เพราะ
สมมุติว่าทีมมีสมาชิก 5 คน กำหนดให้ sprint ละ 10 work days (รวมวันหยุดพิเศษ) แปลว่าทีมมี capacity เท่ากับ 50 point แต่ความเป็นจริง ผมเห็นของที่เข้า sprint จะมีแต้มเฉลี่ยอยู่แถวๆ 20–30 โดยประมาณแทบจะทุกทีม คำถามคือ ถ้าทีมโดน challenge ว่าทำไมถึงรับงานได้น้อยกว่า cap ที่มี ทั้งๆที่ความเป็นจริง ทีมรู้ตัวอยู่แล้วว่า 30 point ก็แทบจะล้นแล้วก็ตาม
ผมก็ยังจะตั้งคำถามต่อไปว่า สิ่งนี้ใครได้ประโยชน์ แล้วได้อย่างไร เพราะโดยส่วนตัว ผมรู้สึกมาตลอดว่า การ estimate มันไม่แม่นจริง และมันไม่ได้ reflect ตรงไปตรงมากับเวลาที่เราใช้ในการทำจริง แถมยังรู้สึกกดดันเข้าไปอีก ตามมาด้วยความรู้สึกอึดอัดแบบบอกไม่ถูก
แต่ไม่ว่าอย่างไรก็ดี ผมคิดว่าคนที่อยากเห็นการ estimate เป็นหน่วยวัน ก็อาจจะมีแง่มุมที่เขาจะสามารถเอาไปทำประโยชน์อย่างอื่นได้ง่ายขึ้น แต่ในด้านของผม ที่มักจะยืนอยู่ฝั่งทีม ผมรู้สึกอึดอัด และมักจะคิดเสมอว่า เอ ทำไมวิธีการทำงานของเรา ที่จะสะดวก แต่คนอื่นไม่สะดวก ผมคิดว่าเราควรพูดคุยกันเพื่อหาจุดที่ทุกฝ่ายสามารถทำงานได้สะดวกและสบายใจไปด้วยกันได้ ไม่ควรเป็นรูปแบบที่
เราได้ความสะดวกอยู่ฝ่ายเดียว
การทำ Software ต้องสนุก ถ้ามันไม่สนุกก็ต้องหาทางแก้ และการพูดคุยไม่ใช่สิ่งที่เกิดขึ้นไม่ได้
ยกตัวอย่างเช่น ถ้า management ต้องการเห็น working hour/day ว่าใช้ไปกับงานอะไรบ้าง ผมคิดว่าโดยปกติทีม Agile มักจะเป็น dedicated กันอยู่แล้ว มันไม่ได้ยากที่จะบอกว่าคนเหล่านั้นทำอะไรในแต่ละวัน ซึ่งถ้าหากอยากให้ลงรายละเอียดว่า ประชุม หรือ dev ในมุมผม มันก็ project เดียวกันในแง่การทำ tracking แต่ถ้ามันมีงานอื่นๆด้วย ผมว่าไปทำ clock แยกกันให้เป็นเรื่องเป็นราว ใช้เครื่องมือให้เหมาะสมกับงานกันไปเลย น่าจะดีกว่าครับ
เรื่องนี้มันเป็นความคิดเห็นล้วนๆ จากตัวผมเอง ไม่ได้พยายามจะบอกว่ามันผิดหรือถูก จะมองว่าเป็น feedback ก็ได้ครับ แต่ก็หวังว่าจะมีการพูดคุยเรื่องนี้กับทีมก่อนจะกำหนดรูปแบบลงไปกันเอง น่าจะเป็นทางเลือกที่ดีครับ