Agile เป็นแนวคิดใหม่สำหรับการพัฒนาซอฟต์แวร์ ซึ่งเป็นส่วนหนึ่งของงานด้าน Software Engineering ที่พยายามที่จะแทรกตัวเข้าไปใน methodology แบบเดิม เพื่อให้งานสั้นลง และประหยัดเวลาและงบประมาณ
Agile Software Development มีหลาย Method ซึ่งส่วนใหญ่แล้วจะเป็นการพัฒนาในช่วงเวลาสั้นๆซึ่งอาจจะใช้เวลาประมาณ 1 - 4 สัปดาห์ โดยโปรเจ็คทั้งหมดจะประกอบด้วย การระบุความต้องการ การวิเคราะห์ การดีไซด์ การออกแบบ การทอดสอบ และการทำเอกสาร
Agile Method จะเน้นในเรื่องของการสื่อสารแบบตัวต่อตัว มากกว่าการใช้เอกสาร ทีมงานอย่างน้อยต้องประกอบด้วยโปรแกรมเมอร์และลูกค้าที่จะกำหนดขอบเขตของ ผลิตภัณฑ์ซึ่งอาจเป็น ผู้จัดการผลิตภัณฑ์ นักวิเคราะห์ธุรกิจ หรืออาจเป็นลูกข่าย ส่วนพวกที่อยู่ในสำนักงานจะประกอบด้วย นักทดสอบระบบ นักออกแบบ นักเขียนเทคนิคและผู้จัดการ
Agile Method จะเน้นให้การพัฒนาซอฟแวร์คืบหน้าเป็นไปตามมาตรการที่ใด้วางไว้ ร่วมกับการสื่อสารกับลูกค้าแบบตัวต่อตัว ซึ่งจะมีเอกสารที่เกี่ยวข้องไม่มากนัก
กิจกรรมใน Phase
โมเดลของ Agile (AM : Agile Modeling)
• เลือกบางหลักการมาทำ
• เป็นวิธีหนึ่งที่จะเอาหลักการของ Agile มาจัดการกับเอกสารและระบบเดิมที่มีอยู่ได้
• ใน Agile ประกอบด้วย
1. value ผลลัพธ์
2. principle หลักการ
3. practices วิธีปฏิบัติ
• ทั้งสามอย่างนี้เป็นส่วนหนึ่งในโมเดล Agile ที่สามารถนำมาพัฒนา SW
ให้มีประสิทธิภาพและเกิด overhead น้อย
• ให้มอง Agile เป็นส่วนขยายของกระบวนการพัฒนา SW แบบเดิมได้
o ให้ Agile เข้าไปกำกับ ดูว่าของเดิมที่มีอยู่อันไหนสำคัญก็ทำ ไม่สำคัญก็ละ
นำ Agile มาจัดลำดับความสำคัญ ดูว่ากิจกรรมไหน ควรทำ ไม่ควรทำ
AM Core Practice (แนวทางปฏิบัติ /ลงมือทำ)
1.จัดประชุม รวบรวม Active stakeholder เท่านั้น บางมีอาจมี None stakeholder เข้ามาฟังได้ แต่ห้ามออกความคิดเห็น ห้ามถาม ห้ามติดต่อ ห้ามแสดงไอเดีย
2. นำ Artifact มาใช้ให้ถูกต้อง Artifact คือชิ้นส่วนของงานที่เราทำระหว่างการพัฒนาระบบเช่น อีเมลล์, source code,จดหมาย,ใบเชิญประชุม ถ้า Artifact ใดถูกเลือกมาใช้ในการทำงาน เรียกว่า "work products" และถ้า work products นี้ ถูกส่งมอบให้ลูกค้าเรียกว่า "Deliverable"
3. พยายามเป็นเจ้าของงาน สามารถทำงานแทนกันและกันได้
4. พยายามใช้โมเดลแบบคู่ขนาน จะได้มองต่างมุม เพื่อเก็บรายละเอียดของระบบให้ครบ
5. ทำให้เนื้อหาง่าย
6. พยายามวาดรูปไม่ให้ซับซ้อน
7. พยายามให้โมเดลเข้าถึงได้ทุกคน
8. สามารถเปลี่ยน Artifact ส่วนหนึ่ง ไปอีกส่วนหนึ่งได้
9. ใช้โมเดลแบบเล็กก่อนค่อยขยาย
10. พยายามให้ผู้อื่นมีส่วนร่วมในการทำโมเดล
11. พิสูจน์ด้วยการลองเขียน code ดู (จาก code เริ่มต้นตั้งแต่แรก)
12. ใช้เครื่องมือง่ายๆในการทำงาน เช่น กระดาษ กระดานดำ
ข้อดี
1. เน้นความพอใจให้ลูกค้า ลูกค้าชอบ มีการส่งมอบ software อย่างต่อเนื่อง
2. ยอมรับ ความต้องการ ที่มีการเปลี่ยนแปลง บ่อยๆ
3. มีการติตตามความคืบหน้าของงานตามหลักการของกระบวนการ
4. ลูกค้าและผู้พัฒนาต้องทำงานร่วมกัน ต้องเจอกันทุกวันจนโปรเจคเสร็จ
5. ต้องมีการพูดคุยกันในลักษณะแบบตัวต่อตัว (face-to-face) ซึ่งเป็นแบบการสื่อสารที่ดีที่สุด
6. โครงการ หรืองานจะถูกสร้างภายใต้สิ่งกระตุ้นส่วนบุคคล เป็นผู้ซึ่งควรให้ความไว้ใจ
7. มีการติตตามดูแลทางด้านเทคนิคในการออกแบบให้ดีที่สดุหรือดีพอใช้
8.ไม่ซับซ้อน เรียบง่าย
9. ทำงานเป็นทีม
10. มีการปรับให้เข้ากับสถานะการณ์สม่ำเสมอ
11. ทีมที่พัฒนามีความอิสระ
ข้อจำกัด
1. ทีมพัฒนาอาจใช้วิธีนี้ไม่ได้ ถ้าลูกค้าไม่มีความไว้เนื้อเชื่อใจในตัวทีมพัฒนา
2. สมาชิกในทีมพัฒนาจะต้องมีทักษะด้านการปฏิสัมพันธ์ที่ดีเพราะต้องติดต่อพบปะกับลูกค้าเสมอ
3. เนื่องจากเป็นวิธีแบบทำซ้ำที่ต้องมีการพูดคุยเรื่องความต้องการหลาย ๆ รอบทำให้มีโอกาสสูงที่ขอบเขตของโครงงานจะกว้างเกินไปไม่มีที่สิ้นสุด
4. ส่งผลเสียต่อทีมพัฒนาในเรื่องของตารางเวลานัดหมาย และส่งผลเสียต่อผู้ใช้ในเรื่องของค่าใช้จ่าย
5. ลูกค้าส่วนใหญ่ต้องการเห็นตัวงานเป็นชิ้นเป็นอันในเวลาที่ค่อนข้างสม่ำ เสมอและอยู่ในขอบเขตงบประมาณที่กำหนดไว้ตายตัว ซึ่งตรงกันข้ามกับแนวคิดของวิธีพัฒนาแบบ Agile
6. ต้องเข้าใจถึงวัฒนธรรมองค์กรมากกว่าวิธีแบบอื่น ๆ รวมถึงต้องตัดสินใจว่าควรใช้วิธีใดให้เข้ากับสภาพแวดล้อมขององค์กรดังกล่าว
7. เนื่องด้วยขั้นตอนที่ยุ่งยากและเสียเวลาของวิธีแบบ Agile ทำให้ผู้บริหารหัวเก่าบางท่านไม่นิยมและพร้อมที่จะเลือกใช้วิธีทันที ถ้าวิธีดังกล่าวสามารถสร้างผลลัพธ์ได้ใกล้เคียงกันและมีขั้นตอนที่ง่ายกว่า
ขอบคุนที่มา *** จำไม่ได้ ต้องขอภัยด้วยคะ ''
เนื้อหาดีครับขอบคุณมาก
ตอบลบ