Agile,Scrum

Scrum กับการวางแผนอย่างสม่ำเสมอ

ผมเองเคยเป็นคนนึงที่เข้าใจอย่างผิด ๆ ว่าการทำ Software Development โดยใช้แนวคิดแบบ Agile ไม่ได้ให้ความสำคัญกับการวางแผนงาน (ก็ทำในสิ่งที่ต้องทำจะวางแผนล่วงหน้าทำไม) ซึ่งเป็นความเข้าใจผิดที่ร้ายแรงมาก เพราะฉะนั้นตอนที่เริ่มศึกษาและลองทำ Scrum กับทีมในช่วงแรก ๆ (มีพี่ที่อยู่ในทีมสนใจเลยคุยกันว่าลองทำดูแล้วกัน) จึงเน้นการพยายามทำ Sprint Planning เพียงอย่างเดียว แถมทำแบบตำข้าวสารกรอกหม้อ คือจะเริ่มเข้า Sprint ใหม่ Sprint ก็เริ่มคุยเอาทุกอย่างให้จบให้ชัดใน Session นั้น ความบรรลัยจึงเกิดขึ้น …

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

    • ใช้เวลาในการทำ Sprint Planning ในส่วน Confirm นานมาก ๆ
    • Product Backlog Item ที่เอาเข้า Sprint ก็มีความไม่ชัดเจนอยู่มาก ต้องให้ทีมไปหากันต่อว่า Solution หรือ Criteria เดิมเป็นแบบไหน
    • พอมีความไม่ชัดเจนของ Backlog Item สูงก็ทำให้คะแนนความยากของมันอยู่ในระดับ Epic กันอยู่บ่อย ๆ แก้ไม่หายสักที

พอได้มีโอกาสได้ไปเข้าอบรม Geek Academy ที่จัดโดยเหล่า Geek ตัวพ่อ อย่าง Sprint3R ทำให้ผมได้รู้ว่าจริง ๆ แล้วยังมีกิจกรรมอีกหลายกิจกรรม ที่ผมละเลยไปด้วยความเข้าใจผิด และกิจกรรมเหล่านั้นมันมีไว้เพื่อมาตอบโจทย์ หรือปัญหาที่ผมเจออยู่ (ทั้ง ๆ ที่ตัวเองทำหน้าที่เป็น ScrumMaster แต่ยังไม่รู้จัก Scrum ดีพอ … มันน่าทุบตัวเองนัก) แต่ทุกสิ่งมันเริ่มชัดเจนยิ่งขึ้นเมื่อผมได้มีโอกาสไปเข้าอบรม Course CSM (Certified ScrumMaster) ที่จัดโดย Odd-e thailand แถมได้ Agile Master ตัวพ่ออย่าง Bas Vodde มาสอนด้วยจึงยิ่งทำให้เห็นภาพอะไรหลาย ๆ อย่างชัดเจนขึ้น

ใน Scrum นั้นมีกิจกรรมซึ่งเรียกว่า Sprint Backlog Refinement ซึ่งเป็นกิจกรรมที่ให้ทุกคนกลับไปมอง Product Backlog ซึ่งเปรียบเสมือน Master Plan ของการ Development Product ที่เราทำอยู่ว่ายังอยู่ในรูปร่างหน้าตาที่สวยงามอยู่ไหม (roofimon กล่าวไว้ว่า Product Backlog เธอต้อง Sexy อยู่ตลอดเวลา) โดยหลักใหญ่ใจความของกิจกรรมนี้ คือกลัีบไปทำให้มีงานที่สำคัญที่สุด อยู่ในลำดับแรก ๆ และมีรูปแบบที่ชัดเจนพร้อมจะเอาเข้ามาทำให้ Sprint ถัด ๆ ไป ในจำนวนที่เหมาะสม (โดยทั่วไปเตรียมงานที่ชัดเจนไว้ให้พร้อมสำหรับ 2 Sprint ต่อ ๆ ไปอยู่เสมอ) อะไรที่ใหญ่ไป ก็แยกย่อยออกมาเป็นหลาย ๆ Backlog Item อะไรที่ไม่ชัดเจนก็ทำให้ชัดเจน ถ้าต้องเอาไปเป็นการบ้านในการเตรียมมาคุยในครั้งถัด ๆ ไป ก็ทำ ซึ่งทั้งหมดที่ว่ามามันคือการวางแผนชัด ๆ แต่มันเป็นการวางแผนที่ลงรายละเอียดเฉพาะส่วนที่ใกล้ หยาบสำหรับส่วนที่ยังอยู่อีกไกล ความเสี่ยงจากการไม่รู้ไม่ได้วางแผนก็ถูกทำให้มันชัดเจนขึ้น ซึ่งโดยปกติเราจะยอมสละเวลาในแต่ละ Sprint เพื่อมาทำ Backlog Refinement มากถึง 10% ของเวลาทั้งหมด นั่นแปลว่า Agile ให้ความสำคัญของการวางแผนอย่างมาก (ให้ความสำคัญกับการวางแผน ต่างกับให้ความสำคัญกับตัวแผนงาน) เพราะการทำงานโดยไม่มีแผนก็ไม่ต่างกับผูกผ้าปิดตาขับรถ … มีแต่ตายกับตาย (ขึ้นกับว่าใครจะตายอะนะ)

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s