ในการพัฒนา software นั้น นักพัฒนาต้องการวิธีที่
เร็วที่สุดเท่าที่จะทำได้
สั้นที่สุดเท่าที่จะทำได้
ใช้ค่าใช้ง่ายน้อยที่สุดเท่าที่จะทำได้
แต่สิ่งที่ขาดไปไม่ได้เลยคือ คุณภาพที่ดี (ซึ่งมักถูกมองข้ามหรือตัดทิ้งไป)
ยิ่งกับ source code ยิ่งสำคัญมาก ๆ
คำถามที่น่าสนใจคือ
เราให้ความสำคัญต่อคำว่าคุณภาพของ code ที่สร้างขึ้นมาหรือไม่ ?
หรือว่าแค่ให้มันทำงานได้ดีก็พอแล้ว ?
เราเห็นถึงความสำคัญของการดูแลรักษาในระยะยาวหรือไม่ ?
พบว่าระบบกว่า 80% ในปัจจุบัน
มีปัญหาในเรื่องการดูแลรักษา ทั้งการเพิ่ม แก้ไข และลบ ซึ่งใช้จำนวนคน เวลา และค่าใช้จ่ายที่สูงมาก ๆ !! ดังนั้นเรามาให้ความสำคัญต่อคุณภาพของ source code กันมากขึ้นดีไหม ? เพื่อให้เกิดประโยชน์ต่อคนสร้าง ต่อระบบ และ business ต่อไปคำถาม แล้ว source code ที่มีคุณภาพมันคืออะไร เป็นแบบไหนกัน ?คำตอบในมุมมองของผมประกอบไปด้วย
1. Source code ที่ดีนั้น ผู้อื่นต้องสามารถอ่านได้และเข้าใจได้ง่าย
บ่อยครั้งที่ code เหล่านี้ต้องถูกดูแลรักษาจากคนอื่น ๆ ที่ไม่ใช่คนเขียน ลองคิดดูถ้าเป็นเราไปรับ source code เหล่านั้นมาดูแลต่อ เราจะชื่นชม หรือ ด่า ? ดังนั้นแค่เพียงทำงานได้อย่างถูกต้องคงยังไม่พอ Make it work จากนั้นต้อง Make it right2. Source code ที่ดีนั้น ต้องง่ายต่อการขยับขยาย
บ่อยครั้งที่ระบบงานที่เราพัฒนาเสร็จไปแล้ว ต้องทำการเพิ่มและแก้ไขความสามารถต่าง ๆ ดังนั้นลองดู source code ที่เขียนขึ้นมาสิว่า มันง่ายต่อการเพิ่มความสามารถใหม่ ๆ เข้าไปไหม รวมทั้งง่ายต่อการรองรับผู้ใช้งานที่สูงขึ้นไหม ดังนั้นแค่เพียงทำงานได้อย่างถูกต้องคงยังไม่พอ Make it work จากนั้นต้อง Make it right และ Make it fast3. Source code ที่มีการจัดการเรื่อง Technical Debt
บ่อยครั้งเมื่อเราต้องการเพิ่มความสามารถใหม่ ๆ เข้าไปในระบบ พบว่า การเพิ่มของใหม่ ๆ เข้าไปมันไม่ง่ายเลย แต่เราก็พยายามทำให้มันได้ และ เสร็จ ๆ ไปตาม deadline ที่กำหนด ถามว่า source code ดีขึ้นไหม ? ถามว่าปัญหาที่พบเจอถูกแก้ไขไหม ? ถามว่า ถ้าเพิ่มความสามารถใหม่ ๆ แบบนี้ก็เจอเจอปัญหาเดิม ๆ ไหม ? ตอบได้เลยว่า ไม่ !!ถ้าเป็นเช่นนี้หมายความว่า เราได้สร้างสิ่งเล็ก ๆ ที่เรียกว่า Technical Debt หรือ หนี้ทางเทคนิค ขึ้นมาอย่างต่อเนื่อง และมันจะพอกพูนขึ้นเรื่อย ๆ จนสุดท้ายมันก็กลับมาทำร้ายคุณ ทีม ระบบ และ business ต่อไปดังนั้นสิ่งที่ดีกว่าคือ เมื่อเจอปัญหาก็ให้หาทางแก้ไขมันซะ เพื่อทำให้มันดีขึ้นกว่าเดิมอยู่เสมอ อย่าเสียน้อยเสียยาก เสียมากเสียง่าย !!
สุดท้ายแล้ว source code ที่ดี
มันคือสิ่งที่ช่วยแก้ไขปัญหาทาง business มันคือสิ่งที่เข้าใจได้ง่าย ได้เร็ว มันคือสิ่งที่แก้ไขได้ง่าย มันคือสิ่งที่จะช่วยให้คุณ ให้ระบบ ให้ bussiness เดินไปข้างหน้าได้อย่างมั่นคง แต่ถ้าเรายังไม่สนใจและใส่ใจเกี่ยวกับคุณภาพของ source code ก็ต้องมาเสียทั้งคน เสียทั้งเวลาและค่าใช้จ่ายจำนวนมาก เพื่อมาดูแลรักษาของแย่ ๆ ให้สามารถทำงานได้ ซึ่งมันไม่สนุกหรอกนะครับ (แต่ส่วนใหญ่ก็กำลังเผชิญอยู่กับมัน)วันนี้คุณใส่ใจกับ source code กันบ้างไหม ?