คุณภาพของ Developer ต้องวัดจากสิ่งที่มองไม่เห็น
.
ในซอยที่ผมอาศัยอยู่
มีร้านอาหาร 2 ร้านที่ทำอาหารอร่อยมาก
ราคาก็ไม่แพงและก็อยู่ไม่ห่างจากบ้านเท่าไหร่
แต่เป็น 2 ร้านที่ผมจะไม่กินเด็ดขาด
ด้วยเหตุผลเดียวกันคือ
"ครัวไม่เป็นระเบียบและพื้นครัวสกปรก"
.
.
จิตวิญญาณของคนเป็นพ่อครัวเก่งๆที่ผมรู้จักคือ
จะไม่สามารถทนมองเห็นความสกปรกได้
ไม่ว่าลูกค้าของเขาจะเห็นหรือไม่เห็นครัวก็ตาม
ครัวที่เขาทำงานจะต้องสะอาดเป็นระเบียบอยู่เสมอ
.
.
สิ่งที่น่าสังเกตุก็คือ
เค้าไม่ได้พยายามทำเพื่อเอาใจลูกค้า
เพราะลูกค้าก็มักจะมองไม่เห็นครัวอยู่แล้ว
แต่เค้าทำเพราะเค้าทนไม่ได้กับความสกปรกและไม่เป็นระเบียบ
ซึ่งมันบังเอิญไปตรงกับ benefit ของลูกค้า
ตรงที่ลูกค้ามักจะไม่ท้องเสียกับร้านที่พ่อครัวเป็นแบบนี้
.
.
ที่ผมเล่าเรื่องนี้ก็เพราะว่า
อาชีพร้านอาหารมีลักษณะหนึ่งที่เหมือนกับอาชีพเขียนโปรแกรมคือ
ลูกค้าเห็นเฉพาะผลงานสุดท้าย
แต่มักจะไม่เห็นบรรทัดของโค้ดที่ประกอบกันขึ้นมาเป็นโปรแกรม
.
.
ในโลกนี้จึงมี Developer อยู่ 2 ประเภท
คือ (1) คนที่ทนกับโค้ดที่ไม่เป็นระเบียบได้
และ (2) คนที่ทนกับโค้ดที่ไม่เป็นระเบียบไม่ได้
และหลายๆครั้งผลงานที่ออกมาก็จะมีหน้าตาเหมือนๆกัน
เพราะลูกค้ามักจะมองไม่เห็นโค้ดเหล่านั้น
และเกือบ 100% ของลูกค้าก็ไม่ได้สนใจด้วยว่าโค้ดจะเป็นระเบียบหรือไม่
.
.
แต่จริงๆแล้ว ในระยะยาว
โค้ดที่เป็นระเบียบจะมี toxic น้อยกว่าโค้ดที่ไม่เป็นระเบียบเสมอ
ถ้านับ bug ที่เกิดจากโปรแกรมเมอร์ทั้ง 2 แบบ
ยังไงโค้ดแบบที่ (2) ก็จะทำให้ลูกค้าปวดหัวน้อยกว่า
เหมือนกับครัวที่สะอาดก็จะทำให้ลูกค้าท้องเสียได้น้อยกว่าเช่นกัน
.
.
ในโจทย์รับสมัครทีมงานของผม
จึงมักจะแกล้งให้โจทย์เริ่มต้นด้วยโค้ดที่ไม่เป็นระเบียบ
และมีคำพิมพ์ผิดอยู่ในชื่อตัวแปรหลายๆที่
และโดยที่ไม่ได้บอกใบ้อะไร
ถ้า Developer ส่งคำตอบพร้อมโค้ดที่แก้คำผิดเหล่านั้นกลับมา
รวมทั้งจัดย่อหน้าต่างๆให้เป็นระเบียบยิ่งขึ้นกว่าเดิม
ก็เป็นตัวชี้วัดที่ดีอย่างยิ่งที่จะบอกว่า
เค้าจะเขียนโปรแกรมที่มี bug น้อยกว่าคนอื่น
#มิตรสหายท่านหนึ่ง