#priwreadbooks Agile Coaching — Chapter 12 — Demonstrating Results (สรุป)

Parima Spd
2 min readJan 13, 2023

--

Photo by Matthew Osborn on Unsplash

Previous chapter:

น่าแปลกที่ทีม Agile จำนวนมากมองว่าการ Demo เป็นทางเลือก สาเหตุบางประการที่เราพบ เช่น

  • ไม่มีอะไรจะแสดง เพราะไม่ได้วางแผนรอบการทำงานที่ได้ซอฟต์แวร์ที่สามารถสาธิตได้
  • Go Live ไปแล้ว
  • ลูกค้าอยู่ในทีมในระหว่างรอบการทำงาน

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

เตรียมการสาธิต (Demo)

อย่าลืมเริ่มจาก วางแผนที่จะสร้างเรื่องราวที่สามารถ Demo ได้ ให้ทีมคิดหาวิธีแสดงเรื่องราวของผู้ใช้ ต่อผู้มีส่วนได้ส่วนเสีย

ใครเข้าร่วมบ้าง

ทุกคนในทีมจะต้องเข้าร่วม ปกป้องสิทธิ์ของทีมในการแสดงผลงานของตนเอง การ Demo เป็นโอกาสที่จะแสดงสิ่งที่พวกเขาสร้างขึ้น

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

ลำดับการ Demo

ในวันสุดท้ายของรอบการทำงาน ทีมจำเป็นต้องซ้อมเพื่อเตรียมพร้อมสำหรับการ Demo

สิ่งที่พวกเขาสามารถทำได้เพื่อเตรียมการ:

  • ชี้แจงว่าเรื่องราวใดเสร็จสมบูรณ์และพร้อมที่จะสาธิต
  • เรียงลำดับการนำเสนอเรื่องราว
  • ตกลงว่าใครจะนำเสนอเรื่องไหน
  • จัด run-through เพื่อซ้อมการ Demo

บางทีมยังวางตารางเวลาที่มองเห็นได้ในพื้นที่ทำงานของพวกเขา เพื่อเตือนถึงสิ่งที่ต้องทำเพื่อเตรียมตัว

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

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

ความหายนะของการ Demo

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

ก่อนเริ่มการประชุม ให้ทำดังนี้

  • ตั้งค่าอุปกรณ์ที่จำเป็นสำหรับการสาธิต เช่น โปรเจ็กเตอร์ โทรศัพท์สำหรับการประชุม และปากกามาร์กเกอร์
  • ตรวจสอบการเชื่อมต่อเครือข่าย
  • เตือนทีมว่า การประชุมกำลังจะเริ่มขึ้น

ทุกคนมีส่วนร่วม

เริ่มการประชุมด้วยการแนะนำจากลูกค้า เธอให้ภาพรวมของเป้าหมายของรอบการทำงานนี้ และเรื่องราวของผู้ใช้ที่ได้รับเลือกสำหรับการพัฒนา

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

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

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

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

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

ก่อนปิดการประชุม ใช้โอกาสสุดท้ายเพื่อบันทึก Velocity ของทีม หากพบข้อบกพร่องร้ายแรงในระหว่างการสาธิต ทีมงานอาจตัดสินใจไม่นับ points สำหรับเรื่องราวนั้น หากทีมทำผลงานได้น้อยเกินไป พวกเขาอาจต้องหารือเกี่ยวกับการเปลี่ยนแปลงแผนการเปิดตัว (release plan) ก่อนที่จะแยกย้ายกันไป

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

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

หลังจากการสาธิตประสบความสำเร็จ กระตุ้นให้ทีมเฉลิมฉลองในสิ่งที่พวกเขาประสบความสำเร็จ หากทีมไม่คุ้นเคยกับการทำเช่นนี้เอง ให้เริ่มดำเนินการซื้อโดนัทหรือออกไปดื่มหลังเลิกงาน

สุดท้าย หากสิ่งต่างๆ ไม่เป็นไปด้วยดีในการสาธิต ให้หารือเกี่ยวกับสิ่งที่ผิดพลาดใน retrospective

การเปิดตัวซอฟต์แวร์

ทีมจำเป็นต้องตัดสินใจว่าซอฟต์แวร์พร้อมสำหรับการเปิดตัวหรือไม่ พบกับลูกค้าและตรวจสอบรายการต่อไปนี้:

  • ซอฟต์แวร์ได้รับการทดสอบอย่างเพียงพอหรือไม่
  • มีข้อผิดพลาดที่เป็น showstopper หรือไม่
  • นี่เป็นเวลาที่ดีสำหรับผู้ใช้ที่จะได้ใช้งานรุ่นใหม่หรือไม่
  • มีการจัดทำเอกสารที่เกี่ยวข้อง (เช่น release notes) หรือไม่
  • ทีมจำเป็นต้องเสนอชื่อสมาชิกในทีมเพื่อสนับสนุน release นี้หรือไม่
  • สามารถย้อนกลับการเผยแพร่ (rolled back) หากพบปัญหาได้หรือไม่

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

อุปสรรคที่อาจเจอ

ซอฟต์แวร์ไม่ทำงานในการสาธิต (Demo)

มักเป็นผลมาจากการเตรียมการที่ไม่ดี ตรวจสอบว่าซอฟต์แวร์ทำงานในห้องประชุมก่อนการ Demo คอมพิวเตอร์ในห้องประชุมมีฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็นทั้งหมด แต่หากสาเหตุนี้เกิดจากนักพัฒนาแก้ไขในนาทีสุดท้ายก่อนการ Demo แนะนำทีมว่า ให้พวกเขาสาธิตรุ่นที่จะถูก release มากกว่ารุ่นที่เพิ่ง build ล่าสุด

ไม่มีเรื่องราวใดที่เสร็จสมบูรณ์

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

การรับฟังผู้มีส่วนได้ส่วนเสียที่ผิดหวัง อาจกระตุ้นให้ทีมทำงานได้ดีขึ้นในครั้งต่อไป

พวกเขายังคงสามารถรับข้อเสนอแนะที่เป็นประโยชน์เกี่ยวกับซอฟต์แวร์ได้ แม้ว่าจะยังสร้างไม่เสร็จก็ตาม

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

การไม่มีอะไรเสร็จทำให้ทีมมีปัญหา: ความเร็วเป็นศูนย์ หากทีมสาธิตซอฟต์แวร์ที่ไม่ตรงตามคำจำกัดความของคำว่า “เสร็จสิ้น” พวกเขาอาจจะรู้สึกว่าเสร็จสิ้นแล้ว และทีมก็พร้อมที่จะดำเนินการกับเรื่องราวใหม่ๆ ตรวจสอบให้แน่ใจว่าลูกค้าเข้าใจว่ายังมีงานต้องทำก่อนที่ทีมจะดำเนินการเพิ่มเติม

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

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

Demo อาศัยซอฟต์แวร์จากทีมอื่น

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

ซอฟต์แวร์ของเราไม่มี User Interface (หน้าจอ)

เป็นการยากที่จะทำให้ลูกค้าสนใจการสาธิตซอฟต์แวร์หากพวกเขาไม่สามารถติดตามการสาธิตได้เนื่องจากไม่มีหน้าจอ ให้ทีมสร้างภาพการประมวลผลข้อมูลเพื่อให้สามารถสาธิตได้ ท้ายที่สุด นี่เป็นข้อบ่งชี้ว่า ทีมอาจต้องกำหนดขอบเขตงานให้แตกต่างออกไป พวกเขาอาจพิจารณาย้ายไปพัฒนาฟีเจอร์จากส่วนหน้าไปยังส่วนหลัง (front end to the back end) มากกว่าการพัฒนาตามส่วนประกอบ (component-based)

--

--

Parima Spd
Parima Spd

Written by Parima Spd

I enjoy reading and writing. Continue to learn and try new things to improve. Before you die, explore this world.

No responses yet