ตลกร้าย Tiger Team จากหนังสือ Clean Code

ภาพจาก https://unsplash.com/photos/3BK_DyRVf90

โปรแกรมชื่อ killer ได้รับความนิยมมากในช่วงปี 1980s นักพัฒนาเก่งๆหลายคนถูกซื้อตัวเข้าไปช่วยกันทำงาน แต่ยิ่งทำ วงรอบการออกของใหม่ๆ (release cycle) ยิ่งนานขึ้น

เมื่อต้องขยับขยายทำ feature ใหม่กลับพบว่า

  • bug เดิมก็ไม่ได้ถูกแก้
  • ใส่ code ใหม่เข้าไปยิ่งทำให้ load นานขึ้น
  • ยิ่งทำระบบยิงล่มบ่อยขึ้น
สุดท้ายถึงขั้นที่ว่าทำอะไรต่อไม่ได้แล้ว และธุระกิจต้องปิดตัวลง

20 ปีต่อมา ลองกลับไปถามพนักงานรุ่นแรกๆว่าเกิดอะไรขึ้นในตอนนั้น

ได้รับคำตอบว่า

  • ต้องส่งงานให้ตรงเวลาที่กำหนด ถ้าไม่ตรงกำหนดหัวหน้าจะโกรธ
  • ขอเวลาปรับปรุง code ไม่ได้ ทีมก็ได้แต่รีบใส่ code ลงไปให้มันทำงานได้
  • เห็นสิ่งที่ต้องทำใน backlog อีกเพียบ ต้องรีบเคลียร์ให้เสร็จ
  • สุดท้าย code เน่าๆพวกนั้นก็ทำให้บริษัทต้องปิดตัวลง

การออกแบบครั้งใหญ่จึงอุบัติขึ้น

ต่อไปนี้คือตลกร้าย ไม่เกี่ยวกับ killer

  • ทีมไปบอกฝ่ายบริหารว่า “เราจะไม่ขอทนกับ code base เน่าๆพวกนี้แล้ว เราจะขอออกแบบมันใหม่!”
  • Tiger team ถูกจัดตั้งขึ้น พร้อมกับรวบรวมเหล่า “ทวยเทพ” ผู้มากหลายประสบการณ์เข้ามาในทีม ส่วนคนอื่นๆก็ให้ดูแลระบบเดิมไปก่อน
  • Tiger team เริ่มพัฒนาระบบใหม่ ซึ่งก็เอา feature ที่ระบบเดิมมีอยู่มาพัฒนานั่นเอง
  • ไม่เพียงต้องพัฒนาของเก่าให้ขึ้นมาอยู่ในระบบใหม่เท่านั้น Tiger team ยังต้องปรับปรุงระบบให้รองรับความต้องการใหม่ๆ(change)
  • ฝ่ายบริหารก็ไม่ยอมขึ้นระบบใหม่ที่ Tiger team พัฒนา จนกว่าระบบใหม่ที่ทำขึ้นจะทำทุกอย่างที่ระบบเดิมทำได้(หรือมากกว่า)
  • การแข่งขันระหว่างทีมเก่าและทีมใหม่อย่าง Tiger ได้กินเวลายาวนานนับ 10 ปี
  • แน่นอนช่วงเวลานานขนาดนี้คนใน Tiger team ชุดแรกๆย่อมต้องมีล้มหายตายจาก ลาออกบ้าง ย้ายงานบ้าง
  • และแล้ววันนึงสมาชิกที่เหลือใน Tiger team ก็ไปบอกฝ่ายบริหารว่า “เราจะไม่ขอทนกับ code base เน่าๆพวกนี้แล้ว เราจะขอออกแบบมันใหม่!”
เราได้เรียนรู้อะไรจากเรื่องนี้บ้าง? 
 คุณคิดว่าเรื่องนี้เป็นเรื่องจริงหรือไม่? ถ้าคิดว่าใช่………คุณคิด(ถูก/ผิด)

ปล. คำไทยบางคำแต่งขึ้นเพื่อเพิ่มอรรถรส
จากหนังสือ: Clean Code — Robert C. Martin

One clap, two clap, three clap, forty?

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