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

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

คำว่า Agile ได้รับความนิยมจากถ้อยคำแถลง ในปี ค.ศ. 2001 ชื่อ คำแถลงอุดมการณ์แห่งอไจล์ (Manifesto for Agile Software Development)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 โดย Beck, Kent และคณะ ซึ่งหลักการและค่านิยมต่าง ๆ ที่อยู่ในคำแถลงดังกล่าวมีที่มาจากขอบเขตการพัฒนาซอฟต์แวร์ (Software development framwork) ที่หลากหลาย เช่น ScrumSchwaber, Ken; Sutherland, Jeff (November2017), The Scrum Guide: The Definitive Guide to Scrum: The Rules of the Game (PDF), สืบค้น 16 พฤษภาคม ค.ศ.2020 และ KanbanCorey, Ladas (2008). Scrumban and other essays on Kanban System for Lean Software develoment. Seattle, Washington: Modus Cooperandi Press. ISBN 9780578002149. OCLC 654393465.

 ความสำคัญของเอจายล์ 
กระบวนการทำงานแบบเอจายล์จะช่วยให้ทำงานได้เร็วขึ้น ลดการทำงานที่เป็นขั้นตอนและงานด้านเอกสาร มุ่งเน้นเรื่องการสื่อสารกันในทีมให้มากขึ้น ร่วมกันพัฒนาผลิตภัณฑ์ให้เร็วขึ้น แล้วนำผลิตภัณฑ์มาทดสอบ และเก็บผลตอบรับ (Feedback) เพื่อกลับไปแก้ไขปรับปรุง ซึ่งจะทำให้สามารถพัฒนาผลิตภัณฑ์ได้รวดเร็วและตอบโจทย์ผู้ใช้งานมากขึ้น"What is Agile Software Development?". Agile Alliance. 8 June 2013. Retrieved 4 April 2015.

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

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

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

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

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

 หลักการเบื้องหลังคำแถลงอุดมการณ์แห่งอไจล์ 
คำแถลงอุดมการณ์แห่งอไจล์มีรากฐานจากหลักการ 12 ข้อ ตามที่กล่าวในคำแถลงการ ประกอบด้วย: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

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

 อ้างอิง 

หมวดหมู่:กระบวนการพัฒนาซอฟต์แวร์