เรียนรู้ Agile part 1
ทีมจัดให้เรียนกับคุณ Roof ซึ่งเขาสอนดีมากๆเลย เรื่อง Agile เคยทำมาบ้างแต่ไม่เท่าที่เรียนนี้ ผมถือว่าตนเองเริ่มต้นใหม่ เข้าใจ Agile และ Scrum อย่างไร ก็จะมาเล่าตามความเข้าใจนะครับ
Agile เป็นเพียงความคิดอย่างหนึ่งในการทำงานครับ คือไม่เน้นเอกสาร (เปลี่ยนเป็นการพูดคุยกันมากขึ้น สนิทใจขึ้น) ยอมรับความเปลี่ยนแปลงที่อาจจะเกิดขึ้นเมื่อใดก็ได้ ทำชิ้นงานทีละนิดแต่ทำบ่อย ส่งมอบชิ้นงานเป็นระยะ ทำให้เจ้าของชิ้นงานเห็นการเปลี่ยนแปลงและการเติบโตนั้นเสมอ
ส่วน Scrum เป็นเพียงการประยุกต์ใช้ Agile ให้เกิดผลขึ้นจริงครับ
ทำไมต้อง Agile?
เหตุผลใหญ่คือ ความคิดการทำงานอย่างที่เคยๆนี้ไม่สามารถส่งมอบชิ้นงานที่เป็นที่ต้องการจริงๆแก่เจ้าของชิ้นงานได้ กล่าวคือได้ชิ้นงานครับ (ตามกำหนดเวลาส่งมอบ) แต่ชิ้นงานนั้นคืออะไรไม่รู้ ไม่ตอบโจทย์ไง
สมมติเจ้าของชิ้นงาน ต่อไปจะเรียกว่า product owner นะครับ อยากได้เว็บโรงเรียนใหม่ เขาก็ไปจ้างโปรแกรมเมอร์หรือมือปั้นเว็บไซต์มาสักคนสองคนทำงานให้ นัดกันสองเดือนส่งงาน ซึ่งผ่านมาสองเดือนได้งานจริงครับ ทว่าเว็บโรงเรียนใหม่นี้มันยังไม่ตอบโจทย์ที่ต้องการจริงๆ จะขอแก้ไขทำโน่นนี่นั่น ปรากฏว่าผ่านไปอีกเดือนส่งงาน เอาอีกแล้ว มันยังไม่ใช่อย่างที่คิดไว้ สมมติว่าจ้างทำ 35,000 บาท บอกปรับแก้ จ่ายไปอีก 5,000 ยังไม่ได้ดั่งใจ แก้อีก 3,000 เจอ bugs จัดไปอีก 2,000 สุดท้ายก็ใช้คำว่าช่างมัน คือเจ้าของชิ้นงานจ่ายไปเยอะแล้ว หมดตูด ได้เท่าไหนก็เท่านั้น ถ้าอารมณ์ออกมาแนวนี้ เปิดใจใช้ Agile ก็เป็นทางเลือกหนึ่งที่ดีนะครับ
ทีนี้การจะ implement (นำไปใช้ให้เกิดขึ้นจริง) Agile ก็มีหลายวิธีทาง ทางหนึ่งที่ได้รับความนิยมก็คือวิธีการ Scrum
แล้ว Scrum อย่างไรให้ได้ประสิทธิภาพตามความคิดของ Agile?
เอาตามความรู้สึกนึกคิดของผมนะ
1) product owner และทีมสร้างชิ้นงานต้องเจอกันให้บ่อยครับ โดยเฉพาะช่วงแรกๆ (หลังๆคือรู้ใจรู้มือกันแล้วไง ก็ตามวาระไป) นัดกินข้าว จีบกาแฟอะไรก็ว่าไป
2) วางแผนร่วมกันครับ, product owner พูดมาว่าอยากได้อะไร อย่างไรบ้าง เอามาแบให้หมดเลย เปรียบเหมือนกระดาษวาดภาพระบายสีของเด็กน้อยที่ product owner ต้องเล่าและวาดโครงร่างต่างๆออกมาให้ (เกือบ) ครบถ้วน, ครบถ้วนของผมนี่หมายถึงดีที่สุดที่เขาจะบอกกับทีมได้ ไม่ใช่รู้ตรงนี้ 10% ตรงนั้น 20% อันนี้ไม่ได้ ต้องให้เขากลับไปค้นคว้าหรือตอบตัวเองให้ได้ก่อนว่าสิ่งที่ต้องการนั้นคืออะไรกันแน่ หากออกมาดีเราจะได้สิ่งที่เรียกว่า User Story ครับ
3) เจ้า User Story นี้มันต้องสามารถตอบได้ว่าอะไรคือสิ่งที่ product owner ต้องการ ซึ่งมีขอบเขตให้ทีมสามารถสร้างขึ้นได้ตามระยะเวลาที่กำหนดในแต่ละรอบเวลา (ต่อไปจะเรียกรอบเวลานี้ว่า Sprint)
User Story ที่ดีต้องมีความ ‘พอ’ ในตัวเอง คือเอาแค่นี้ก่อน ให้เกิดชิ้นงานขึ้นมาก่อน โดยที่คำว่า ‘พอ’ นี้คือสิ่งที่ product owner อยากได้มากที่สุด สามารถทดสอบได้ว่าเท่านี้ก่อนคือผลสำเร็จนะ
ตัวอย่างเช่นเว็บโรงเรียนใหม่ product owner ต้องการเว็บโรงเรียนใหม่ที่มีรูปครูใหญ่พร้อมกับตำแหน่งและชื่อของเขาโชว์หลาอยู่ตรงกลางเว็บไซต์ อื่นๆไว้ก่อน รอรอบเวลาต่อไปค่อยบอกว่าจะเอาอะไรอีก (จากโครงร่างต่างๆที่วาดออกมาแล้วในข้อ 2)
โอ้ยาว เอาเท่านี้ก่อน part ต่อไปผมจะมาเล่าใหม่นะครับ กุปี้ๆ