แนวคิดและวิธีการทำงานในรูปแบบ Agile

เรามาศึกษาแนวคิดของ Agile ที่กำลังมาแรงในช่วงนี้กันดีกว่า

I'am Sira

สิ่งแรกเริ่มต้นคือ การทำความรู้จักกับคำว่า Agile ที่เราจะกล่าวกันใน ณ ที่นี้กันก่อน ว่ามันคืออะไรกันแน่ และแท้จริงแล้ว Agile นั้น คืออะไรกัน

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

ซึ่งหลักการของ Agile ที่สำคัญหลักๆ ได้แก่

  • Team คือ การเน้นการมีปฏิสัมพันธ์กันระหว่างบุคคล หรือการทำงานกันเป็นทีมที่ทุกคนภายในทีมสามารถมีความรู้ความเข้าใจในงานที่เท่าเทียมกัน สามารถทำงานในส่วนของตัวเอง และผู้อื่นได้
  • Working software คือให้เน้นที่การทำงานจริง มากกว่าการยึดติดกับเอกสาร (แต่ตัว Agile ไม่ได้กล่าวว่า ไม่ต้องมีเอกสารหรือจะช่วยลดจำนวนของเอกสารนะครับ)
  • การทำงานร่วมกันระหว่าง Team และ User ที่บ่อยซึ่งสิ่งนี้ก็คือ การจัดให้มีการพบปะพูดคุยกันระหว่างคนในทีม และผู้ใช้งาน เพื่อต้องการ Feedback จาก User ว่า สิ่งที่เราทำไปนั้น เป็นสิ่งที่ตรงกันกับที่ User ต้องการจริงๆ
  • การยอมรับการเปลี่ยนแปลงที่เกิดขึ้นได้ตลอดเวลา อาจจะเกิดจาก Requirement ที่มีการเปลี่ยนแปลงจากตัว User หรือในด้านข้อจำกัดของระบบหลังจากที่มีการคุยกันระหว่าง Team และ User

ทำความรู้จักกับ "คำแถลงการ 12 ประการแห่ง Agile"

  1. ความพึงพอใจสูงสุดของเราคือความพึงพอใจของลูกค้า ที่มีต่อการส่งมอบ Software อย่างรวดเร็วและต่อเนื่อง
  2. ยินดีและยอมรับการเปลี่ยนแปลง ตามความต้องการของลูกค้าแม้จะอยู่ในช่วงท้ายของการพัฒนา
  3. การส่งมอบ Software ที่ใช้งานได้จริงและมีประสิทธิภาพ ได้อย่างสม่ำเสมอตามช่วงกรอบของเวลา
  4. การพูดคุยกันระหว่าง User (Business people) กับ Team เป็นไปอย่างสม่ำเสมอตลอดทั้ง Project
  5. ผลักดันให้กับสมาชิกภายในทีมให้มีความเข้าใจและจุดหมายร่วมกัน และสร้างสภาวะแวดล้อมที่ช่วยในการสนับสนุนการทำงานของ Team
  6. วิธีการซึ่งมีประสิทธิภาพสูงสุดในการถ่ายทอดความรู้กันในทีม คือ การคุยกันแบบซึ่งหน้า
  7. Software ที่สามารถใช้งานได้จริงเป็นสิ่งที่ชี้วัดในความก้าวหน้าของการทำงาน
  8. กระบวนการของ Agile สนับสนุนให้เกิดการพัฒนาแบบยั่งยืน หรือกล่าวคือ Team และ User ควรจะสามารถรักษาอัตราความเร็วในการทำงานร่วมกันได้อย่างคงที่อย่างไม่มีกำหนด
  9. การใส่ใจในความสมบูรณ์ของการพัฒนาทุกขึ้นตอน
  10. ความเรียบง่ายในการออกแบบและการพัฒนา
  11. สถาปัตยกรรม Software ที่ดีที่สุดมาจากหน้างานจริง ไม่ใช่เป็นเพียงแค่แนวคิดที่สวยหรู
  12. ทีมที่ดีต้องมองเห็นถึงสิ่งที่ตนเองได้ทำไปแล้ว และสามารถนำมาปรับปรุงแก้ไขพัฒนาได้อย่างต่อเนื่อง