สัญญาจ้างฟรีแลนซ์: แค่กระดาษเสือกระดาษหรือเครื่องมือทำเงิน
เวลาเราเริ่มรับงาน Freelance (คนรับงานอิสระ) สิ่งแรกที่หลายคนตื่นเต้นคือการร่างสัญญาจ้าง หลายคนเข้าใจผิดว่าสัญญาคือเกราะป้องกันวิเศษที่จะบังคับให้ลูกค้าจ่ายเงินได้ทันทีถ้าเขาเบี้ยวงาน เหมือนการร่ายเวทมนตร์ในหนังแฟนตาซี แต่ในโลกความเป็นจริง สัญญามีหน้าที่คนละเรื่องกันเลยครับ
สัญญาไม่ใช่เครื่องมือสำหรับ การบังคับให้จ่ายเงิน (Enforcement) แต่มันคือเครื่องมือสำหรับ การสร้างความเข้าใจที่ตรงกัน (Alignment) ระหว่างเรากับลูกค้าต่างหาก การพยายามใช้สัญญาเป็นอาวุธข่มขู่ลูกค้ามักจะทำให้เราดูเป็นมือใหม่ที่ไม่มีความเป็นมืออาชีพในสายตาของบริษัทที่จ้างงาน
การเข้าใจบทบาทที่แท้จริงของสัญญาจะช่วยให้เราดูเป็นโปรแกรมเมอร์ที่ทำงานเป็นระบบขึ้นมาก แทนที่จะจมอยู่กับความกลัวว่าจะถูกโกง ให้เราเปลี่ยนมาโฟกัสที่การทำสัญญาสั้นๆ ง่ายๆ เพื่อป้องกันการเข้าใจผิดเรื่องขอบเขตงานแทนครับ
ความเชื่อผิดๆ เรื่องการใช้สัญญาฟ้องร้อง
มือใหม่มักคิดว่าถ้ามีสัญญาแล้ว ลูกค้าจะไม่กล้าเบี้ยวเพราะกลัวโดนฟ้อง ความจริงคือบริษัทขนาดเล็กหรือฟรีแลนซ์ด้วยกันเองมักจะไม่มีทรัพย์สินอะไรให้เรายึดได้เลยถ้าเกิดการฟ้องร้องขึ้นมาจริงๆ หรือที่เรียกกันว่า Judgment-proof (สถานะที่ไม่สามารถบังคับคดีได้เพราะไม่มีทรัพย์สิน)
ลองนึกภาพว่าคุณจ้างช่างมาซ่อมบ้านแล้วเขาหนีหายไปพร้อมเงินมัดจำ ต่อให้คุณฟ้องชนะและศาลสั่งให้เขาจ่ายคืน แต่ถ้าเขาไม่มีเงินเหลือในบัญชีเลย คุณก็ไม่ได้อะไรกลับมาอยู่ดี ในโลกของการรับงานเขียนโปรแกรมก็เช่นกัน การสู้คดีมีแต่จะเสียเวลาและเงินทองมากกว่าค่าจ้างที่ค้างอยู่
ดังนั้น อย่าเสียเวลาไปกับการทำสัญญาที่หนาเป็นปึกเพื่อป้องกันการฟ้องร้องที่ไม่มีวันเกิดขึ้นจริง ให้มุ่งเน้นไปที่การทำสัญญาที่ช่วยให้งานเดินหน้าได้ราบรื่นแทน เพราะในโลกธุรกิจจริง การรักษาชื่อเสียงและสายสัมพันธ์สำคัญกว่าการพยายามเอาชนะในศาลครับ
สัญญาที่ดีต้องระบุขอบเขตงานให้ชัดเจน
งานที่ล้มเหลวส่วนใหญ่ไม่ได้เกิดจากการโกง แต่เกิดจาก Scope Creep (การที่ขอบเขตงานงอกออกมาเรื่อยๆ) เช่น ลูกค้าสั่งให้เขียนหน้า Login แต่พอทำเสร็จกลับขอให้เพิ่มระบบลืมรหัสผ่าน ระบบส่งอีเมล และระบบเก็บประวัติการเข้าใช้งานโดยไม่เพิ่มเงิน
วิธีแก้คือการเขียนสัญญาสั้นๆ ที่ระบุว่าเราจะทำอะไรบ้าง และอะไรที่ "ไม่ทำ" ให้ชัดเจน ตัวอย่างเช่น การเขียนสัญญาสำหรับงานพัฒนา API (ตัวกลางที่ให้โปรแกรมสองตัวคุยกันได้) ต้องระบุว่าเราจะส่งมอบแค่ตัวเชื่อมต่อข้อมูล ไม่รวมถึงการทำหน้าเว็บไซต์หรือดูแลเซิร์ฟเวอร์
หากคุณไม่ระบุรายละเอียดเหล่านี้ไว้ตั้งแต่ต้น คุณจะกลายเป็นคนที่ต้องทำงานฟรีไปเรื่อยๆ จนกว่าลูกค้าจะพอใจ ซึ่งเป็นจุดจบที่แย่มากสำหรับโปรแกรมเมอร์มือใหม่ที่เพิ่งเริ่มหางานชิ้นแรกครับ
ตัวอย่างการเขียนขอบเขตงานในสัญญาแบบมืออาชีพ
นี่คือตัวอย่างการเขียนข้อกำหนดในสัญญา เพื่อป้องกันปัญหาขอบเขตงานงอกที่คุณสามารถนำไปปรับใช้ได้จริง
// ตัวอย่างการระบุขอบเขตงานในสัญญา
const scopeOfWork = {
task: "สร้างหน้า Landing Page (หน้าแรกที่คนเข้าชม)",
deliverables: ["ไฟล์ HTML", "ไฟล์ CSS", "ไฟล์ JavaScript"],
exclusions: "ไม่รวมการเขียนระบบหลังบ้าน (Backend) และการจัดการฐานข้อมูล"
};
// การตรวจสอบเงื่อนไขก่อนเริ่มงาน
if (scopeOfWork.deliverables.length > 0) {
console.log("เริ่มงานตามขอบเขตที่ระบุไว้");
} else {
console.log("กรุณาระบุขอบเขตงานให้ชัดเจนก่อนเริ่ม");
}
อธิบายโค้ด: ตัวแปร scopeOfWork เก็บรายละเอียดงานที่ตกลงกันไว้ ส่วน exclusions คือส่วนที่ระบุชัดเจนว่าเราไม่ทำอะไร บรรทัด if คือการเช็คว่างานมีรายละเอียดครบไหมก่อนเริ่มลงมือเขียนโค้ดจริง
ผลลัพธ์ที่ได้: หากระบุงานครบ โปรแกรมจะแสดงข้อความว่า "เริ่มงานตามขอบเขตที่ระบุไว้" ซึ่งเป็นการยืนยันความพร้อมก่อนเริ่มโปรเจกต์
การจัดการความคาดหวังเรื่องเวลาและเงิน
อีกเรื่องที่มือใหม่พลาดบ่อยคือการไม่ระบุวันส่งงานและงวดการจ่ายเงินที่ชัดเจน สัญญาควรระบุให้ชัดว่างานแต่ละส่วนจะเสร็จเมื่อไหร่ และคุณจะได้รับเงินเมื่อไหร่ เช่น การแบ่งจ่ายเป็น 3 งวด คือ ก่อนเริ่มงาน ระหว่างทำ และหลังส่งมอบงาน
การแบ่งจ่ายเงินแบบนี้ช่วยลดความเสี่ยงได้ดีกว่าการรอรับเงินก้อนเดียวตอนจบงาน เพราะถ้าลูกค้าเริ่มบ่ายเบี่ยงในงวดที่สอง คุณจะรู้ตัวทันทีและหยุดงานได้ก่อนที่จะเสียเวลาไปมากกว่านี้ นี่คือการทำธุรกิจที่มืออาชีพเขาทำกันครับ
จำไว้ว่าสัญญาคือการสร้างความมั่นใจให้ทั้งสองฝ่าย ถ้าลูกค้าไม่ยอมตกลงเรื่องงวดการจ่ายเงิน นั่นคือสัญญาณอันตรายที่คุณควรถอยห่างออกมาตั้งแต่วันแรก ดีกว่าต้องมานั่งทวงเงินผ่านแชทในวันที่งานเสร็จไปแล้วครับ
สรุป: ใช้สัญญาให้เป็นเครื่องมือสร้างงานที่ยั่งยืน
การเป็นโปรแกรมเมอร์ที่เก่งไม่ได้มีแค่เรื่องโค้ด แต่รวมถึงการบริหารจัดการความสัมพันธ์กับลูกค้าด้วย สัญญาที่เป็น Non Paper Tiger (ไม่ใช่เสือกระดาษที่น่ากลัวแต่ไร้พิษสง) คือสัญญาที่เน้นความเป็นธรรมและชัดเจนมากกว่าการข่มขู่ด้วยกฎหมาย
ตัวอย่างการนำไปใช้จริง: ในโปรเจกต์ถัดไป ลองทำเอกสารสั้นๆ 1 หน้าที่ระบุแค่ (1) งานที่ต้องทำ (2) งานที่ไม่ทำ (3) กำหนดการส่งงาน และ (4) งวดการจ่ายเงิน เพียงเท่านี้คุณก็จะดูเป็นมืออาชีพขึ้นกว่าฟรีแลนซ์ทั่วไปที่ไม่มีอะไรเลย
จงจำไว้ว่าสัญญาที่ดีที่สุดคือสัญญาที่ไม่มีใครต้องหยิบมาใช้ฟ้องร้อง แต่เป็นสัญญาที่ทุกคนยึดถือเพื่อทำงานให้สำเร็จลุล่วงไปได้ด้วยดี เริ่มต้นฝึกทำสัญญาแบบง่ายตั้งแต่วันนี้ แล้วคุณจะพบว่าการรับงานอิสระนั้นสนุกและเป็นระบบขึ้นอีกเยอะครับ
ที่มา: How to Navigate Contracts as a Freelancer: The Non Paper Tiger Edition — DEV Community