ผมจำได้ว่ามีคนเอารูปนี้มาให้ดูเมื่อนานมาแล้ว ไม่แน่ใจว่าเป็นคุณ @tikkychai หรือ @kluak110 นี่แหละ แต่ก็ชอบเพราะเข้าใจง่ายดี (แม้ว่าบางส่วนผมจะไม่ค่อยเห็นด้วยก็ตาม) สำหรับมือใหม่แล้วมันช่วยให้เห็นภาพขึ้นเป็นกอง
Waterfall Development
มีความเสี่ยงสูง มักจะมีค่าใช้จ่ายสูงและด้อยประสิทธิภาพกว่าวิธีการอื่น เพราะ
– ไม่สามารถใช้ซอฟแวร์ได้จนกว่าทุกอย่างจะจบ
– ทดสอบระบบตอนท้าย ทำให้ปัญหา(bug) ถูกทิ้งไว้นาน(ทำให้แก้ยาก)
– ไม่ได้รับการ approval จากลูกค้าจนตอนท้าย ทำให้ความต้องของลูกค้าอาจจะเปลี่ยนไปแล้วได้(ดูเรื่องเนลล์กับร้านกาแฟจาก link)
– วางแผนล่วงหน้าแล้ว(หลับหูหลับตา)ทำตามนั้น โดยไม่สามารถมั่นใจได้ว่าทำตามแผนนั้นแล้วจะสำเร็จหรือไม่
– ความสำเร็จขึ้นกับคนคุมโปรเจ็ค ที่มีอำนาจสั่งการว่าจะสามารถพาโปรเจ็คไปรอดหรือไม่
Iterative Waterfall Development
พูดง่ายๆ คือการแบ่ง phase ซึ่งดูเหมือนจะเสี่ยงน้อยกว่าแบบแรก แต่ความจริงแล้วเป็นแค่การกระจายความเสี่ยงระหว่าง phase ความเสี่ยงยังเท่าเดิม ซึ่งทำให้เกิดปัญหาคือ
– เกิด Bottle necking คือถ้าเฟสแรก late ขึ้น phase 2 ไม่ได้
– มักจะ Over-commitment เพราะการ estimate ทำได้ยาก ทำให้มักจะทำแยกเป็นเฟส แต่ความจริงแล้วแต่ละเฟสนั้นเกี่ยวเนื่องกัน(interwined) จนแยกไม่ได้
– หลุดจาก end goal ได้ง่าย เพราะทีมมักจะเผลอไป focus ที่การจบเฟส แต่ลืมไปว่าจบเฟสแล้วมันก็ยังใช้งานไม่ได้ ต้องจบทั้งโปรเจ็คจึงจะได้
Scrum Development
เป็นการลดความเสี่ยงอย่างมาก เทียบกับ waterfall ทีมจะส่งมอบซอฟแวร์ที่ใช้งานได้จริง ผ่านการทดสอบแล้ว ทีละน้อย ให้กับลูกค้า เหตุที่ความเสี่ยงต่ำเพราะ เราทำงานไปไม่มาก ถ้ามีอะไรผิดพลาดก็เสียหายไม่เยอะ(ยังแก้ทัน) แต่ก็อีกนั่นแหละ ความเสี่ยงยังเกิดขึ้นเพราะแบ่งเป็น iteration และส่งมอบตอนจบ iteration แล้ว
Lean Development
คล้ายกับ Scrum ในแง่ของการแบ่งการพัฒนาตาม feature แต่ก้าวไปอีกขึ้นหนึ่งด้วยการ PDCA(Plan Do Check Act) ในแต่ละ feature แยกจากกันทำให้แต่ละ feature ไม่กระทบซึ่งกันและกัน นอกจากนี้ยังโฟกัสที่การกำจัดความสูญเปล่า(waste) ทำให้รีดประสิทธิภาพการทำงานได้สูงสุด
Links
http://agile101.net/2009/09/08/the-difference-between-waterfall-iterative-waterfall-scrum-and-lean-in-pictures/
https://korn4d.wordpress.com/2010/07/20/use-cases-requirements-in-context-2nd-edition-daryl-kulak-eamonn-guiney/