เมื่อไม่มี Code Review ระบบเสี่ยงแค่ไหน?

ข้อบกพร่องที่เงียบที่สุดคือข้อบกพร่องที่หลุดออกไปเมื่อไม่มีสายตาคู่ที่สองคอยมอง และมันมักจะปรากฏตัวในวันที่คุณไม่ได้เตรียมใจ
ระบบคำนวณราคาของธุรกิจหนึ่งทำงานได้ดีมาเป็นปี จนกระทั่งมีคนสังเกตว่าลูกค้าบางกลุ่มถูกคิดส่วนลดซ้ำสองครั้ง ข้อผิดพลาดเล็กๆ ในเงื่อนไขบรรทัดเดียว ที่ไม่มีใครเคยตรวจทาน ทำงานเงียบๆ มานานหลายเดือน กว่าจะรวมยอดความเสียหายได้ก็เป็นเงินหลายแสนบาทที่ทวงคืนไม่ได้ เพราะลูกค้าจ่ายไปตามที่ระบบบอกแล้ว
ไม่มีใครจงใจทำผิด ไม่มีโค้ดที่ดูแปลกประหลาด ทุกอย่างดูสมเหตุสมผลในมุมของคนที่เขียนมัน นั่นคือธรรมชาติของข้อบกพร่องประเภทนี้ มันไม่ได้ดังจนล่ม แต่มันถูกต้องพอที่จะทำงานต่อไปได้ทั้งที่ผลลัพธ์ผิด
ทำไมการข้าม Code Review จึงน่าดึงดูด
Code Review ดูเหมือนเป็นการชะลองาน นักพัฒนาเขียนเสร็จแล้ว ระบบก็ทำงานได้ ทำไมต้องให้อีกคนมานั่งอ่านและถามคำถามที่ทำให้ช้าลง ในวันที่มีเส้นตายจ่อคอ การข้ามขั้นตอนนี้รู้สึกเหมือนการตัดสินใจที่กล้าหาญและมีประสิทธิภาพ
และในระยะสั้น มันก็ได้ผลจริง คุณส่งงานได้เร็วขึ้น ทีมรู้สึกว่าทำงานได้มากขึ้น ความเสียหายยังไม่ปรากฏ ความเงียบนี้เองที่หลอกให้เราคิดว่าการข้าม Review ไม่มีต้นทุน ทั้งที่จริงต้นทุนแค่ถูกเลื่อนออกไปและสะสมดอกเบี้ย
Review ไม่ใช่การจับผิด แต่คือการกระจายความรู้
คุณค่าที่ลึกที่สุดของ Code Review มักไม่ใช่การจับบั๊ก แต่เป็นการที่ความรู้เรื่องระบบไม่ได้ค้างอยู่ในหัวคนเพียงคนเดียว เมื่อมีคนที่สองอ่านและเข้าใจ ระบบก็มีคนดูแลได้มากกว่าหนึ่งคน วันที่นักพัฒนาคนเดิมลาออก คุณจะไม่ตื่นมาพบว่าไม่มีใครในองค์กรเข้าใจส่วนที่สำคัญที่สุดของธุรกิจคุณเลย
การมีสายตาคู่ที่สองยังเปลี่ยนพฤติกรรมตั้งแต่ก่อนเขียนด้วย เมื่อรู้ว่าจะมีคนอ่าน นักพัฒนาจะเขียนให้ชัดเจนขึ้นโดยธรรมชาติ คิดรอบคอบขึ้น และกล้าตัดทางลัดที่อันตรายน้อยลง ผลที่ได้จึงไม่ใช่แค่การจับสิ่งที่ผิด แต่คือการป้องกันไม่ให้สิ่งที่ผิดเกิดขึ้นตั้งแต่แรก
คำถามที่ควรถามเกี่ยวกับกระบวนการของคุณ
- มีส่วนไหนของระบบที่มีคนเข้าใจมันเพียงคนเดียวหรือไม่ และถ้าคนนั้นหายไปจะเกิดอะไรขึ้น
- เรารู้ได้อย่างไรว่าโค้ดที่ส่งออกไปทำในสิ่งที่เราตั้งใจจริง ไม่ใช่แค่สิ่งที่คนเขียนคิดว่าตั้งใจ
- เราวัดความเร็วของทีมจากการส่งงาน หรือจากงานที่ส่งแล้วไม่ต้องกลับมาแก้
- ความเสี่ยงของข้อผิดพลาดเงียบๆ ในส่วนที่เกี่ยวกับเงินหรือข้อมูลลูกค้า เรายอมรับได้แค่ไหน
Code Review ไม่ใช่ยาวิเศษ มันไม่ได้จับทุกข้อผิดพลาด และทำมากเกินไปจนทุกอย่างต้องผ่านการอนุมัติหลายชั้นก็ทำให้ทีมเป็นอัมพาตได้ ประเด็นไม่ได้อยู่ที่ทำหรือไม่ทำ แต่อยู่ที่การจับคู่ระดับการตรวจสอบให้เหมาะกับความเสี่ยง โค้ดที่จัดการเงินของลูกค้าควรได้รับการมองที่ต่างจากการปรับสีปุ่ม
บริการที่เกี่ยวข้อง
รับพัฒนาเว็บแอปพลิเคชัน
สร้างเว็บแอปที่รองรับการเติบโตและเชื่อมกับระบบอื่นได้
WhaleScope
ดูโครงสร้างตลาดของธุรกิจซอฟต์แวร์ สื่อ และไอที บน WhaleScope
รายชื่อบริษัท ผู้เล่นรายใหญ่ อัตราคงอยู่ และการกระจายรายจังหวัดของหมวดการจัดทำโปรแกรมคอมพิวเตอร์ — จากข้อมูลจดทะเบียน 2 ล้านนิติบุคคล
อ่านต่อ

Prototype ไม่ใช่ Production
สิ่งที่สาธิตได้สวยงามกับสิ่งที่รันธุรกิจจริงได้ คือคนละสิ่งที่ห่างกันมากกว่าที่เดโมจะบอกคุณ บทความนี้ชวนมองช่องว่างนั้นให้ชัด

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

ความเร็วในการพัฒนา ไม่ใช่ตัวชี้วัดความสำเร็จ
การส่งงานได้เร็วทำให้รู้สึกว่ากำลังก้าวหน้า แต่ความเร็วที่วัดง่ายอาจกลายเป็นตัวเลขที่หลอกตา บทความนี้ชวนแยกระหว่างการส่งงานเร็ว กับการส่งงานที่ถูกต้อง

AI ช่วยสร้างระบบ แต่สร้างคุณภาพซอฟต์แวร์ไม่ได้
การสร้างโค้ดได้เร็วไม่เหมือนกับการสร้างระบบที่ไว้ใจได้ วิศวกรรมยังต้องการคนอยู่
