Waterfall Process กระบวนการพัฒนาขยะ และใช้ทำลายแรงบัลดาลใจของนักพัฒนาซอฟแวร์

Waterfall ปัจจัยหนึ่งที่ทำให้คนทำงานไม่พัฒนา เบื่อหน่าย ทำงานไม่รู้เป้าหมายที่แท้จริงของการพัฒนาซอฟแวร์ ก็คือ
กลุ่มคนทำงานที่มีความเชี่ยวชาญ ในแต่ละขั้นตอน จะตั้งใจทำงานของตนเองให้เสร็จตามแผน เพื่อจะส่งมอบชิ้นงานที่ไม่สมบูรณ์ไปยังขั้นตอนถัดไป เริ่มจาก
Business Analysis สนใจเก็บความต้องการเขียนเอกสารความต้องการ มากกว่า ซอฟแวร์ที่ใช้งานได้จริง* แล้วส่งให้ Project Manager วางแผน
Project Manager ก็สนใจแต่งานวางแผนงาน คิดต้นทุน กำหนดคนทำงาน เพื่อจะเก็บเงินลูกค้า มากกว่า ซอฟแวร์ที่ใช้งานได้จริง แล้วส่งให้ System Analysis & Design เขียน Detail Design spec
System Analysis & Design ก็สนใจแต่เขียนเอกสารการออกแบบที่สมบูรณ์เพื่อให้เสร็จตามแผนที่วางไว้ มากกว่า ซอฟแวร์ที่ใช้งานได้จริง และการออกแบบที่ดี เขียน Detail Design spec แล้วส่ง ให้ Programmer Coding
Programmer ก็สนใจที่แต่จะ code ตามเอกสาร Design spec เพื่อทำให้เสร็จตามแผนที่วางไว้ มากกว่า ซอฟแวร์ที่ใช้งานได้จริง และการเขียน code ที่ดี แล้วส่งซอฟแวร์ที่ไม่สมบูรณ์ให้ Tester ทดสอบ
Tester ก็เอาแต่ทดสอบ ตาม Test Case ที่ออกแบบไว้ เพื่อทำให้เสร็จตามแผนที่วางไว้ มากกว่า ซอฟแวร์ที่ใช้งานได้จริง และคุณค่าที่แท้จริงของซอฟแวร์ที่จะส่งมอบให้แก่ลูกค้า
จะเห็นว่า กลุ่มบุคคลผู้เชี่ยวชาญพัฒนาซอฟแวร์เหล่านั้น ขาดแรงบรรดาลใจที่สำคัญที่สุดนั่นคือ ซอฟแวร์ที่ใช้งานได้จริง อันเป็นคุณค่าที่แท้จริงของ ลูกค้า ไปหมดเลยตั้งแต่ต้นน้ำ ยันปลายน้ำ
Waterfall จึงไม่สามารถเป็นกระบวนการที่จะพัฒนาตัวบุคคลผู้เชี่ยวชาญเหล่านั้นได้เลย รวมถึงมันจะผลิตแต่ซอฟแวร์ที่ไร้คุณค่าแก่ลูกค้าตลอดมา
ดังนั้น มันจึงเป็น กระบวนการที่ทำลายแรงบรรดาลใจ(passion)ของผู้เชี่ยวชาญ และมันยังพัฒนาขยะได้ดีอย่างสม่ำเสมออีกด้วย…

ขอบคุณครับ

#:P

  • * ซอฟแวร์ที่ใช้งานได้จริง คือ ซอฟแวร์ที่เราส่งมอบให้แก่ลูกค้า แล้วยอมรับได้ตามตกลงกัน และสามารถใช้ซอฟแวร์นั้นได้ประโยชน์ อันเกิดคุณค่ากับลูกค้าได้อย่างสูงที่สุดด้วย
  • How Do We Know When We Are Done?
  • What is Definition of Done (DoD)?
Advertisements

#waterfall