1. ให้ความสำคัญกับคนและการมีปฏิสัมพันธ์ในงานร่วมกัน มากกว่าการทำตามขั้นตอนและเครื่องมือ (Individuals and interactions over processes and tools)
2. เน้นให้ซอฟต์แวร์ที่ได้นำไปใช้งานได้จริง มากกว่าการเน้นในเอกสารการทำงานที่ครบถ้วนสมบูรณ์ (Working software over comprehensive documentation)
3. เน้นการทำงานร่วมกับลูกค้ามากกว่าการทำงานตามข้อกำหนดตกลงในสัญญา (Customer collaboration over contract negotiation)
4. เน้นการตอบรับกับการปรับปรุงเปลี่ยนแปลงที่พบ มากกว่าการทำตามแผนที่วางไว้ (Responding to change over following a plan)
การพัฒนาแบบ Agile คือ แนวคิดในการทำงานไม่ใช่รูปแบบหรือขั้นตอนการทำงาน และยังไม่จำกัดเพียงในการใช้สำหรับการพัฒนาผลิตภัณฑ์ในงานด้านโปรแกรม (Software) เท่านั้น ยังสามารถนำไปใช้งานการผลิตออกแบบหรือพัฒนาระบบได้อีกมากมาย Agile จะให้ความสำคัญในการสื่อสารกับผู้เกี่ยวข้องทุกฝ่ายและการปรับปรุงพัฒนาผลิตภัณฑ์อยู่ตลอดเพื่อตอบสนองผู้ใช้งาน
วิธีการทำงานแบบอไจล์
- เริ่มจาก Stakeholders มี Requirement (ปัญหาหรือความต้องการ) บางอย่าง
- PO อยากทำการแก้ไขปัญหาและตอบสนองความต้องการนั้น
- PO แปลง Requirement เป็น User Story เพื่อให้ Dev นำไปพัฒนาผลิตภัณฑ์
- Dev ออกแบบและพัฒนาผลิตภัณฑ์ตาม User Story ที่ได้รับ โดยมีตัววัดว่าสำเร็จคือ Acceptance Criteria
- Dev จะส่งมอบผลิตภัณฑ์ให้กับ Stakeholders นำไปใช้งาน
- Stakeholders อาจมี Feedback หรือความต้องการเพิ่มเติม
- วัดผลสิ่งที่ทำ จาก Feedback ที่ได้รับมา
- PO แปลงผลที่ได้เป็น User Story ใหม่ เพื่อให้ Dev นำไปปรับปรุงหรือพัฒนาผลิตภัณฑ์เพิ่มเติม
การทำ Agile คือการลด Feedback Loop ดังกล่าวให้สั้นที่สุดเพื่อจะได้นำมาปรับปรุงได้อย่างรวดเร็ว นอกจากนี้ในความเป็นจริง Stakeholders มีความต้องการมากมายทำให้ User Story มีจำนวนมาก ในขณะที่ Dev มีความสามารถในการพัฒนาผลิตภัณฑ์จำกัด ทำให้ไม่สามารถตอบสนองความต้องการทั้งหมดนั้นได้ PO จึงต้องเป็นคนคอยกำหนดว่าจะทำอะไรก่อนทำอะไรหลัง หรือจะไม่ทำอะไรเพราะประโยชน์ที่จะได้รับไม่คุ้มค่ากับการลงมือทำ
Agile มีหลักการคือ การนำความคล่องตัวมาสู่การพัฒนาระบบ โดยมุ่งให้เกิดการเสริมในงานโมเดลแบบ Waterfall ที่แยกส่วนงานย่อยให้เล็ก การพัฒนาซอฟต์แวร์แบบ Agile นั้นเกี่ยวกับการปฏิบัติตามชุดแนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างซอฟต์แวร์ที่มีคุณภาพในเวลาที่เหมาะสม แต่ปัญหาคือแนวทางปฏิบัติที่ดีที่สุดเกี่ยวข้องกับคนที่ทำงานในกลุ่มของตนเองเท่านั้นเช่น คณะทำงาน ผู้พัฒนาระบบ ผู้ทดสอบ หรือผู้ติดตามประเมิน โดยจะมีการสื่อสารน้อยมากระหว่างกันเพราะเน้นที่การแยกส่วนทำงานให้มีความรวดเร็วเป็นหลัก หากจะมีการคุยกันบ้างก็ในกลุ่มผู้พัฒนาระบบ โดยจะไม่ได้เน้นหรือตระหนักถึงสิ่งที่ผู้ปฎิบัติงานจริงหรือคนที่กำลังทำงานทำอยู่ในชีวิตจริง
- กระบวนการหรือการปฏิบัติ ในการพัฒนาแบบ Agile นั้นเกี่ยวข้องกับการปฏิบัติเช่น Agile Scrum & Agile Kanban
- พื้นที่โฟกัสที่สนใจให้ความสำคัญ การพัฒนาแบบจะเน้นที่ความว่องไวมุ่งไปที่การปล่อยซอฟต์แวร์ที่มีคุณภาพเป็นหลัก ในเวลาที่เหมาะสม
- มีรอบระยะเวลาทั้งในส่วนของการเผยแพร่และการพัฒนา โดยจะมุ่งเน้นไปที่ระยะเวลาที่สั้นลง มุ่งให้มีการส่งมอบงานที่เร็วขึ้น
- ผู้ให้ข้อเสนอแนะ ความคิดเห็นส่วนใหญ่จะได้รับจากลูกค้าเมื่อใช้งาน