Daily Scrum,Scrum

Failure Experience : มีอะไรก็เอาไว้ๆ คุยใน Daily Scrum สิ

ในงาน Agile Thailand 2015 ที่จัดที่อาคาร 100 ปี คณะวิศวกรรมศาสตร์ มหาวิทยาลัยจุฬาลงกรณ์ ที่ผ่านมา ผมได้มีโอกาสได้เสนอ Session ที่มีชื่อว่า “Talk Failed Experience” ซึ่งผมได้ Idea มาจากการ Spotify ที่มีการยกย่องคนที่ทดลองอะไรบางอย่างแล้วล้มเหลว ผมไม่แน่ใจในรายละเอียด (ผมเป็น I ไม่ได้จดไว้เลยลืม 555+) แต่เหมือนจะเป็นกิจกรรมที่ชื่อว่า Fail Case Celebration ซึ่งผมได้ยินครั้งแรกก็รู้สึกว่าน่าสนใจมาก ๆ ส่วนอีกแรงผลักดันที่ทำให้ผมอยากมี Session นี้คือ ส่วนมากเราจะพูดกันถึงแต่ด้านดี ๆ ของ Agile/Scrum คนที่ทำมาก่อนไม่ค่อยพูดว่ากว่าจะมาถึงจุดที่เรียกว่า Be Agile มันต้องล้ม ต้องลุก คุกคลานมากแค่ไหนบ้าง Failed อะไรมาบ้าง และที่สำคัญคือได้เรียนรู้อะไรจากที่เรา Failed ไป แต่เนื่องจากมีคนสนใจ Sessiom นี้อยู่พอควร และหลาย ๆ คนที่เข้ามาก็มีหลาย ๆ Case ผมเลยมีโอกาสได้เล่า Failed Case ที่ผมคิดไว้แค่ 1 – 2 เรื่อง ซึ่งแน่นอน ผมก็เลยอยากจะถยอยเอาเรื่องที่เหลือมาเล่าให้ฟังผ่าน Blog นี่แล้วกัน

11256198_849115241808691_415776500_o

 เกริ่นสักนิด (แล้วที่เขียนมายาว ๆ นี่อะไรนะ)

ผมเริ่มสนใจใน Agile/Scrum มาระยะนึง ซึ่งช่วงแรกที่ทำการศึกษา ก็พยายามไปเรียนรู้จากทั้งผู้รู้ต่าง ๆ ในวงการ และมาจบตรงที่ได้มีโอกาสไปเรียน Course Scrum 3 วันของ 3 เกรียน เรียนตรงนั้นเสร็จไฟแรงมองเป็นแต่ข้อดี แต่ก็ไม่ได้รู้อะไรสักเท่าไหร่ แต่อยากเริ่มทำ (I เด่นมาก) และในฐานะที่เป็น Team Leader เลยมีอำนาจและขอให้ทีมทำ Scrum เท่าที่ตัวเองเข้าใจ เหตุการณ์ Failed นี้เกิดจากการทำ Scrum มาได้สักระยะ ก็พยายามทำกิจกรรมต่าง ๆ ตามที่เขาสอนมา และ/หรือ ทำตามสิ่งที่หนังสือต่าง ๆ อ้างไว้ มาจบตรงที่ทีมพบปัญหาอย่างนึง คือเกิดการเปลี่ยน Design กลางทาง จากกลุ่มคนส่วนน้อยในทีม แล้วทำให้ไม่สามาถ Integrate กับส่วนงานที่ทำโดยคนอื่น ๆ ได้ ทำให้จบ Sprint งานเสร็จไม่ทัน และแน่นอนเรื่องนี้ก็ถูกนำมาคุยกันใน Retrospective (ทำตามที่เขาบอกมา)

แชร์ไอเดีย ออก Solution

ใน Sprint Retrospective น้อง ๆ ก็คุยกันเพื่อหา Solution (ผมซึ่งยังไม่ค่อยรู้อะไร ก็ยืนมองดูน้อง ๆ ทำอะไรไม่ค่อยเป็น) แน่นอนว่ามีทั้ง ทุกคนก็ไป Update ที่เอกสาร Design เพื่อให้คนที่ทำต่อไปสามารถทำได้อย่างถูกต้อง หรือน้องบางคนก็บอกว่าถ้าใครจะทำอะไรก็ให้ถามคนอื่น ๆ ก่อนทุกครั้งว่ามีการเปลี่ยนแปลงอะไรไหม แต่ที่เหมือนทุกคนจะเห็นร่วมกันเป็นมติของทีมคือ ถ้ามันจะมีการเปลี่ยนแปลงอะไรก็เอาเรื่องนั้นไปคุยกันตอนเช้าใน Daily Scrum สิเพราะยังไงทุกคนก็อยู่ ถือโอกาส Sync ข้อมูลกันด้วย ซึ่งตอนนั้นตัวผมเองที่อุปโลกตัวเองขึ้นมาเป็น ScrumMaster ก็คิดว่านี่แหละมันใช่เลย ก็แค่เอามาคุยใน Daily Scrum แถม Solution เป็นสิ่งที่น้องเสนอความคิดเห็น และดูเหมือนจะตรงกับวัตถุประสงค์ของการทำ Daily Scrum ซึ่งก็คือทีมจะได้มีโอกาสได้แสดงความคิดเห็นและออกแบบวิธีการทำงานของตัวเองด้วย

เวลาสำรวจต้องลงให้ลึก อย่าขึ้นมาง่าย ๆ

หลังจากเอา Action Item ที่บอกว่าจะทำการ Sync ในทุก ๆ Daily Scrum ถ้ามีการเปลี่ยน Design ซึ่งปัญหาก็เลริ่มลดลงบ้าง เกิดมากขึ้นบ้างตามแต่ละ Sprint, Sprint ไหนมีงานต้อง Integrate เยอะก็มีปัญหาเยอะหน่อย Sprint ไหนงานเล็ก ๆ กระจาย ๆ ก็เกิดน้องหน่อย ซึ่งแน่นอนเราก็เอากลับเข้ามาคุยกันใน Retrospective กันอีกเรื่อย ๆ ซึ่งส่วนมากจะเกิดจากการลืม เอามาคุยกันใน Daily Scrum หรือแม้กระทั่งคิดว่า Design นี้เปลี่ยนแล้วไม่กระทบ เลยไม่เอาไป Sync กับเ Team ซึ่งแน่นอนเราก็พยายามหาทางออกที่ตรงกับประเด็นของปัญหามากขึ้น เรื่อย ๆ เช่น กลัวลืมเหรองั้นก็จดใส่ Post-it แป๊ะหน้า Com ก่อนกลับบ้านพรุ่งนี้เช้าจะได้ไม่ลืม ยิ่งเราพยายามแก้ปัญหาก็เหมือนจะยิ่งลุกลาม ต้องไปทำอันุ้นเพิม่/ อันนี้เพิ่ม ยิ่งทำให้ Team เริ่มรู้สึกว่าเราทำอะไรผืด ๆ อยู่ไหม ซึ่งจริง ๆ ผมเองในฐานะ ScrumMaster น่าจะมีความผิดขั้นที่ต้องลากเครื่องประหารหัวสุนัขมายกรอไว้เลย

ทางสว่าง (จำไม่ได้ว่าเกิดอะไรขึ้น)

จริง ๆ แล้วปัญหานี้ถ้าเรามองย้อนกลับไปที Agile Manifesto 4 ข้อ จะพบ Manifesto ข้อแรกที่ว่าด้วย Individual and Interaction OVER Process and Tools ซึ่งว่าด้วย อไจล์ ให้ความสำคัญกับคนและการทำงานสอดประสานร่วมกันของคนทีเกี่ยวข้อง มากว่าการให้ความสำคัญกับกระบวนการ หรือเครื่องมือที่เราใช้งาน ถ้าเทียบกับปัญหาเรื่อง Design เปลียนแล้วงานไม่เสร็จ แล้ว Solution คือให้เอาไป Update ตอนเช้าใน Daily Scrum นั้น มันคือพยายามทำ Daily Scrum โดยไม่เข้าใจบริบทของมัน แถมพยายามยึดโยง Daily Scrum (Process) มากไปจนลืมไปว่าเมื่อไหร่ที่มีปัญหา ทุกคนที่เกี่ยวข้องสามารถที่จะพูดคุย ชวนเข้ามาช่วยกันดู ช่วยกันคุย ถ้าจำเป็นก็ลงมือช่วยกันทำ ณ เดี๋ยวนั้น หรือถ้ายังรอได้ก็แยกย้ายกันไปหลังจากคุยเสร็จ ปัญหาย่อย ๆ อื่น ๆ ที่เจอ เช่น เรื่องที่พอจะมาคุยกันแล้วก็ลืมว่าต้องคุยอะไร ซึ่งถ้าทีมสามารถลุกไปคุยกับคนที่เกี่ยวข้องได้ตลอดเวลาก็ไม่จำเป็นต้องจด Solution ไว้ไปคุยพรุง่นี้เช้าเหมือนก่อนหน้านี้

งั้นแล้ว Daily Scrum จะทำอะไรหล่ะ

สำหรับตัวผมเอง คำถามที่ควรจะต้องถาม และศึกษาลงไปให้ลึกคือ ทำไมเราต้องมี Daily Scrum ตัวผมเองก็ไม่ใช่ผู้เชี่ยวชาญอะไรด้าน Scrum มากนัก (ถึงจะเคยอุปโลคตัวเองว่าเป็น ScumMaster ก็เหอะ) แต่จากที่ลองทำอะไรหลาย ๆ อย่างมา ผมเข้าใจว่า Scrum คือ Set ของ Practices ซึ่งเอามาเป็น Guild-line ให้เราเพื่อให้เราสามารถที่จะมีแนวทางปฏิบัติเพื่อตอบโจทย์ Agile Manifesto ทั้ง 4 ข้อ ซึ่งสุดท้ายก็เพื่อให้คนทำงาน และลูกค้าทำงานอย่างมีความสุข (ความสุขแต่ละคนไม่เท่ากัน) และเหตุผลที่ต้องมี Guild-line ให้เราก็เพราะต้องการให้เรามีหลักเดินบ้าง ไม่ใช่ลุย ๆ ไปโดยไม่รู้แม้กระทั่งว่าตัวเองต้องทำอะไร สำหรับทีมใหม่ ๆ ที่ยังไม่เคยทำงานร่วมกัน หรือทีมเก่าที่ทำงานร่วมกันมาในสถานการณ์บางสถานการณ์ การที่จะให้เขาอยู่ ๆ  Sync กันเอง คุยกันเองในเนื้องาน ก็อาจจะเป็นไปได้ยาก เพราะฉะนั้น Scrum จึงหยิบ Practice ที่ขื่อว่า Daily Scrum เข้ามาใส่ในตัวของมัน เพื่อให้เกิดการทำซ้ำ ๆ ที่เดิม เวลาเดิม พูดแนวเดิม และให้ทุกคนได้มีโอกาส Sync และ Share Info ที่เกี่ยวข้องกับคนอื่น ๆ แต่ไม่ได้แปลว่าถ้าจะคุยต้องคุยกันใน Daily Scrum เท่านั้น ถ้าทีมทำงานร่วมกันมานานจนทุก ๆ คน Sync กันแทบจะตลอดเวลาแล้ว การมีอยู่ของ Daily Scrum ก็อาจจะไม่จำเป็นอีกต่อไป (ผมอาจจะให้ความเห็นสุดโต่งไป : มุมนี้เสี่ยงมากครับ) แต่เมื่อมันไม่มี Daily Scrum แล้ว วิธีการทำงานที่ทำอยู่ก็อย่าเรียกมันว่า Scrum เพราะมันไม่ครบตาม 3 บทบาท 6 กิจกรรม และ 3 ทรัพย์สินแล้ว (จะเรียก Kitty Process อย่างท่าน Prathan ก็ได้)

สรุป

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

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