เทคนิควิธีการเลือก Life Cycle ของ โครงการ (Waterfall หรือ Agile ดีหล่ะ)

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

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

งานกลุ่มที่ 2
การออกแบบสิ่งที่จะส่งมอบ (Design) คือกลุ่มงานที่นำความต้องการของลูกค้าหรือผู้มีส่วนได้ส่วนเสียในโครงการ มาทำการออกแบบสิ่งส่งมอบหรือ Deliverable ที่โครงการจะส่งมอบตอนจบโครงการ

งานกลุ่มที่ 3
การสร้างสิ่งส่งมอบ (Build) คือกลุ่มงานที่นำรายละเอียดจากการออกแบบ มาทำการสร้างสิ่งส่งมอบจริงๆ เพื่อให้ได้สิ่งส่งมอบตามที่ออกแบบเอาไว้

งานกลุ่มที่ 4
การตรวจสอบควบคุมคุณภาพของสิ่งส่งมอบ (Test) คือกลุ่มงานที่เกี่ยวข้องกับการทดสอบคุณภาพของสิ่งส่งมอบ เพื่อให้มั่นใจว่าสิ่งส่งมอบของโครงการนั้น นอกจากจะเป็นไปตามการออกแบบแล้ว ยังมีคุณภาพในระดับที่ยอมรับได้ต่อการใช้งาน

งานกลุ่มที่ 5
การนำสิ่งส่งมอบสู่การใช้งานจริง (Deploy) คือกลุ่มงานที่เกี่ยวข้องกับการนำสิ่งส่งมอบที่ทดสอบผ่านแล้ว ไปทำการติดตั้ง หรือนำสู่การใช้งานจริง

งานทั้ง 5 กลุ่มของโครงการนั้น มุ่งเน้นให้สามารถส่งมอบสินค้าหรือบริการ ที่ตอบสนองความต้องการของลูกค้าหรือผู้มีส่วนได้ส่วนเสียของโครงการ ในระดับคุณภาพที่ลูกค้ายอมรับได้ และเป็นไปตามต้นทุนและเวลาที่กำหนด แต่วิธีการวางแผนโครงการนั้น คือการจัดลำดับงานในโครงการ โดยพิจารณาความเหมาะสมของโครงการ ซึ่งเราเรียกการจัดลำดับงานในโครงการว่า Life Cycle ซึ่งในบทความนี้ จะขอยกตัวอย่าง Life Cycle สำคัญๆ ที่นิยมใช้กันบ่อยๆ มาให้เห็นภาพซัก 3 ประเภท ดังนี้
 
  1. Life Cycle แบบ Waterfall
Waterfall
 Life Cycle, Agile, Waterfall 
    
      
การเลือกใช้ Waterfall Life Cycle นั้น ผู้บริหารโครงการและทีมงานจะต้องพยายามสรุปความต้องการของโครงการให้มีความชัดเจน แล้วจึงนำไปออกแบบให้เสร็จ จากนั้นก็จะนำรายละเอียดการออกแบบที่สรุปเรียบร้อยแล้ว ไปทำการ Build หรือ สร้างสิ่งส่งมอบออกมา แล้วจึงนำสิ่งส่งมอบที่สร้างเสร็จไปทำการทดสอบและแก้ไขให้เรียบร้อย ก่อนนำไปใช้งานจริง หากมีการเปลี่ยนแปลงความต้องการระหว่างที่กำลังดำเนินการ ไม่ว่าจะอยู่ในขั้นตอนการ Design, Build หรือ Test งานในโครงการทั้งหมดจะต้องมีการเปลี่ยนแปลง และกลับไปสู่ขั้นตอนการ Analysis ใหม่อีกครั้ง
ข้อดีของการใช้ Waterfall
  • ความต้องการของโครงการถูกกำหนด และลงรายละเอียดให้มีความชัดเจน
  • โครงการถูกวางแผนลงรายละเอียดชัดเจนครบถ้วน ทำให้สามารถกำหนดระยะเวลา ต้นทุนโครงการและทรัพยากรที่จำเป็นทั้งหมดได้
ข้อเสียของการใช้ Waterfall
  • สำหรับโครงการที่ความต้องการไม่ชัดเจน จะทำให้เสียเวลาในการ Analysis นาน และอาจไม่สามารถกำหนดรายละเอียดความต้องการทั้งหมดได้
  • การเปลี่ยนแปลงต่างๆในโครงการ ทำได้ยาก และช้า ต้องมีการจัดการมากขึ้น
  • ลูกค้าต้องรอนาน กว่าจะได้รับสิ่งส่งมอบ เนื่องจาก โครงการส่งมอบครั้งเดียวในตอนสุดท้าย
  • มีความเสี่ยงที่สิ่งส่งมอบที่ส่งให้ลูกค้านั้น อาจไม่เป็นไปตามความต้องการลูกค้า เนื่องจากไม่มีโอกาสให้ลูกค้าได้ทำการตรวจสอบล่วงหน้า หรือหากสิ่งส่งมอบเป็นไปตามความต้องการที่ลูกค้ากำหนดในตอนต้น แต่อาจไม่ตอบโจทย์การใช้งานจริงของลูกค้า เนื่องจากลูกค้าไม่ได้มีโอกาสลองใช้งาน และปรับเปลี่ยนความต้องการตนเองระหว่างดำเนินโครงการ
โครงการใด เหมาะกับ Waterfall
  • โครงการที่สามารถกำหนดความต้องการหรือวิธีการพัฒนาได้ชัดเจน
  • โครงการที่มีความซับซ้อนในการออกแบบไม่มากนัก และสามารถลงรายละเอียดการออกแบบได้ชัดเจน
  • โครงการที่มีการเปลี่ยนแปลงความต้องการน้อยหรือไม่มีเลย (ซึ่งหาโครงการประเภทนี้ยากมาก)
 
 
  1. Life Cycle แบบ Incremental
IncrementalWaterfall
            Life Cycle, Agile, Waterfall
                Life Cycle แบบ Incremental นั้น คือความพยายามในการนำ Waterfall มาใช้เป็นพื้นฐาน แต่พยายามปรับปรุงเพื่อลดข้อเสียต่างๆของ Waterfall ลงมา โดยการนำสิ่งที่ต้องส่งมอบในโครงการ มาทำการแยกชิ้นส่วน ออกเป็นชิ้นใหญ่ๆ เพื่อทยอยส่งมอบ และนำแต่ละชิ้นมาทำการวิเคราะห์ ออกแบบ สร้าง และทดสอบ ตามแบบ Life Cycle ของ Waterfall และเมื่อส่งมอบ ชิ้นที่ 1 เสร็จแล้วก็จะไปเริ่มทำชิ้นที่ 2 โดยเริ่มตั้งแต่ขั้นตอน วิเคราะห์รวบรวมความต้องการใหม่อีกครั้ง อย่างนี้ไปเรื่อยๆ จนครบทุกชิ้นงานที่จะส่งมอบในโครงการ หรืออธิบายให้เข้าใจง่ายๆ Incremental Life Cycle ก็คือการ ใช้ Waterfall ย่อยๆ หลายๆครั้งนั่นเอง เพื่อคาดหวังประโยชน์ให้ลูกค้าหรือผู้มีส่วนได้ส่วนเสียในโครงการ ได้มีโอกาสเห็น และลองใช้สิ่งส่งมอบย่อยๆ หลายๆครั้ง และมีโอกาสเปลี่ยนแปลงความต้องการของตัวเองได้ หลังจากได้สัมผัสสิ่งส่งมอบชิ้นแรกๆแล้ว 
ข้อดีของการใช้ Incremental
  • แผนโครงการค่อนข้างชัดเจน และกำหนดระยะเวลา และต้นทุนโครงการได้
  • ความต้องการของโครงการมีความชัดเจน ในบางส่วน โดยเฉพาะส่วนที่ต้องส่งมอบเป็นชิ้นแรกๆ
  • ลูกค้าได้เห็นและมีโอกาสสัมผัสสิ่งส่งมอบ ชิ้นแรกๆ ซึ่งจะเปิดโอกาสให้ลูกค้า สามารถปรับปรุงความต้องการของตนเองในการกำหนดความต้องการของสิ่งส่งมอบชิ้นถัดๆไป
ข้อเสียของการใช้ Incremental
  • สำหรับโครงการที่ความต้องการไม่ชัดเจน จะทำให้เสียเวลาในการ Analysis สิ่งส่งมอบชิ้นแรก นาน และอาจไม่สามารถกำหนดรายละเอียดความต้องการทั้งหมดได้
  • การเปลี่ยนแปลงต่างๆ กับสิ่งส่งมอบ ที่ทำเสร็จไปแล้ว จะทำได้ยาก และช้า
  • มีความเสี่ยงที่สิ่งส่งมอบ ชิ้นที่ 1 , 2 , 3 ,… จนถึงชิ้นสุดท้าย เมื่อสร้างขึ้นมาเสร็จแล้ว จะไม่สามารถทำงานร่วมกันได้
โครงการใด เหมาะกับ Incremental
  • โครงการที่สามารถกำหนดความต้องการได้ชัดเจน บางส่วน
  • โครงการที่มีสิ่งส่งมอบ ที่สามารถแยกออกจากกันเป็นชิ้นๆ ได้อย่างค่อนข้างอิสระต่อกัน และมีส่วนเชื่อมต่อกันไม่มากนัก
 
  1. Life Cycle แบบ Agile
 Life Cycle, Agile, Waterfall
Life Cycle Agile Life Cycle Agile Scrum1-4 1 Sprint Sprint Feedback (User Experience)
 
ข้อดีของการใช้ Agile
  • ลูกค้าสามารถเข้ามามีส่วนร่วมในโครงการ เพื่อกำหนดความต้องการ และเรียนรู้เพื่อปรับปรุงความต้องการของตนเองได้บ่อยครั้ง ทำให้ได้สิ่งส่งมอบที่สร้างประสบการณ์ที่ดีให้กับลูกค้าได้
  • การวางแผนโครงการ ไม่จำเป็นต้องได้รับขอบเขตงานและรายละเอียดความต้องการครบถ้วนทั้งหมด ก็สามารถเริ่มโครงการไปก่อนได้
  • การตอบสนองต่อการเปลี่ยนแปลงต่างๆในโครงการ เป็นไปได้อย่างรวดเร็วและคล่องตัว
  • ลูกค้าได้เห็น และมีโอกาสสัมผัสสิ่งส่งมอบบ่อยครั้ง ซึ่งจะเปิดโอกาสให้ลูกค้า สามารถปรับปรุงความต้องการของตนเองในการกำหนดความต้องการของสิ่งส่งมอบถัดๆไป
ข้อเสียของการใช้ Agile
  • โครงการมีโอกาสล่าช้ากว่ากำหนด
  • การวางแผนเวลา ต้นทุนและทรัพยากรในโครงการทำได้ยากและไม่ชัดเจน
  • ต้องการการมีส่วนร่วมจากลูกค้าอย่างมากและต่อเนื่องตลอดระยะเวลาโครงการ
โครงการใด เหมาะกับ Agile
  • โครงการที่ไม่สามารถกำหนดขอบเขตงานและความต้องการ หรือวิธีการพัฒนาได้ชัดเจน
  • โครงการที่มีความซับซ้อนในการออกแบบมาก และไม่สามารถลงรายละเอียดการออกแบบได้ชัดเจน
  • โครงการที่มีการเปลี่ยนแปลงความต้องการมากๆ
  • โครงการที่ต้องการเห็นความก้าวหน้าในการส่งมอบอย่างรวดเร็วและต่อเนื่อง
  • โครงการที่ลูกค้าหรือผู้มีส่วยได้ส่วยเสีย มีเวลาที่จะเข้ามามีส่วนร่วมกับโครงการอย่างมาก
 
Life Cycle ทั้ง 3 แบบนั้น มีข้อดี และข้อเสียในตัวเอง ผู้จัดการโครงการควรพิจารณาบริบทของโครงการ ก่อนที่จะเลือก Life Cycle มาประยุกต์ใช้เป็นวิธีการทำงานและลำดับการทำงานในโครงการ หรือบางครั้งอาจจะต้องประยุกต์ใช้ ทั้ง 3 วิธีแบบผสมผสานกัน เพื่อให้เหมาะกับบริบทของโครงการ  ตัวอย่างการประยุกต์ใช้ Life Cycle ทั้ง 3 ประเภท แบบ ผสมผสานกันตามบริบทโครงการนั้น จะขออธิบาย และยกตัวอย่างให้เห็นภาพในบทความถัดไป
 
อรินทรา ปัญญายุทธการ
PMP, PMI-ACP, CSM, CSPO, LeSS, CSPM, CSQA, CSTE, MCTS