Software development process
การพัฒนา software นั้นมีปัญหากันมากเรื่องของงานจะเสร็จหรือไม่เสร็จ ซึ่งมันก็เกิดมาจากหลายปัญหามากมาย ทั้งเล็กและใหญ่ไม่ใช่แค่ว่าการเขียนโปรแกรมแบบธรรมดา มันรวมไปหมดทุกอย่างที่เป็นโปรแกรมนั่นแหละ
การพัฒนา software จริงๆแล้ว แบ่งออกเป็นช่วงๆ ของงานที่ที่ได้ 5 ส่วนคือ
- Requirement
- Design
- Implement
- Verification
- Maintenance
ซึ่งจะเป็นการทำงานดังกราฟแบบนี้
ที่เห็นไปคือ Waterfall Model เป็นรูปแบบการทำงานแบบหนึ่งที่ทำเป็นขั้นตอนไปเรื่อยๆ จาก Requirement ไปจนถึง Maintenance ซึ่งจะเห็นได้ว่ามัน perfect มากๆ คือ ทำทำเดียวเสร็จ
ในคความเป็นจริงแล้วมันไม่เสร็จแบบนั้น ด้วยปัญหามากมาย ยกตัวอย่างเช่น
- ทีมผู้พัฒนา ส่งผู้เก็บ Requirement ไปไม่เพียงพอ ทำให้ได้รับ Requirement ไม่ชัดเจน ทำให้ Design ผิดแบบ
- ผู้เก็บ Requirement ไปเก็บ Requirement อย่างดี แต่ผู้ที่ให้ Requirement นั้นผิดพลาดเองบอก Requirement ไม่ถูกต้อง หรือ ถ้าเป็น software ใหม่ ก็ไม่มีจุดประสงค์ที่แน่นอน ทำให้เกิดความกำกวมตั้งแต่ Requirement
- การ Design ที่ผิดพลาดทำให้ Implement ผิดพลาด
- อื่นๆอีกมากมายในการทำงานแต่ละขั้นตอน
การที่เกิดข้อผิดพลาดต่างๆพวกนี้ เพราะเกิดจากประสบการณ์การทำงานที่ไม่เพียงพอ หรือ มาจากความประมาท ทำให้ Process ต่อไปนั้นออกมาผิดพลาด
ปกติแล้วทางทีมผู้ Implement นั้นจะเกิดปัญหาก็ปัญหาภายใน ทำให้แก้ไขอะไรภายในตัวเองได้ (เช่นบริษัทรับทำ Software ) แต่การผิดพลาดขั้นต้นคือผู้ให้ Requirement กับ ผู้เก็บ Requirement เป็นปัญหาที่ใหญ่ที่สุด
ทำให้ Waterfall model นั้นไม่ใช่น้ำตกอีกต่อไป แต่กลับกลายเป็น น้ำตกและน้ำย้อนกลับได้ไปสู่ Process ก่อนหน้านี้จากว่าจะเสร็จ
จำไว้ว่า คิดให้ดีก่อน น้ำจะตก จะทำให้น้ำไม่ใหลย้อนกลับ อิอิ
