สิ่งที่ผมได้เรียนรู้จากการเป็นกรรมการตัดสิน Hackathon

เมื่อเร็วๆ นี้ ผมได้รีวิวโปรเจกต์ Hackathon ด้าน AI และนักพัฒนามามากมาย

การตัดสินนั้นต่างจากการสร้าง เมื่อคุณสร้าง คุณจะโฟกัสที่โค้ดของตัวเอง แต่เมื่อคุณตัดสิน คุณจะเห็นรูปแบบที่เกิดขึ้นซ้ำๆ จากผู้สร้างหลายคน

ผมเห็นโปรเจกต์ที่มีอินเทอร์เฟซสวยงามแต่ขาดความลึกซึ้งทางเทคนิค ผมเห็นงานวิศวกรรมที่แข็งแกร่งแต่มีเอกสารประกอบที่แย่ และผมเห็นไอเดียที่เรียบง่ายแต่สามารถแก้ปัญหาได้จริง

โปรเจกต์ที่ดีที่สุดมักจะมีรูปแบบที่คล้ายกัน โดยพวกเขาแสดงให้เห็นถึง:

  • ปัญหาที่พวกเขาแก้ไข
  • สิ่งที่มีอยู่ก่อนหน้านี้
  • วิธีที่พวกเขาทำให้มันดีขึ้น
  • การเลือกใช้เทคโนโลยีทางเทคนิค
  • สิ่งที่ผู้ใช้สามารถทำได้ในตอนนี้

ความแตกต่างระหว่างสิ่งที่ "น่าสนใจ" กับสิ่งที่ "แข็งแกร่ง" คือความชัดเจนในการลงมือทำ (execution clarity)

ในการแข่งขันที่เน้นการส่งมอบผลงานที่เสร็จสมบูรณ์ (finish-style) โปรเจกต์ที่ดีที่สุดจะแสดงเรื่องราวแบบ "ก่อนและหลัง" ที่ชัดเจน โปรเจกต์ที่แข็งแกร่งจะประกอบไปด้วย:

  • การแก้ไขเวิร์กโฟลว์ที่เคยมีปัญหา
  • แอปพลิเคชันที่ถูก deploy สู่สาธารณะแล้ว
  • เอกสารประกอบที่ดีขึ้น
  • มีการเพิ่มการทดสอบ (tests)
  • ลดช่องโหว่ด้านความปลอดภัย
  • ปรับปรุงขั้นตอนการเริ่มต้นใช้งาน (onboarding) ให้ดีขึ้น
  • มีความพร้อมในการนำไปใช้งานจริง (production readiness) ที่สูงกว่า

การส่งมอบงาน (Shipping) เป็นเรื่องสำคัญ

งานวิศวกรรมที่ดีต้องการเอกสารประกอบที่ดีเพื่อสร้างความเชื่อมั่น README ที่ชัดเจน แผนผังโครงสร้าง (architecture diagrams) และวิดีโอสาธิต (demo videos) จะช่วยให้ผู้คนเข้าใจงานของคุณได้ง่ายขึ้น

นักพัฒนาจำนวนมากใช้เครื่องมือ AI อย่าง GitHub Copilot ทีมที่ดีที่สุดจะซื่อสัตย์ในเรื่องนี้ พวกเขาจะอธิบายว่า AI ช่วยในเรื่องการเขียนโค้ดพื้นฐาน (boilerplate) การแก้บั๊ก (debugging) หรือการทดสอบ (testing) อย่างไร ซึ่งสิ่งนี้แสดงถึงความเป็นมืออาชีพ

โปรเจกต์ระดับท็อปจะให้ความสำคัญกับการตัดสินใจทางวิศวกรรม (engineering judgment):

  • ความปลอดภัย (Security)
  • การจัดการข้อผิดพลาด (Error handling)
  • ความสามารถในการสังเกตการณ์ระบบ (Observability)
  • ความเป็นส่วนตัว (Privacy)
  • ความน่าเชื่อถือ (Reliability)
  • ความสามารถในการบำรุงรักษา (Maintainability)

รายละเอียดเหล่านี้คือสิ่งที่เปลี่ยนจากแค่ "ตัวสาธิต" (demo) ให้กลายเป็น "ผลิตภัณฑ์" (product) โปรเจกต์เล็กๆ ที่มีตัวสาธิตที่ใช้งานได้จริง ดีกว่าไอเดียใหญ่โตที่ไม่มีหลักฐานยืนยัน

ความชัดเจนและความสมบูรณ์คือสิ่งสำคัญ

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

ที่มา: https://dev.to/amising6/what-i-learned-after-reviewing-many-ai-and-developer-projects-as-a-hackathon-judge-2g06

ชุมชนแห่งการเรียนรู้ (ไม่บังคับ): https://t.me/GyaanSetuAi