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

การพัฒนาซอฟต์แวร์แบบเอจายล์ (อังกฤษ: Agile software development) ประกอบด้วยวิธีการต่าง ๆ ในการพัฒนาซอฟต์แวร์ ภายใต้ข้อกำหนดและแนวทางการพัฒนาที่ทีมทำการพัฒนาและร่วมกัน โดยเป็นความร่วมมือภายในทีม ระหว่างทีมแบบข้ามสายงาน และ เป็นการพัฒนาร่วมกับลูกค้า/ผู้ใช้งานปลายทาง เอจายล์เน้นการวางแผนแบบประยุกต์ (Adaptive planning), การพัฒนาแบบก้าวกระโดด (Evolutionary development), การส่งมอบก่อนกำหนด (Early delivery) และ การปรับปรุงอย่างต่อเนื่อง (Continual improvement) โดยสนับสนุนการตอบสนองแบบรวดเร็วและยืดหยุ่นต่อความเปลี่ยนแปลง
คำว่า Agile ได้รับความนิยมจากถ้อยคำแถลง ในปี ค.ศ.2001 ชื่อ  คำแถลงอุดมการณ์แห่งอไจล์ (Manifesto for Agile Software Development) โดย Beck, Kent และคณะ ซึ่งหลักการและค่านิยมต่าง ๆ ที่อยู่ในคำแถลงดังกล่าวมีที่มาจากขอบเขตการพัฒนาซอฟต์แวร์ (Software development framwork) ที่หลากหลาย อาทิ Scrum และ Kanban

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

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

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

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

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