Buyer's Guide

สัญญาจ้างเขียนโปรแกรม ต้องมีข้อไหนบ้าง ตัวอย่างข้อความ และจุดที่มักพัง

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

คำตอบสั้นๆ

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

สัญญาจ้างเขียนโปรแกรม ต้องมีข้อไหนบ้าง

สิบข้อด้านล่างคือเรื่องที่ต้องมีคำตอบเป็นลายลักษณ์อักษร ถ้าร่างสัญญาที่ได้รับไม่พูดถึงข้อไหน ให้ถามก่อนเซ็น ข้อที่ไม่ได้เขียนไว้ มักกลายเป็นเรื่องที่ต้องมาเถียงกันตอนงานใกล้จบ

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

ขอบเขตงาน เขียนยังไงไม่ให้เถียงกันทีหลัง

เขียนเป็นรายการสิ่งที่ผู้ใช้แต่ละกลุ่มต้องทำได้ในระบบ แล้วใช้รายการเดียวกันนี้เป็นรายการทดสอบตอนตรวจรับ แทนการเขียนว่าระบบมีหน้าจออะไรบ้าง หรือแนบเอกสารความต้องการหลายสิบหน้าที่ไม่มีใครอ่านจนจบ

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

  • ตัวอย่างรายการ พนักงานขายสร้างใบเสนอราคาจากรายการสินค้า แล้วส่งให้หัวหน้าอนุมัติได้
  • ตัวอย่างรายการ หัวหน้าเห็นใบเสนอราคาที่รออนุมัติทั้งหมด อนุมัติหรือส่งกลับพร้อมเหตุผลได้
  • ตัวอย่างข้อความในสัญญา "ขอบเขตงานตามสัญญานี้คือรายการทดสอบการใช้งานในภาคผนวก ก งานที่ไม่อยู่ในภาคผนวก ก ถือเป็นงานเพิ่มตามข้อว่าด้วยการเปลี่ยนแปลงงาน"

งวดเงินและการตรวจรับ

ผูกแต่ละงวดกับงานที่ตรวจรับได้ เช่น ส่วนงานขายผ่านการทดสอบตามรายการ ไม่ใช่ผูกกับวันที่ในปฏิทิน งวดแรกที่จ่ายก่อนเริ่มงานควรเป็นสัดส่วนที่เสียได้ถ้างานไม่เดิน

การตรวจรับควรมีกรอบเวลาทั้งสองฝั่ง ผู้ว่าจ้างต้องทดสอบภายในกี่วัน และถ้าไม่แจ้งผลภายในกำหนดให้ถือว่าอย่างไร ผู้รับจ้างต้องแก้ข้อที่ไม่ผ่านภายในกี่วัน ถ้าไม่มีกรอบนี้ งานมักค้างอยู่ที่ขั้นรอตรวจรับเป็นเดือน

  • ตัวอย่างข้อความ "ผู้ว่าจ้างจะทดสอบงานแต่ละงวดตามรายการในภาคผนวก ก ภายใน 10 วันทำการนับจากวันที่ได้รับแจ้งการส่งมอบ และแจ้งรายการที่ไม่ผ่านเป็นลายลักษณ์อักษร"
  • ตัวอย่างข้อความ "ข้อบกพร่องเล็กน้อยที่ไม่ทำให้ใช้งานตามรายการไม่ได้ ไม่เป็นเหตุให้ปฏิเสธการตรวจรับ ผู้รับจ้างจะแก้ไขภายในระยะรับประกัน"

ลิขสิทธิ์และซอร์สโค้ด เป็นของใคร

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

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

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

งานเพิ่ม รับประกัน และการดูแลหลังส่งมอบ

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

แยกการรับประกันออกจากการดูแล การรับประกันคือแก้สิ่งที่ทำไม่ตรงรายการให้ฟรีในระยะที่ตกลง การดูแลคืองานต่อเนื่องที่มีค่าใช้จ่าย เช่น อัปเดตความปลอดภัย มอนิเตอร์ระบบ และงานปรับแก้เล็กน้อย ควรเขียนราคาการดูแลไว้ตั้งแต่ตอนนี้ แม้จะยังไม่ต้องเซ็นก็ตาม

PDPA ยกเลิกสัญญา และภาษี

ถ้าระบบเก็บข้อมูลส่วนบุคคล ผู้พัฒนาที่เข้าถึงข้อมูลจริงถือเป็นผู้ประมวลผลข้อมูล และพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562 มาตรา 40 กำหนดให้ผู้ควบคุมข้อมูลจัดให้มีข้อตกลงกับผู้ประมวลผลข้อมูล จะเขียนเป็นข้อในสัญญาหรือแยกเป็นข้อตกลงการประมวลผลข้อมูล (DPA) ก็ได้

ข้อยกเลิกสัญญาควรบอกว่า ถ้าเลิกกลางทาง ผู้ว่าจ้างจ่ายเฉพาะงานที่ส่งมอบแล้ว และได้ซอร์สโค้ดของงานส่วนนั้น ส่วนเรื่องภาษี ผู้ว่าจ้างที่เป็นนิติบุคคลปกติหักภาษี ณ ที่จ่าย 3% จากค่าจ้างทำของ และสัญญาจ้างทำของต้องติดอากรแสตมป์ 1 บาททุก 1,000 บาทของค่าจ้าง ตามบัญชีอัตราอากรแสตมป์ ลักษณะแห่งตราสาร 4

  • ระบุว่าราคารวมภาษีมูลค่าเพิ่มแล้วหรือยัง ถ้าผู้รับจ้างจดทะเบียนภาษีมูลค่าเพิ่ม
  • ระบุว่าหักภาษี ณ ที่จ่ายจากยอดก่อนภาษีมูลค่าเพิ่ม
  • ผู้ประมวลผลข้อมูลต้องลบหรือคืนข้อมูลส่วนบุคคลเมื่อสัญญาสิ้นสุด

จุดที่สัญญาจ้างเขียนโปรแกรมมักพัง

สัญญาส่วนใหญ่ไม่ได้พังเพราะผิดกฎหมาย แต่พังเพราะเขียนไว้กว้างจนแต่ละฝ่ายอ่านไม่เหมือนกัน

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

เช็กลิสต์ก่อนเซ็นสัญญาจ้างเขียนโปรแกรม

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

คำถามที่พบบ่อย

ลิขสิทธิ์ source code ของโปรแกรมที่จ้างทำ เป็นของใคร?

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

ค่าจ้างเขียนโปรแกรม ต้องหักภาษี ณ ที่จ่ายเท่าไหร่?

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

สัญญาจ้างเขียนโปรแกรมต้องติดอากรแสตมป์ไหม?

ต้อง สัญญาจ้างทำของติดอากรแสตมป์ 1 บาททุก 1,000 บาทหรือเศษของ 1,000 บาทของค่าจ้าง ตามบัญชีอัตราอากรแสตมป์ ลักษณะแห่งตราสาร 4 ผู้รับจ้างเป็นผู้เสียอากรตามกฎหมาย แต่ในทางปฏิบัติมักตกลงกันในสัญญาว่าใครเป็นคนจ่าย

ใบเสนอราคาที่เซ็นแล้ว ใช้แทนสัญญาได้ไหม?

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