Screen Shot 2558-05-31 at 11.19.23 AM
มีการถามเรื่อง How can I work with agile development? ที่ Quora.com
เป็นหัวข้อเกี่ยวกับ Agile development ที่น่าสนใจมากๆ
แต่ที่น่าสนใจกว่าคำถามนั้น คือ คำตอบ
มาดูกันว่าคำตอบเป็นอย่างไร

คำตอบจากคุณ J.B. Rainsberger
เป็นคำตอบที่ผมชอบมากๆ มันตรงๆ ชัดเจน ดังนี้

จากคำตอบมี slide 2 เรื่องที่น่าสนใจคือ

เป็นการอธิบายว่า
ทำไมคนส่วนใหญ่ที่นำแนวคิด Agile ไปใช้งานแล้วไม่ประสบความสำเร็จ
โดยเฉพาะอย่างยิ่งกับ Enterprise
เนื่องจากการนำ Agile ไปใช้ คือ การสร้าง process ใหม่ขึ้นมา
แล้วให้ทุกๆ ทำตาม process และชุดของ practice ต่างๆ
แล้วบอกว่ามันจะช่วยเหลือคนทำงานเหล่านั้น
โดยที่ไม่รู้เลยว่า ทำไปทำไม !!!
… ซึ่งถ้าคุณยังทำแบบนั้นอยู่ แนะนำให้หยุดทำเดี๋ยวนี้ !!!

คุณ J.B. อธิบายว่า
หัวใจสำคัญของ Agile คือ maximise work not done
หรือการจัดการกับงานที่ยังไม่เสร็จ
อะไรที่มันไม่สำคัญ หรือ ไม่ควรทำ ก็ควรที่จะหยุดทำมันซะ

ใน Extreme Programming
นั้นเริ่มด้วยคำถามที่ว่า

“what’s the least we can do and still ship great software?”

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

ใน Scrum ก็เช่นกัน
เราเน้นเรื่องการสร้างบางสิ่งบางอย่างที่มีคณค่าต่อลูกค้า
อย่างต่อเนื่องในทุกๆ สัปดาห์ หรือ ทุกๆ เดือน
แน่นอนว่า ต้องมีคนในหน้าที่ต่างๆ มาช่วยกัน ทั้ง

  • Product Owner เพื่อตัดสินใจว่าจะสร้างอะไรที่มันมีคุณค่า
  • Scrum Master เพื่อ clear ทางเดินให้กับทีม เพื่อให้ทีม focus อยู่กับงาน
  • Delivery Team เพื่อพัฒนา และ ส่งมอบงานที่มีคุณภาพ

และยังมีกิจกรรมต่างๆ เช่น

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

ล้วนมีเป้าหมายเดียวกันก็เพื่อสร้างสิ่งที่มีคุณค่าออกมานั่นเอง

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

ในปัจจุบันมันก็มีหลายความคิดเห็นทั้ง
Extreme Programming, Scrum และ Kanban
ซึ่งทั้งหมดมันก็ใช้ได้หมด เพียงใช้ให้ถูกที่ ถูกคน ถูกเวลา และ สถานการณ์ เท่านั้นเอง

แต่ถ้าคุณอยากรู้ และ เข้าใจ Agile ให้มากขึ้น
ลองทำตามวิธีการนี้ดูนะ

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

แล้วคุณจะรู้ว่า คุณต้องทำอะไรบ้าง
เพื่อให้การทำงานนั้นมันสำเร็จ

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

คนที่รู้ดีที่สุดว่า ต้องทำอย่างไรก็คือ
คนในทีมที่ลงมือทำนั่นเอง
มันเป็นสิ่งที่สำคัญมากๆ
ดังนั้น ถึงเวลาที่คุณควรต้องลงมือทำแล้วล่ะนะ !!

แล้วคุณล่ะ มีความคิดเห็นกับคำถามนี้อย่างไรกันบ้าง ?

“How can I work with agile development?”

Tags: