กับดักของนักสร้าง
ในวันที่เรายังร้อนวิชา เรามักมองโจทย์ทางธุรกิจเป็น Puzzle ที่ต้องไขให้เท่ที่สุด Brent เล่าว่าเขาเคยสร้าง CRUDController ที่เป็น Masterpiece รองรับทุก operations, มีระบบ filter, pagination, validation อัตโนมัติ เพียงแค่ extend class นี้ ทุกอย่างก็เสร็จ
ฟังดูเหมือนฝันของ Programmer ใช่ไหม? แต่มันกลายเป็นฝันร้าย เมื่อ Business Requirement เปลี่ยน (ซึ่งมันเปลี่ยนเสมอ) ความ Abstract ที่สร้างไว้กลับกลายเป็นโซ่ตรวน การแก้เล็กๆ น้อยๆ กลายเป็นเรื่องใหญ่ จนสุดท้าย Code ชุดนั้นกลายเป็นสัตว์ประหลาดที่ไม่มีใครกล้าแตะ
"Code was a means to an end, rather than the goal itself." Code เป็นเพียงพาหนะ ไม่ใช่ปลายทาง
เรามักหลงลืมไปว่า บริษัทไม่ได้จ้างเรามาเขียน Clean Code ที่สวยเหมือนงานศิลปะ แต่จ้างเรามาแก้ปัญหา.การต้านทานความกระหายที่จะเขียนโค้ดที่ซับซ้อน จึงเป็นทักษะที่สำคัญกว่าการรู้ Syntax ใหม่ๆ
กฎ 95% : ยอมแลกความยืดหยุ่น เพื่อความชัดเจน
เรามักถูกสอนให้เขียนเผื่อ เขียนให้ Flexible เข้าไว้ แต่การพยายามรองรับ Edge case 5% ที่เหลือ มักทำให้ Code อีก 95% ที่ใช้งานจริงนั้นพัง และซับซ้อนเกินจำเป็น
การยอมรับว่า Code เราไม่ได้ทำได้ทุกอย่าง แต่ทำสิ่งที่ต้องทำได้ดีเยี่ยม คือความกล้าหาญ ในโลก Open Source หรือแม้แต่ในโปรเจกต์บริษัท การมีจุดยืนที่ชัดเจน ดีกว่าการเป็นเป็ดที่พยายามว่ายน้ำและบินได้ในเวลาเดียวกันแต่ไม่เก่งสักอย่าง
เลิกเป็นช่างไม้ที่คลั่งไคล้แต่ค้อน
สุดท้ายแล้ว Framework, Languages หรือ Tools ต่างๆ ที่เราเถียงกันแทบตายว่าค่ายไหนดีกว่า มันเป็นแค่เครื่องมือ
สิ่งที่เราควรโฟกัสไม่ใช่เครื่องมือ แต่คือคุณค่าที่เราส่งมอบ อย่าให้ Passion ในการเขียนโค้ด มาบังตาจนมองไม่เห็นเป้าหมายที่แท้จริง
ลองถามตัวเองวันนี้ครับ
Code ที่คุณกำลังเขียนอยู่นั้น กำลังแก้ปัญหาให้ผู้ใช้ หรือกำลังแก้เบื่อให้ตัวคุณเอง?
(ติดตาม Part 2: เมื่อความผิดพลาดเกิดขึ้น และวันที่มีคนร้องไห้ในออฟฟิศ เร็วๆ นี้)












