กับดัก Engineer EP.1: เลิกเขียน Code ให้เทพ... ถ้ายังขายไม่ได้
"Code ตรงนี้ยังไม่ Clean เลย เดี๋ยว Refactor ก่อนค่อย Deploy ละกัน"
นี่คือประโยคที่ผมเคยพูดกับตัวเองบ่อยมากในสมัยที่ยังเป็น Developer เต็มตัว ผมเคยภูมิใจกับการวาง Folder Structure สวยๆ ใน Next.js, การเขียน Type ใน TypeScript แบบเป๊ะๆ หรือการจูน Docker ให้เล็กที่สุดเท่าที่จะทำได้
สำหรับผมตอนนั้น "Good Code = Good Product"
แต่พอได้มาสวมหมวก Co-founder ที่ Profit More Growth และต้องปั้นโปรดักต์อย่าง Duechat และ JongQ ผมถึงได้รู้ความจริงที่เจ็บปวดว่า...
"ลูกค้าไม่สนหรอกว่าหลังบ้านคุณใช้ Design Pattern อะไร... เขาสนแค่ว่ามันแก้ปัญหาให้เขาได้ไหม"
กับดักความสมบูรณ์แบบ (The Perfectionist Trap)
ในฐานะคนที่หลงใหลใน High Performance (อย่างที่ผมบอกเสมอว่าผมเป็น Performance Freak) ผมมักจะติดนิสัย:
ผลลัพธ์คือ? Product เสร็จช้า และที่แย่กว่านั้นคือ เราสร้างสิ่งที่ไม่มีคนใช้ ด้วยสถาปัตยกรรมระดับโลก
สิ่งที่ผมต้อง Unlearn (เรียนรู้ที่จะลืม)
เมื่อต้องทำธุรกิจ ผมต้องเปลี่ยน Mindset ใหม่แบบหน้ามือเป็นหลังมือ:
**Old Rule:** "Code ต้อง Scalable, Maintainable, Testable"
**New Rule:** "Code ต้อง Ship-able, Sale-able, Change-able"
ผมไม่ได้บอกว่าให้เขียนโค้ดห่วยๆ (Shitty code) นะครับ แต่ผมกำลังบอกว่า "จงยอมเป็นหนี้ทางเทคนิค (Technical Debt) บ้าง ถ้ามันแลกมาด้วยความเร็วในการบุกตลาด"
ตัวอย่างจริงที่ผมเจอ
ตอนทำฟีเจอร์หนึ่งใน Duechat ผมอยากรื้อระบบ Database ใหม่เพื่อให้ Query ไวขึ้น 0.05ms แต่ทีม Marketing บอกว่า "ลูกค้าต้องการฟีเจอร์นี้พรุ่งนี้ ถ้าไม่มีเขาจะไปใช้เจ้าอื่น"
วินาทีนั้นผมต้องเลือก:
ในมุม Engineer ทาง B คือหายนะ... แต่ในมุม Business ทาง B คือฮีโร่ครับ
บทสรุปของ EP.1
ถ้าคุณเป็น Dev ที่กำลังจะทำโปรดักต์ของตัวเอง ผมอยากฝากไว้ว่า:
*อย่าหลงรัก Code ของตัวเอง จนลืมรักลูกค้า*
เก็บความรู้เรื่อง Next.js, Bun, Docker ขั้นเทพของคุณไว้ใช้ในวันที่ระบบมีคนใช้เป็นแสนคนครับ แต่วันแรก... Make it work, Make money, Then make it better.
---
*(ติดตามต่อใน EP.2: เมื่อผมต้องออกจากถ้ำ (IDE) ไปคุยกับมนุษย์ - เรื่องราวของการแบ่งเวลา Dev vs Marketing)*