Development Process with Agile

กระบวนการดำเนินงานโครงการ (Project Process) ตาม Agile Method

Agile Methods เป็นการทำงานในรูปแบบของ Iterative Approach โดยเป็นการพัฒนาซอฟต์แวร์อย่างรวดเร็ว เพื่อจัดส่งให้กับลูกค้า ให้มีการตรวจทานความต้องการได้รวดเร็ว โดยความต้องการที่

เปลี่ยนแปลงจะถูกนำมาผนวก เพิ่มเข้าไปในการ Iterative ในครั้งถัดไป โดยภาพรวมแล้ว Agile Method มีหลักการและลักษณะที่สำคัญดังนี้

1. ต้องทำให้ลูกค้าพึงพอใจกับการส่งมอบงานที่มีคุณภาพอย่างรวดเร็ว และต่อเนื่อง

2. การให้ลูกค้ามีส่วนร่วม (Customer Involvement) คือ ลูกค้าต้องมีบทบาทใกล้ชิดในกระบวนการ พัฒนา เนื่องจากเราต้องเพิ่มความต้องการใหม่ตามความต้องการลูกค้า และพร้อมประเมินผลกระทบที่มีการเปลี่ยนแปลง

3. พร้อมรับความต้องการของลูกค้าที่เปลี่ยนแปลงอยู่ตลอดเวลา ถึงแม้ว่าจะเป็นช่วงท้ายๆ ของการพัฒนาก็ตาม ทั้งนี้เพื่อให้ลูกค้ามีความได้เปรียบทางการแข่งขันมากที่สุด โดยทีม Agile จะต้องเตรียมการเพื่อจัดการกับความเปลี่ยนแปลง (Embrace Change) คือ คาดการณ์เกี่ยวกับความต้องการของระบบที่ต้องมีการเปลี่ยนแปลง ดังนั้นควรออกแบบให้ระบบให้ครอบคลุมกับสิ่งเหล่านั้น

4. ทำให้ง่ายเข้าไว้ (Maintain Simplicity) คือ ไม่พยายามใช้เทคนิคในการพัฒนาที่มีความซับซ้อน เน้นความเรียบง่าย

5. ส่งมอบงานที่ใช้งานได้อย่างต่อเนื่องทุกๆสัปดาห์ ไปจนถึงทุกๆเดือน ทั้งนี้เวลาโดยรวมจะต้องไม่ยาวนานเกินไป

6. บุคลากรที่เป็นผู้ใช้และบุคลากรที่พัฒนาระบบจะต้องทำงานร่วมกันอย่างใกล้ชิดและต่อเนื่องจนเสร็จสิ้นโครงการ

7. สร้างแรงกระตุ้นให้กับบุคลากรที่เกี่ยวข้องกับโครงการ โดยสร้างสภาพแวดล้อมที่ดี และคอยสนับสนุนความต้องการ รวมถึงต้องเชื่อใจในแต่ละตัวบุคคลว่าจะสามารถทำงานที่ได้รับมอบหมายให้เสร็จสิ้นได้โดยใช้ศักยภาพสูงสุด

8. วิธีการแลกเปลี่ยนข้อมูลกันในทีมพัฒนาระบบที่มีประสิทธิภาพมากที่สุดคือการ พูด คุย พบปะ และสนทนากันทั้งที่เป็นทางการและไม่เป็นทางการ

9. ชิ้นงาน หรือ Work Product ที่ใช้งานได้เป็นตัววัดตัวแรกของความก้าวหน้าของโครงการ

10. เน้นการพัฒนาแบบค่อยเป็นค่อยไป ทั้งผู้สนับสนุนโครงการ ผู้พัฒนา และผู้ใช้ จะต้องทำงานร่วมกันด้วยความก้าวหน้าแบบคงที่ ได้โดยมีข้อจำกัดน้อยที่สุดหรือไม่มีเลย

11. การใส่ใจและการติดตามเทคนิคที่ทันสมัยและการออกแบบที่ดีอย่างต่อเนื่อง จะช่วยส่งเสริมประสิทธิภาพการพัฒนาระบบให้ดียิ่งขึ้น

12. โครงสร้าง ความต้องการ และการออกแบบที่ดีที่สุดเกิดขึ้นจากทีมงานพัฒนาที่มีการบริหารกันเอง

13. ทีมงานพัฒนาจะต้องทบทวนตัวเองว่าจะมีประสิทธิภาพเพิ่มขึ้นได้อย่างไร และจะต้องปรับเปลี่ยนพฤติกรรมตามข้อคิดเหล่านั้นตลอดเวลา

กระบวนการวิธีการดำเนินงาน ในการพัฒนาระบบ บริษัทจะนำมาตรฐานการดำเนินงานโครงการ CMMI และ Agile Methods มาใช้ โดยแบ่งเป็นระยะ (Phase) ต่างๆ ซึ่งในแต่ละระยะจะมีการกำหนดงาน

หน้าที่ความรับผิดชอบ และติดตามความก้าวหน้าเพื่อให้เป็นไปตามแผนงานที่วางไว้ และสามารถสรุปเป็นกระบวนวิธีการดำเนินงานโครงการได้ดังนี้


Get Requirement for Estimate Budget

หัวข้อสำหรับการเก็บข้อมูล
  • Activity
    • คือสิ่งที่ระบบต้องสามารถดำเนินการได้ เช่น ถ้าเป็นระบบรับเงิน ก็ต้องมีหน้าจอสำหรับบันทึกการรับเงิน
  • Process
    • หมายถึง ขั้นตอนการดำเนินงานของระบบ หรือ คนที่เกี่ยวข้องการการทำงานใน Activity ดังกล่าว
  • Executed
    • หมายถึง การทำงานหลังบ้านของระบบ โดยเป็นการทำงานแบบ Auto เช่น การนำผลที่ได้จากการบันทึก มาทำงาน โอนเข้าไปในอีกระบบหนึ่ง
  • Output
    • หมายถึง ผลที่ได้จากการทำงานของระบบ เช่น report , เอกสารหลักฐาน
หัวข้อการเตรียมข้อมูลสำหรับก่อนเริ่มพัฒนาระบบ

Process Development : Agile

Development Process with Agile

           Agile Methods เป็นการทำงานในรูปแบบของ Iterative Approach โดยเป็นการพัฒนาซอฟต์แวร์อย่างรวดเร็ว เพื่อจัดส่งให้กับลูกค้า ให้มีการตรวจทานความต้องการได้รวดเร็ว โดยความต้องการที่

เปลี่ยนแปลงจะถูกนำมาผนวก เพิ่มเข้าไปในการ Iterative ในครั้งถัดไป โดยภาพรวมแล้ว Agile Method มีหลักการและลักษณะที่สำคัญดังนี้

  1. ต้องทำให้ลูกค้าพึงพอใจกับการส่งมอบงานที่มีคุณภาพอย่างรวดเร็ว และต่อเนื่อง
  2. การให้ลูกค้ามีส่วนร่วม (Customer Involvement) คือ ลูกค้าต้องมีบทบาทใกล้ชิดในกระบวนการ พัฒนา เนื่องจากเราต้องเพิ่มความต้องการใหม่ตามความต้องการลูกค้า และพร้อมประเมินผลกระทบที่มีการเปลี่ยนแปลง
  3. พร้อมรับความต้องการของลูกค้าที่เปลี่ยนแปลงอยู่ตลอดเวลา ถึงแม้ว่าจะเป็นช่วงท้ายๆ ของการพัฒนาก็ตาม ทั้งนี้เพื่อให้ลูกค้ามีความได้เปรียบทางการแข่งขันมากที่สุด โดยทีม Agile จะต้องเตรียมการเพื่อจัดการกับความเปลี่ยนแปลง (Embrace Change) คือ คาดการณ์เกี่ยวกับความต้องการของระบบที่ต้องมีการเปลี่ยนแปลง ดังนั้นควรออกแบบให้ระบบให้ครอบคลุมกับสิ่งเหล่านั้น
  4. ทำให้ง่ายเข้าไว้ (Maintain Simplicity) คือ ไม่พยายามใช้เทคนิคในการพัฒนาที่มีความซับซ้อน เน้นความเรียบง่าย
  5. ส่งมอบงานที่ใช้งานได้อย่างต่อเนื่องทุกๆสัปดาห์ ไปจนถึงทุกๆเดือน ทั้งนี้เวลาโดยรวมจะต้องไม่ยาวนานเกินไป
  6. บุคลากรที่เป็นผู้ใช้และบุคลากรที่พัฒนาระบบจะต้องทำงานร่วมกันอย่างใกล้ชิดและต่อเนื่องจนเสร็จสิ้นโครงการ
  7. สร้างแรงกระตุ้นให้กับบุคลากรที่เกี่ยวข้องกับโครงการ โดยสร้างสภาพแวดล้อมที่ดี และคอยสนับสนุนความต้องการ รวมถึงต้องเชื่อใจในแต่ละตัวบุคคลว่าจะสามารถทำงานที่ได้รับมอบหมายให้เสร็จสิ้นได้โดยใช้ศักยภาพสูงสุด
  8. วิธีการแลกเปลี่ยนข้อมูลกันในทีมพัฒนาระบบที่มีประสิทธิภาพมากที่สุดคือการ พูด คุย พบปะ และสนทนากันทั้งที่เป็นทางการและไม่เป็นทางการ
  9. ชิ้นงาน หรือ Work Product ที่ใช้งานได้เป็นตัววัดตัวแรกของความก้าวหน้าของโครงการ
  10. เน้นการพัฒนาแบบค่อยเป็นค่อยไป ทั้งผู้สนับสนุนโครงการ ผู้พัฒนา และผู้ใช้ จะต้องทำงานร่วมกันด้วยความก้าวหน้าแบบคงที่ ได้โดยมีข้อจำกัดน้อยที่สุดหรือไม่มีเลย
  11. การใส่ใจและการติดตามเทคนิคที่ทันสมัยและการออกแบบที่ดีอย่างต่อเนื่อง จะช่วยส่งเสริมประสิทธิภาพการพัฒนาระบบให้ดียิ่งขึ้น
  12. โครงสร้าง ความต้องการ และการออกแบบที่ดีที่สุดเกิดขึ้นจากทีมงานพัฒนาที่มีการบริหารกันเอง
  13. ทีมงานพัฒนาจะต้องทบทวนตัวเองว่าจะมีประสิทธิภาพเพิ่มขึ้นได้อย่างไร และจะต้องปรับเปลี่ยนพฤติกรรมตามข้อคิดเหล่านั้นตลอดเวลา

          กระบวนการวิธีการดำเนินงาน ในการพัฒนาระบบ บริษัทจะนำมาตรฐานการดำเนินงานโครงการ CMMI และ Agile Methods มาใช้ โดยแบ่งเป็นระยะ (Phase) ต่างๆ ซึ่งในแต่ละระยะจะมีการกำหนดงาน

หน้าที่ความรับผิดชอบ และติดตามความก้าวหน้าเพื่อให้เป็นไปตามแผนงานที่วางไว้ และสามารถสรุปเป็นกระบวนวิธีการดำเนินงานโครงการได้ดังนี้

Get Requirement for Estimate Budget

หัวข้อสำหรับการเก็บข้อมูล

  • Activity
    • คือสิ่งที่ระบบต้องสามารถดำเนินการได้ เช่น ถ้าเป็นระบบรับเงิน ก็ต้องมีหน้าจอสำหรับบันทึกการรับเงิน
  • Process
    • หมายถึง ขั้นตอนการดำเนินงานของระบบ หรือ คนที่เกี่ยวข้องการการทำงานใน Activity ดังกล่าว
  • Executed
    • หมายถึง การทำงานหลังบ้านของระบบ โดยเป็นการทำงานแบบ Auto เช่น การนำผลที่ได้จากการบันทึก มาทำงาน โอนเข้าไปในอีกระบบหนึ่ง
  • Output
    • หมายถึง ผลที่ได้จากการทำงานของระบบ เช่น report , เอกสารหลักฐาน

หัวข้อการเตรียมข้อมูลสำหรับก่อนเริ่มพัฒนาระบบ