การพัฒนาซอฟต์แวร์แบบเอจายล์

จากวิกิพีเดีย สารานุกรมเสรี

การพัฒนาซอฟต์แวร์แบบเอจายล์ (อังกฤษ: Agile software development) ประกอบด้วยวิธีการต่าง ๆ ในการพัฒนาซอฟต์แวร์ ภายใต้ข้อกำหนดและแนวทางการพัฒนาที่ทีมทำการพัฒนาและร่วมกัน โดยเป็นความร่วมมือภายในทีม ระหว่างทีมแบบข้ามสายงาน และ เป็นการพัฒนาร่วมกับลูกค้า/ผู้ใช้งานปลายทาง[1] เอจายล์เน้นการวางแผนแบบประยุกต์ (Adaptive planning), การพัฒนาแบบก้าวกระโดด (Evolutionary development), การส่งมอบก่อนกำหนด (Early delivery) และ การปรับปรุงอย่างต่อเนื่อง (Continual improvement) โดยสนับสนุนการตอบสนองแบบรวดเร็วและยืดหยุ่นต่อความเปลี่ยนแปลง

คำว่า Agile ได้รับความนิยมจากถ้อยคำแถลง ในปี ค.ศ.2001 ชื่อ คำแถลงอุดมการณ์แห่งอไจล์ (Manifesto for Agile Software Development)[2] โดย Beck, Kent และคณะ ซึ่งหลักการและค่านิยมต่าง ๆ ที่อยู่ในคำแถลงดังกล่าวมีที่มาจากขอบเขตการพัฒนาซอฟต์แวร์ (Software development framwork) ที่หลากหลาย อาทิ Scrum[3] และ Kanban[4]

ความสำคัญของเอจายล์[แก้]

กระบวนการทำงานแบบเอจายล์จะช่วยให้ทำงานได้เร็วขึ้น ลดการทำงานที่เป็นขั้นตอนและงานด้านเอกสาร มุ่งเน้นเรื่องการสื่อสารกันในทีมให้มากขึ้น ร่วมกันพัฒนาผลิตภัณฑ์ให้เร็วขึ้น แล้วนำผลิตภัณฑ์มาทดสอบ และเก็บผลตอบรับ (Feedback) เพื่อกลับไปแก้ไขปรับปรุง ซึ่งจะทำให้สามารถพัฒนาผลิตภัณฑ์ได้รวดเร็วและตอบโจทย์ผู้ใช้งานมากขึ้น[5]

คำแถลงอุดมการณ์แห่งอไจล์[แก้]

ค่านิยมการพัฒนาซอฟต์แวร์แบบเอจายล์[แก้]

จากประสบการณ์ร่วมกันของผู้ร่วมลงนาม 17 คนในคำแถลงอุดมการณ์แห่งอไจล์ ในการพัฒนาซอฟต์แวร์และการช่วยเหลือผู้อื่นพัฒนาซอฟต์แวร์ ผู้ลงนามในสิบเจ็ดคนในแถลงการณ์ประกาศว่าพวกเขาให้ความสำคัญ 4 ประการในการพัฒนาซอฟต์แวร์:[2]

  1. คนและการมีปฏิสัมพันธ์กัน มากกว่าการทำตามขั้นตอนและเครื่องมือ
  2. ซอฟต์แวร์ที่นำไปใช้งานได้จริง มากกว่าเอกสารที่ครบถ้วนสมบูรณ์
  3. ร่วมมือทำงานกับลูกค้า มากกว่าการต่อรองให้เป็นไปตามสัญญา
  4. การตอบรับกับการเปลี่ยนแปลง มากกว่าการทำตามแผนที่วางไว้

อธิบายคือ พวกเขาให้ความสำคัญกับทั้งสองอย่าง ใแต่ว่าให้ความสำคัญสิ่งที่เขียนอยู่ด้านซ้าย มากกว่าสิ่งที่เขียนอยู่ด้านขวา

ผู้ลงนามบางคนได้จัดตั้ง พันธมิตร Agile Alliance ซึ่งเป็นองค์กรไม่แสวงหาผลกำไรที่ส่งเสริมการพัฒนาซอฟต์แวร์ตามคุณค่าและหลักการของแถลงการณ์

หลักการเบื้องหลังคำแถลงอุดมการณ์แห่งอไจล์[แก้]

คำแถลงอุดมการณ์แห่งอไจล์มีรากฐานจากหลักการ 12 ข้อ ตามที่กล่าวในคำแถลงการ ประกอบด้วย:[6]

  1. ความสำคัญสูงสุดของพวกเราคือความพึงพอใจของลูกค้าที่มีต่อการส่งมอบซอฟต์แวร์ที่มีคุณค่าต่อลูกค้า ตั้งแต่ต้นอย่างต่อเนื่อง
  2. ยอมรับการเปลี่ยนแปลงความต้องการของลูกค้าแม้ในช่วงท้ายของการพัฒนาเพราะอไจล์สามารถแปรเอาความเปลี่ยนแปลง มาเป็นความได้เปรียบในการแข่งขันของลูกค้า
  3. ส่งมอบซอฟต์แวร์ที่ใช้งานได้จริงอย่างสม่ำเสมออาจเป็นทุกสองถึงสามสัปดาห์หรือทุกสองถึงสามเดือนโดยควรทำให้ระยะเวลาระหว่างการส่งมอบนั้นสั้นที่สุดเท่าที่เป็นไปได้
  4. ตัวแทนจากฝ่ายธุรกิจและนักพัฒนาจะต้องทำงานร่วมกันเป็นประจำทุกวันตลอดโครงการ
  5. ทำให้แน่ใจว่าสมาชิกโครงการเข้าใจและมีจุดมุ่งหมายของโครงการร่วมกันสร้างสภาวะแวดล้อมและให้การสนับสนุนในสิ่งที่พวกเขาต้องการและให้ความไว้วางใจแก่พวกเขาในการที่จะทำงานให้บรรลุเป้าหมายนั้น
  6. วิธีที่มีประสิทธิภาพและประสิทธิผลสูงสุดในการถ่ายทอดข้อมูลต่างๆไปสู่ทีมพัฒนาและภายในทีมพัฒนาเองคือการพูดคุยแบบซึ่งหน้า
  7. ซอฟต์แวร์ที่ใช้งานได้จริงเป็นตัวหลักในการวัดความก้าวหน้าของโครงการ
  8. กระบวนการอไจล์สนับสนุนให้เกิดการพัฒนาแบบยั่งยืน กล่าวคือผู้สนับสนุนนักพัฒนา และตัวแทนผู้ใช้ ควรจะสามารถรักษาอัตราเร็วในการทำงานร่วมกันให้คงที่ได้ตลอดไป
  9. การใส่ใจในความเป็นเลิศทางเทคนิคและงานออกแบบที่ดีอย่างต่อเนื่องจะช่วยเพิ่มความเป็นอไจล์
  10. ความเรียบง่าย หรือศิลปะในการทำงานอย่างพอเพียง นั้นสำคัญยิ่ง
  11. สถาปัตยกรรมซอฟต์แวร์ ความต้องการของลูกค้า และงานออกแบบที่ดีที่สุด เกิดจากทีมที่บริหารจัดการตัวเองได้
  12. ทุกช่วงเวลาหนึ่งเป็นประจำ ทีมจะต้องย้อนกลับไปตรองดูสิ่งที่ผ่านมา เพื่อหาทางที่จะพัฒนาความมีประสิทธิผลของทีม แล้วนำสิ่งเหล่านั้นมาปรับปรุงและเปลี่ยนแปลงพฤติกรรมของทีม


อ้างอิง[แก้]

  1. Collier, Ken W. (2011). Agile Analytics: A Value-Driven Approach to Business Intelligence and Data Warehousing. Pearson Education. pp. 121 ff. ISBN 9780321669544. What is a self-organizing team?
  2. 2.0 2.1 Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001). "คำแถลงอุดมการณ์แห่งอไจล์". Agile Alliance. สืบค้นเมื่อ 16 พฤษภาคม พ.ศ. 2020
  3. Schwaber, Ken; Sutherland, Jeff (November2017), The Scrum Guide: The Definitive Guide to Scrum: The Rules of the Game (PDF), สืบค้น 16 พฤษภาคม ค.ศ.2020
  4. Corey, Ladas (2008). Scrumban and other essays on Kanban System for Lean Software develoment. Seattle, Washington: Modus Cooperandi Press. ISBN 9780578002149. OCLC 654393465.
  5. "What is Agile Software Development?". Agile Alliance. 8 June 2013. Retrieved 4 April 2015.
  6. Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001). "หลักการเบื้องหลังคำแถลงอุดมการณ์แห่งอไจล์". Agile Alliance. สืบค้นเมื่อ 16 พฤษภาคม พ.ศ. 2563