꿈많은청년들

วิธีการพัฒนาแบบ Waterfall คืออะไร?

สร้าง: 2024-05-14

สร้าง: 2024-05-14 09:50

วิธีการพัฒนาแบบ Waterfall คืออะไร?

วิธีการพัฒนาแบบ Waterfall

วิธีการพัฒนาแบบ Waterfall (Waterfall Model) เป็นหนึ่งในวิธีการที่เก่าแก่ที่สุดในการพัฒนาซอฟต์แวร์ ซึ่งหมายถึงวิธีการที่ดำเนินการโครงการผ่านขั้นตอนต่างๆ ที่เป็นลำดับขั้นตอน แบบจำลองนี้มีโครงสร้างที่ดำเนินการไปยังขั้นตอนถัดไปหลังจากเสร็จสิ้นขั้นตอนหนึ่งๆ อย่างสมบูรณ์ คล้ายกับน้ำตก (waterfall) ที่ไหลจากที่สูงลงสู่ที่ต่ำ ซึ่งเป็นลักษณะเฉพาะของการดำเนินการทีละขั้นตอน ในบทความนี้ เราจะมาดูรายละเอียดของคำจำกัดความ ลักษณะเฉพาะ ข้อดี ข้อเสีย และตัวอย่างการใช้งานของวิธีการพัฒนาแบบ Waterfall

คำจำกัดความของวิธีการพัฒนาแบบ Waterfall

วิธีการพัฒนาแบบ Waterfall เป็นวิธีการที่ดำเนินการตามขั้นตอนต่างๆ ในวงจรชีวิตการพัฒนาซอฟต์แวร์ (SDLC: Software Development Life Cycle) แบบจำลองนี้ได้รับการแนะนำครั้งแรกโดย Winston W. Royce ในช่วงปี 1970 และได้รับการใช้งานในโครงการต่างๆ มากมายนับตั้งแต่นั้นมา แบบจำลอง Waterfall ประกอบด้วยขั้นตอนต่อไปนี้:

1. การวิเคราะห์ความต้องการ (Requirements Analysis): ขั้นตอนในการรวบรวมและกำหนดความต้องการของโครงการให้ชัดเจน

2. การออกแบบ (Design): ขั้นตอนในการออกแบบสถาปัตยกรรมและรายละเอียดของซอฟต์แวร์

3. การพัฒนา (Implementation): ขั้นตอนในการเขียนโค้ดจริงและพัฒนาซอฟต์แวร์

4. การทดสอบ (Test): ขั้นตอนในการทดสอบซอฟต์แวร์ที่พัฒนาขึ้นเพื่อค้นหาและแก้ไขข้อผิดพลาด

5. การปรับใช้ (Deployment): ขั้นตอนในการปรับใช้ซอฟต์แวร์ในสภาพแวดล้อมการทำงานจริง

6. การบำรุงรักษา (Maintenance): ขั้นตอนในการดูแลรักษาและปรับปรุงซอฟต์แวร์ที่ปรับใช้แล้ว

ภาพน้ำตกที่แสดงถึงขั้นตอนต่างๆ

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

แต่เนื่องจากน้ำไหลจากที่สูงลงสู่ที่ต่ำ ดังนั้น ในกรณีที่การพัฒนาเริ่มขึ้นแล้ว การแก้ไขแผนงานอย่างกะทันหันเพื่อเปลี่ยนแปลงการพัฒนาจึงไม่เกิดขึ้น

ลักษณะเฉพาะของวิธีการพัฒนาแบบ Waterfall

  • ดำเนินการแบบลำดับขั้นตอน: มีโครงสร้างที่ดำเนินการไปยังขั้นตอนถัดไปหลังจากเสร็จสิ้นขั้นตอนหนึ่งๆ
  • เน้นการจัดทำเอกสาร: แต่ละขั้นตอนจะมีการจัดทำเอกสารอย่างละเอียดเพื่อบันทึกข้อมูลที่ชัดเจน
  • ความต้องการที่ตายตัว: กำหนดความต้องการทั้งหมดให้ชัดเจนในขั้นตอนการวิเคราะห์ความต้องการเบื้องต้น และการเปลี่ยนแปลงความต้องการในขั้นตอนต่อๆ ไปทำได้ยาก

ข้อดีและข้อเสียของวิธีการพัฒนาแบบ Waterfall

ข้อดี

1. โครงสร้างที่ชัดเจน: แบ่งออกเป็นขั้นตอนต่างๆ อย่างชัดเจน ทำให้สามารถติดตามความคืบหน้าได้ง่าย

2. การจัดทำเอกสาร: มีการจัดทำเอกสารอย่างละเอียดในแต่ละขั้นตอน ทำให้สามารถติดตามความคืบหน้าของโครงการและการตัดสินใจต่างๆ ได้ง่าย

3. ความสะดวกในการจัดการ: สามารถจัดการแผนและกำหนดเวลาได้ง่าย และสามารถกำหนดเป้าหมายที่ชัดเจนในแต่ละขั้นตอน

ข้อเสีย

1. การเปลี่ยนแปลงทำได้ยาก: เนื่องจากความต้องการได้รับการกำหนดไว้ในช่วงเริ่มต้น ทำให้การเปลี่ยนแปลงความต้องการในขั้นตอนต่อๆ ไปทำได้ยากและมีค่าใช้จ่ายสูง

2. การพึ่งพาอาศัยกันระหว่างขั้นตอน: ไม่สามารถดำเนินการขั้นตอนถัดไปได้จนกว่าขั้นตอนก่อนหน้าจะเสร็จสิ้น ทำให้มีความเสี่ยงที่โครงการจะล่าช้า

3. การมีส่วนร่วมของลูกค้าต่ำ: หลังจากขั้นตอนเริ่มต้น ลูกค้าจะมีส่วนร่วมจำกัด ทำให้ผลลัพธ์สุดท้ายอาจไม่ตรงกับความคาดหวังของลูกค้า

เป็นคำศัพท์ที่ใช้เมื่อพูดถึงวิธีการพัฒนา และหมายถึงการพัฒนาตามขั้นตอนต่างๆ


ข้อมูลเพิ่มเติมที่ควรรู้

วิธีการตรงกันข้ามคือ วิธีการแบบ Agileซึ่งเป็นวิธีการที่เปิดตัวโปรโตไทป์ก่อน แล้วค่อยๆ แก้ไข ปรับปรุง และเพิ่มฟังก์ชันการทำงานอย่างต่อเนื่อง วิธีการนี้มักใช้ในการสร้างบริการของตัวเอง เนื่องจากสามารถเพิ่มความสมบูรณ์แบบของบริการและสามารถจัดการกับบุคลากรที่สามารถแก้ไขได้อย่างต่อเนื่อง

หากใช้ Agile ในการพัฒนาบริการของลูกค้า (SI ออฟชอร์) ลูกค้าจะต้องจ่ายค่าแรงและค่าใช้จ่ายอื่นๆ (ค่าเช่า ค่าใช้จ่ายในการบริหาร ฯลฯ) ทุกเดือน แต่ในความเป็นจริงแล้ว การพัฒนามักจะกำหนดราคาไว้ล่วงหน้า เช่น พัฒนา 2 เดือน พัฒนา 5 เดือน แทนที่จะจ่ายเป็นรายเดือนโดยไม่มีกำหนดสิ้นสุด เนื่องจากการจ่ายเงินแบบนี้ค่อนข้างหายาก

ความคิดเห็น0

[เรื่องราวของนักพัฒนา SI] 09. การเริ่มต้นพัฒนาอย่างจริงจังหลังจากเข้าร่วมโครงการ SIบทความนี้จะแนะนำวิธีรับมือกับการเปลี่ยนแปลงข้อกำหนดของลูกค้าอย่างยืดหยุ่นตั้งแต่ช่วงเริ่มต้นของโครงการพัฒนา SI รวมถึงข้อควรระวังในการพัฒนา
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 18, 2024

[เรื่องราวของนักพัฒนา SI] 10. การจัดทำเอกสารในโครงการ SI คืออะไร?เนื้อหาเกี่ยวกับการจัดทำเอกสารเป็นสิ่งจำเป็นในโครงการ SI แต่ผู้พัฒนามักพบกับความยากลำบากในการจัดทำ โดยเฉพาะอย่างยิ่งนักพัฒนาใหม่มักจะได้รับมอบหมายให้รับผิดชอบงานด้านเอกสาร
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 19, 2024

[สำหรับผู้ไม่ใช่ผู้เชี่ยวชาญ ด้านการพัฒนาซอฟต์แวร์ เพื่อความอยู่รอด] 14. สรุปเนื้อหาสัมภาษณ์ทางเทคนิคที่ผู้พัฒนาซอฟต์แวร์มือใหม่ถามบ่อยสรุปคำถามทางเทคนิคที่มักถามในการสัมภาษณ์งานผู้พัฒนาซอฟต์แวร์มือใหม่ (พื้นที่หน่วยความจำ โครงสร้างข้อมูล ฐานข้อมูล ฯลฯ) หวังว่าจะเป็นประโยชน์ในการเตรียมตัวสัมภาษณ์งานด้านการพัฒนา
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

[เรื่องราวของนักพัฒนา SI] 08. การทำความเข้าใจงานในช่วงเริ่มต้นโครงการ SIในช่วงเริ่มต้นของโครงการ SI นักพัฒนาใหม่จะใช้เวลาประมาณหนึ่งเดือนในการทำความเข้าใจเป้าหมายและฟังก์ชันการทำงานของระบบผ่านเอกสารโครงการและ RFP เพื่อปรับตัวเข้ากับงาน
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 18, 2024

[เรื่องราวของนักพัฒนา SI] 11. ควบคุมโครงการ SI ให้ได้ เรื่องราวของเอกสารเสนอโครงการแบ่งปันประสบการณ์การเขียนเอกสารเสนอโครงการเพื่อให้ได้งานโครงการ SI และอธิบายว่าแม้แต่นักพัฒนาที่เพิ่งเริ่มงานก็สามารถเขียนได้อย่างง่ายดาย
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 19, 2024