ผมเลิกเขียนโค้ดแล้ว และแอปของผมก็ปล่อยใช้งานได้ภายใน 3 วัน

เมื่อสามเดือนก่อน ผมสร้างแดชบอร์ด SaaS แบบ full-stack ขึ้นมาตัวหนึ่ง มันมีทั้งระบบ auth, ฐานข้อมูล, REST API และ UI

ผมเขียนโค้ดไปเพียงประมาณ 200 บรรทัด ส่วนที่เหลือ AI เป็นคนทำ ทั้งเขียนโค้ด, ตรวจทาน และแก้ไขมัน

ตอนนี้แอปใช้งานได้จริงแล้ว และมีผู้ใช้จ่ายเงินซื้อบริการ ผมไม่ต้องนั่งอดนอนตอนตี 2 เพื่อแก้บั๊กที่ตัวเองไม่เข้าใจอีกต่อไป

นี่ไม่ใช่การโอ้อวด แต่นี่คือคำเตือน

บทบาทของนักพัฒนา (developer) กำลังเปลี่ยนไปอย่างรวดเร็ว นักพัฒนาที่จะชนะไม่ใช่คนที่ต่อต้านการเปลี่ยนแปลงนี้ แต่คือคนที่นำการเปลี่ยนแปลงนี้

เลิกมองว่า AI เป็นแค่เครื่องมือช่วยเติมคำอัตโนมัติ (autocomplete) ได้แล้ว นั่นมันวิธีคิดแบบเก่า

การพัฒนาแบบ AI-native คือโมเดลทางความคิดแบบใหม่ คุณไม่ได้ใช้ AI เพื่อเขียนโค้ดให้เร็วขึ้น แต่คุณใช้ AI เพื่อจัดการเรื่องการลงมือทำ (implementation) ในขณะที่คุณทำหน้าที่วางโครงสร้าง (architecture) และการตัดสินใจ (judgment)

การเปลี่ยนแปลงมีลักษณะดังนี้:

  • โมเดลแบบเก่า: คุณเขียนโค้ด AI ช่วยให้คุณพิมพ์ได้เร็วขึ้น
  • โมเดลแบบใหม่: คุณกำหนด "อะไร" (what) และ "ทำไม" (why) ส่วน AI จัดการเรื่อง "อย่างไร" (how) แล้วคุณเป็นคนตรวจสอบและควบคุมทิศทาง

ผมใช้เวิร์กโฟลว์นี้เป๊ะๆ ในการสร้างแอปของผม:

  1. วางโครงสร้างโปรเจกต์ (Scaffold) โดยใช้เครื่องมือมาตรฐานอย่าง Next.js และ Prisma
  2. อธิบายโมเดลข้อมูลด้วยภาษาอังกฤษแบบธรรมดา
  3. ให้ AI สร้าง schema ขึ้นมา
  4. ใช้ prompt ที่ละเอียดเพื่อสร้าง server actions และ logic

ผมไม่ได้เขียนฟังก์ชันเอง ผมแค่ตรวจทาน ทดสอบ และปรับแต่งข้อความแสดงข้อผิดพลาด (error messages)

นั่นแหละคืองานรูปแบบใหม่

ถ้า AI เป็นคนเขียนโค้ด คุณค่าของคุณจะมาจาก meta-skills AI เก่งเรื่องการจดจำรูปแบบ (patterns) แต่แย่เรื่องการตัดสินใจ

AI ไม่สามารถตัดสินใจได้ว่า:

  • คุณจำเป็นต้องใช้ server action หรือ API route
  • state ของคุณควรอยู่ที่ไหน
  • คุณควรใช้ monorepo หรือไม่

การตัดสินใจเหล่านี้ต้องใช้บริบท (context) ซึ่ง AI ขาดสิ่งนี้ แต่คุณมีมัน

ความแตกต่างระหว่าง junior developer และ senior developer ในตอนนี้คือความแม่นยำในการเขียน prompt

  • Prompt ที่ไม่ดี: "Write a rate limiter."
  • Prompt ที่ดี: "Write a Redis-backed rate limiter for a Next.js API route. Limit to 10 requests per minute per IP. Return a 429 error when exceeded. Skip admins. Log events to Prisma."

Prompt ที่สองจะได้โค้ดที่พร้อมใช้งานจริง (production-ready) ในทันที

คุณต้องระวังเรื่อง "ความล้มเหลวที่เงียบเชียบ" (silent failures) ด้วย โค้ดจาก AI มักจะดูเหมือนถูกต้องแต่แฝงไปด้วยบั๊กที่ตรวจจับยาก ให้ปฏิบัติกับผลลัพธ์จาก AI เหมือนกับเป็น pull request จาก junior developer คือต้องตรวจสอบด้วยความระมัดระวังและไม่ประมาท

อย่าพยายามปรับปรุงเพื่อเขียนโค้ดให้น้อยลง แต่จงปรับปรุงทักษะที่อยู่รอบๆ ตัวโค้ดแทน

นักพัฒนา A เขียนทุกอย่างด้วยมือและทำงานได้ช้า นักพัฒนา B ใช้ AI จัดการรายละเอียด และใช้เวลาไปกับการออกแบบระบบ (system design)

Developer B คือมาตรฐานใหม่

ลองทำสิ่งนี้ในสัปดาห์นี้:

  • เขียน spec ของฟีเจอร์ให้ครบถ้วนก่อนเริ่มเขียนโค้ด
  • ใช้ spec นั้นเป็น prompt ของคุณ
  • ตรวจสอบผลลัพธ์เหมือนกับที่วิศวกรอาวุโสตรวจงานวิศวกรระดับจูเนียร์

เป้าหมายไม่ใช่การเลิกเป็นนักพัฒนา แต่คือการเป็นนักพัฒนาที่เก่งขึ้น

แหล่งที่มา: https://dev.to/emma_schmidt_/i-stopped-writing-code-my-app-still-shipped-in-3-days-heres-what-that-tells-us-about-being-a-2ghp

ชุมชนแห่งการเรียนรู้ (เลือกเข้าร่วมได้): https://t.me/GyaanSetuAi