Top 10 mistakes agile

ช่วงนี้อ่านบทความไปเรื่อย ๆ ก็พบว่ามีเรื่องน่าสนใจอย่าง Top 10 Mistakes Organizations Make to Become Agile ซึ่งมีเรื่องราวที่น่าสนใจของการพัฒนา software ด้วย agile ที่แม้จะมีแนวคิดที่เรียบง่าย แต่กลับถูกนำไปตีความผิด ๆ เยอะมาก มีด้วยกัน 10 ข้อ นำมาสรุปกันหน่อย

10. Top-down implementation

❌ คนที่มีอำนาจมากกว่าข้างบน (top) ในบริษัทจะกำหนดคนที่มีอำนาจน้อยกว่าข้างล่าง (down) ว่าเราจะทำงานแบบ agile พร้อมกับกำหนดมาให้แบบเสร็จสรรพเลยว่าจะต้องทำอะไรอย่างไรบ้าง

✅ คนที่มีอำนาจมากกว่าข้างบน (top) ในบริษัทจะกำหนดเป้าหมายของ product แล้วจะให้ คนที่มีอำนาจน้อยกว่าข้างล่าง (down) มาช่วยกันหาแนวทางการทำงานที่เหมาะสมที่สุดระหว่างกันและกัน เพราะแต่ละทีมนั้นต่างก็มี context ต่างกัน และ product ต่างกัน

9. “Implementing” culture

❌ คนที่มีอำนาจมากกว่าข้างบน (top) ในบริษัทจะกำหนดคนที่มีอำนาจน้อยกว่าข้างล่าง (down) ว่าเราจะทำงานแบบ agile พร้อมกับกำหนดมาให้เสร็จสรรพว่าเราจะมี culture แบบนั้นแบบนี้

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

8. เน้นที่ output

❌ ทุ่มเท 100% ไปกับการเร่งส่งมอบชิ้นงานอย่างต่อเนื่องและอย่างรวดเร็ว โดยไม่ได้สนใจมุมมองอื่น (output คือได้ชิ้นงานเยอะ แต่ไม่มี outcome เพราะลูกค้าไม่ใช้)
✅ หาวิธีตรวจสอบตั้งแต่เริ่มต้นขั้นตอนการเก็บ requirement จนถึงการส่งมอบว่าชิ้นงานที่ว่าจะส่งมอบนั้นมีประโยชน์ต่อลูกค้าหรือไม่

7. ไม่สนใจลูกค้าปลายทาง

❌ ไม่สนใจลูกค้าปลายทาง ถึงแม้ว่าจะมีการแสดงผลงานผ่าน demo หรือ showcase ก็ตาม แต่คนที่เข้ามาดูกลับมีแต่คนภายในองค์กร เช่นทีม sale ซึ่งก็ไม่ใช้ลูกค้าขริง ๆ อยู่ดี
✅ พาลูกค้าปลายทางเข้ามาดูผลงานผ่าน demo หรือ showcase อย่าสม่ำเสมอเพื่อเก็บ feedback นำไปปรับปรุงชิ้นงานอย่างต่อเนื่อง (continuous improvement)

6. Agile ใช้สำหรับ IT เท่านั้น

❌ เนื่องจาก agile เป็นกระบวนการพัฒนา software ดังนั้นจึงเปลี่ยนแปลงองค์กรเพียงแค่ส่วนของ IT เท่านั้น
✅ ชิ้นงานที่ประสบความสำเร็จไม่ได้มาจาก IT อย่างเดียว แต่ต้องเปลี่ยนแปลงทุกทีม ไปจนถึงทีม sales ทีม support ที่สุดท้ายก็จะต้องลงเรือลำเดียวกันเพื่อปรับปรุงชิ้นงานอย่างต่อเนื่อง

5. Agile ในระดับ team ก็พอ

❌ ขอแค่ทีมพัฒนาชิ้นงานเปลี่ยนการทำงานเป็นแบบ agile ก็ถือว่าจบแล้ว
✅ เปลี่ยนทั้งองค์กรตั้งแต่ management ไปจนถึง HR ที่จะต้องมีเป้าหมายของ product ร่วมกัน และช่วยเหลือทีมพัฒนาให้ส่งมอบชิ้นงานได้โดยไม่สะดุด

4. Agile คือช่วยแค่ส่งมองชิ้นงานได้อย่างรวดเร็ว

❌ เราจะทำงานแบบ agile เพื่อส่งมอบชิ้นงานได้อย่างรวดเร็วเท่านั้น
✅ เราจะทำงานแบบ agile เพราะเราไม่รู้ว่าลูกค้าจะชอบไหมหรือจะต้องทำอะไรต่อ เราเลยส่งมอบชิ้นงานเล็ก ๆ อย่างต่อเนื่อง จากนั้นเก็บ feedback เพื่อเราจะได้รู้มากขึ้นและจะต้องทำอะไรต่อ เปรียบเสมือนการทำงานร่วมกันระหว่างทีมพัฒนาและลูกค้านั่นเอง

3. Agile ในรูปแบบ Waterfall

❌ มีการทำ analysis และวางแผนอย่างยาวนานเหมือนการทำงานแบบ waterfall เพียงแค่แบ่งรอบการทำงานเป็นช่วงสั้น ๆ
✅ มีการทำ analysis และวางแผนคร่าว ๆ แล้วเรียนรู้จาก feedback จากลูกค้าและระบบงานจริงเอา

2. Implementing immutable processes and tools

❌ ลอกกระบวนการและเครื่องมือตาม ๆ กันมาอย่าง framework ก็ต้อง Scrum เครื่องมือก็ต้อง Jira มีรอบการทำงานอย่าง Sprint เหมือนกันหมดทุกทีมในองค์กร ไม่สามารถเปลี่ยนไปใช้อย่างอื่นได้ (immutable) ✅ มีกระบวนการและเครื่องมือในช่วงเริ่มแรกได้ แต่จากนั้นต้องให้โอกาสทีมปรับปรุงแนวทางการทำงานไปตาม context และ environment

1. ความอยากที่จะทำงานแบบ agile มากเกินไป

❌ อยากทำงานแบบ agile ตั้งแต่เริ่ม โดยไม่สนใจลูกค้าและตลาดที่เป็นอยู่เลย
✅ ตั้งเป้าไปที่ product ว่าจะสร้างประโยชน์อะไรต่อผู้ใช้งาน

จากที่อ่านมา ทุกข้อก็จะวน ๆ กันอยู่เรื่องเดิม ๆ แต่ทำไมเวลาไปทำจริงมันถึงยากจังนะ ฮ่า ๆๆ

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

ปิดท้ายด้วย community ที่จะมาพูดคุยแลกประสบการณ์เกี่ยวกับการพัฒนา software แบบ agile อย่าง Modern Agile มีทั้ง cheat sheet และ podcast ลองเข้าไปดูกันครับ