Why agile seems to be faster?

ได้แรงบันดาลใจจากข้อถกเถียง ในที่นี้ https://www.facebook.com/kulawat/posts/10154502240911474

เอาจริงๆ ไม่เคยคิดว่า Waterfall ช้ากว่า Agile เลย

แต่ถ้าจะถามว่าทำไมมันทำให้คนรู้สึกว่าเร็วกว่า คือปัญหาเดิมๆ ของ Waterfall มันคือการกำหนดเป้าชัดเจน (ผ่าน Documentation) แล้ววัดผลจากการสัมฤทธิ์เป้านั้นให้ได้

ดังนั้นถ้าเป้าที่กำหนดตอนนั้น Spec ที่กำหนดตอนนั้นมันถูกต้องมันใช้ได้จริง ก็ไม่มีปัญหาอะไรเลย อารมณ์ก็เหมือนกับบอกว่าวันนี้จะไปหาเพื่อนที่บางนา แล้วก็หาถนนที่สามารถตรงยาวไปถึงบางนาได้ แล้วก็เหยียบ 200 Km/Hr วิ่งไปที่ตรงนั้น

แต่ปัญหาคือในการทำงานจริงมักจะพบว่าการสร้างซอฟต์แวร์มันกำหนดเป้าตอนแรกได้ยาก (ไม่ใช่ว่าทำไม่ได้นะ แต่ยากมากจนราวกับพึ่งดวง) คือเหมือนบอกว่าจะไปหาเพื่อนที่บางนา แต่ตอนไปถึงบางนาปรากฎว่าเพื่อนไม่อยู่บ้านเฉยเลย

ถามว่าในกรณีนี้เราจะวัดความสำเร็จจากการที่ไปถึงบ้านเพื่อนแล้ว สำเร็จแล้ว ไปด้วยความเร็วที่เร็วที่สุดประสิทธิภาพสูงสุด ฉลองกันเถอะ เย้ ทั้งๆ ที่สุดท้ายไม่ได้ไปเจอเพื่อนเหรอ??

แล้วสุดท้ายก็ต้องมา Defend กับผู้บริหาร / ลูกค้า

“ทำไมคุณไม่ไปหาเพื่อนคุณให้เจอ นี่มันเป็นมือโปรตรงไหน”

“อ้าว ก็คุณสั่งให้ผมไปบางนา ผมก็ไปไง นี่ไงคุณเซ็นมาแล้ว คุณส่งอีเมล์มาแล้ว ผมก็ไปด้วยความเร็วสูงสุดด้วยนะ งานผมไม่ดีตรงไหน คุณนะแหละเดาเอาเองว่าไปแล้วจะต้องเจอเพื่อน ผมไม่ผิดอะไร ผมทำดีด้วยซ้ำ”

“อ้าวคุณเป็น Professional คุณต้องรู้สิว่าแบบนี้มันไม่เวิร์ค ก็เห็นๆ อยู่ว่ามันไม่เวิร์คยังจะไปทำไมบางนาน่ะ”

“ผมก็ทำตามที่คุณบอกนั่นแหละ ผมจะไปรู้ได้ยังไง ผมทำหลุดจากที่คุณอีเมล์มา ก็โดนด่าสิ…. ผมก็ต้องทำตามเอกสารสิผมจะได้ปลอดภัย”

มันก็เจ็บปวดกันทั้งเราทั้งฝั่งบริหารน่ะแบบนี้ แล้วความเจ็บปวดเหล่านี้ก็ทำให้ Culture ขององค์กร Degrade ลงเรื่อยๆ เรื่อยๆ และเรื่อยๆ

นั่นแหละคือปัญหาของ Waterfall เลยนะ

การทำงานแบบ Agile ตรงข้ามก็เหมือนกับไปไม่ต้องเร็วมาก ขับรถไปไม่ถึง 200 KM/Hr แต่ระหว่างทางก็มีพักหยุดโทรหาเพื่อนตลอด เห้ย นี่ยังอยู่บ้านหรือเปล่ากำลังจะไปหานะ

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

แต่มันอาจจะไม่ได้เร็วกว่านะถ้าสมมติเรา Make sure ได้ว่าเพื่อนจะไม่ไปไหน มันจะอยู่บ้านแน่นอนที่บางนาแน่ๆ ยังไงการบึ่งตรงไปโดยไม่สนใจโลก 200 KM/HR มันก็เร็วกว่า

แต่สิ่งที่คนสาย Agile เชื่ออย่างนึงคือ ไม่มีใครรู้ว่าเพื่อนคนนี้จะอยู่บ้านมั้ย จะอยู่บางนาหรือสุขุมวิทกันแน่ ในระหว่างเริ่มโปรเจ๊กต์ซอฟต์แวร์

ถ้าเชื่อว่าคนเก่งพอจะรู้และกำหนดเป้า คาดเดาอนาคตได้ บางที ไปด้วย Waterfall ก็คงจะเร็วกว่าจริงๆ นั่นแหละ

แต่คนที่เชื่อใน Agile คือเขาเห็นมาเยอะแล้วจนเขาไม่เชื่อแล้วว่าจะมี PM, SA, BA คนไหนที่เทพขนาดที่บอกได้ 100% เป๊ะๆ ว่าอนาคตควรจะเป็นยังไง (แต่ใครจะยังเชื่ออยู่ว่าถ้าเก่งจริงต้องบอกได้สิ อันนี้ก็พูดได้แค่ว่ามันเป็นความเชื่อส่วนบุคคลแล้วล่ะ)

ถามว่าปกติ Waterfall แก้ยังไง ก็ง่ายๆ ให้ลูกค้าเซ็นมา แต่ถามกลับว่าถ้าลูกค้าเซ็นว่า “ต้องไปบางนา” แล้วเราไปได้เร็วจริง แต่ไม่เจอเพื่อน ลูกค้าก็ต้องโวยว่าคุณไม่เห็นสำเร็จเลย คุณไม่เจอเพื่อน เราก็ต้องเอาเอกสารมายืนยันว่านี่คุณเซ็นเองว่าให้ผมไปบางนานะ อย่ามาหัวหมอสิ

ถึงจุดนี้เราอาจจะเถียงชนะลูกค้าก็จริง แต่มันไม่ได้ใจกันเท่าไหร่เลย

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

ตรงข้ามกับ Waterfall ที่บอกให้เซ็นว่าคุณต้องไปบางนา แล้วบึ่งรถไปเลย มีปัญหาก็ไปถึงบางนาให้ได้ก่อน ทำตามเอกสารให้ได้ก่อน ค่อยย้อนกลับมาหาเพื่อนทีหลัง มันก็เสียเวลากว่า

สุดท้ายมันก็อยู่ที่ความเชื่อแหละ ว่าตกลงเราเชื่อมั้ยว่าจะมีคนที่บอกได้ว่า Software ที่จะสร้างเสร็จใน 1 ปีข้างหน้า ควรจะมีสเปคยังไง แล้วมั่นใจได้จริงๆ จากใจเลยนะว่ามันจะไม่เปลี่ยน (ที่ไม่ใช่แค่ลายเซ็น)

ถ้าเชื่อว่ามีคนที่เก่งขนาดนั้นอยู่ในโลก ผมว่า Waterfall ก็เหมาะนะ

แต่ถ้าไม่เชื่อว่ามีหรอก นั่นแหละ ผมว่าลอง Agile ดูไม่เสียหายนะ

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.