คำตอบสั้นๆ
สัญญาจ้างเขียนโปรแกรมที่ดีต้องตอบสิบเรื่อง คือ ขอบเขตงาน งวดเงินที่ผูกกับงานส่งมอบ ลิขสิทธิ์และการส่งมอบซอร์สโค้ด วิธีตรวจรับ วิธีจัดการงานเพิ่ม ระยะรับประกัน การดูแลหลังส่งมอบ การคุ้มครองข้อมูลส่วนบุคคล การยกเลิกสัญญา และภาษี ข้อที่ทำให้งานพังบ่อยที่สุดคือขอบเขตงาน ถ้าเขียนเป็นรายการสิ่งที่ผู้ใช้ต้องทำได้ ซึ่งใช้เป็นรายการทดสอบตอนตรวจรับได้ด้วย ข้ออื่นๆ จะเขียนง่ายขึ้นทั้งหมด คู่มือนี้ไม่ใช่คำแนะนำทางกฎหมาย ควรให้ทนายตรวจร่างสุดท้ายก่อนเซ็น
สัญญาจ้างเขียนโปรแกรม ต้องมีข้อไหนบ้าง
สิบข้อด้านล่างคือเรื่องที่ต้องมีคำตอบเป็นลายลักษณ์อักษร ถ้าร่างสัญญาที่ได้รับไม่พูดถึงข้อไหน ให้ถามก่อนเซ็น ข้อที่ไม่ได้เขียนไว้ มักกลายเป็นเรื่องที่ต้องมาเถียงกันตอนงานใกล้จบ
- ขอบเขตงาน รายการสิ่งที่ผู้ใช้ต้องทำได้ในระบบ แนบเป็นภาคผนวก
- งวดเงิน แต่ละงวดผูกกับงานที่ส่งมอบ ไม่ใช่ผูกกับวันที่
- ลิขสิทธิ์และซอร์สโค้ด ใครเป็นเจ้าของ และส่งมอบซอร์สโค้ดเมื่อไหร่ ในรูปแบบไหน
- การตรวจรับ ทดสอบกับอะไร กี่วัน และถ้าไม่ผ่านต้องทำอะไรต่อ
- งานเพิ่ม ขอเพิ่มหรือเปลี่ยนงานระหว่างทางต้องทำอย่างไร คิดราคายังไง
- การรับประกัน แก้ข้อบกพร่องให้ฟรีนานเท่าไหร่หลังตรวจรับ
- การดูแลหลังส่งมอบ ครอบคลุมอะไร ราคาเท่าไหร่ แยกจากค่าพัฒนา
- ข้อมูลส่วนบุคคล หน้าที่ของผู้รับจ้างในฐานะผู้ประมวลผลข้อมูลตาม PDPA
- การยกเลิกสัญญา ถ้าเลิกกลางทาง จ่ายเท่าไหร่ และได้อะไรกลับมา
- ภาษีและอากร ราคารวมภาษีมูลค่าเพิ่มหรือยัง หักภาษี ณ ที่จ่ายเท่าไหร่
ขอบเขตงาน เขียนยังไงไม่ให้เถียงกันทีหลัง
เขียนเป็นรายการสิ่งที่ผู้ใช้แต่ละกลุ่มต้องทำได้ในระบบ แล้วใช้รายการเดียวกันนี้เป็นรายการทดสอบตอนตรวจรับ แทนการเขียนว่าระบบมีหน้าจออะไรบ้าง หรือแนบเอกสารความต้องการหลายสิบหน้าที่ไม่มีใครอ่านจนจบ
เมื่อรายการนี้คือขอบเขต สิ่งที่อยู่ในรายการต้องทำให้ผ่าน สิ่งที่ไม่อยู่ในรายการคืองานเพิ่ม เรื่องที่มักเถียงกันว่านี่รวมอยู่ในราคาหรือเปล่าจะตอบได้ทันทีโดยเปิดรายการดู ควรให้ผู้ใช้ตัวจริงของแต่ละแผนกเป็นคนอ่านและเซ็นรับรายการ ไม่ใช่ผู้บริหารคนเดียว
- ตัวอย่างรายการ พนักงานขายสร้างใบเสนอราคาจากรายการสินค้า แล้วส่งให้หัวหน้าอนุมัติได้
- ตัวอย่างรายการ หัวหน้าเห็นใบเสนอราคาที่รออนุมัติทั้งหมด อนุมัติหรือส่งกลับพร้อมเหตุผลได้
- ตัวอย่างข้อความในสัญญา "ขอบเขตงานตามสัญญานี้คือรายการทดสอบการใช้งานในภาคผนวก ก งานที่ไม่อยู่ในภาคผนวก ก ถือเป็นงานเพิ่มตามข้อว่าด้วยการเปลี่ยนแปลงงาน"
งวดเงินและการตรวจรับ
ผูกแต่ละงวดกับงานที่ตรวจรับได้ เช่น ส่วนงานขายผ่านการทดสอบตามรายการ ไม่ใช่ผูกกับวันที่ในปฏิทิน งวดแรกที่จ่ายก่อนเริ่มงานควรเป็นสัดส่วนที่เสียได้ถ้างานไม่เดิน
การตรวจรับควรมีกรอบเวลาทั้งสองฝั่ง ผู้ว่าจ้างต้องทดสอบภายในกี่วัน และถ้าไม่แจ้งผลภายในกำหนดให้ถือว่าอย่างไร ผู้รับจ้างต้องแก้ข้อที่ไม่ผ่านภายในกี่วัน ถ้าไม่มีกรอบนี้ งานมักค้างอยู่ที่ขั้นรอตรวจรับเป็นเดือน
- ตัวอย่างข้อความ "ผู้ว่าจ้างจะทดสอบงานแต่ละงวดตามรายการในภาคผนวก ก ภายใน 10 วันทำการนับจากวันที่ได้รับแจ้งการส่งมอบ และแจ้งรายการที่ไม่ผ่านเป็นลายลักษณ์อักษร"
- ตัวอย่างข้อความ "ข้อบกพร่องเล็กน้อยที่ไม่ทำให้ใช้งานตามรายการไม่ได้ ไม่เป็นเหตุให้ปฏิเสธการตรวจรับ ผู้รับจ้างจะแก้ไขภายในระยะรับประกัน"
ลิขสิทธิ์และซอร์สโค้ด เป็นของใคร
พระราชบัญญัติลิขสิทธิ์ พ.ศ. 2537 มาตรา 10 วางหลักว่างานที่สร้างสรรค์ขึ้นจากการรับจ้าง ลิขสิทธิ์เป็นของผู้ว่าจ้าง เว้นแต่จะตกลงกันไว้เป็นอย่างอื่น แต่การเป็นเจ้าของลิขสิทธิ์ไม่ได้แปลว่าคุณได้ซอร์สโค้ดมาอยู่ในมือ ต้องเขียนให้ชัดว่าส่งมอบอะไร เมื่อไหร่ และที่ไหน
ส่วนที่ผู้รับจ้างนำมาใช้ซ้ำ เช่น ไลบรารีของตัวเอง หรือซอฟต์แวร์โอเพนซอร์ส ไม่ได้กลายเป็นของผู้ว่าจ้างทั้งหมด สัญญาควรระบุว่าส่วนนี้ผู้ว่าจ้างได้สิทธิ์ใช้ต่อได้ตลอดไปโดยไม่มีค่าใช้จ่ายเพิ่ม
- ซอร์สโค้ดทั้งหมดอยู่ใน repository ที่เปิดในบัญชีของผู้ว่าจ้างตั้งแต่วันแรก ไม่ใช่ส่งเป็นไฟล์ตอนจบ
- บัญชีเซิร์ฟเวอร์ โดเมน และบริการภายนอก เปิดในชื่อบริษัทผู้ว่าจ้าง
- ส่งมอบเอกสารติดตั้ง รหัสผ่านระบบ และขั้นตอนนำระบบขึ้นใช้งานจริง
- ตัวอย่างข้อความ "ลิขสิทธิ์ในงานที่สร้างขึ้นตามสัญญานี้เป็นของผู้ว่าจ้าง ส่วนประกอบที่ผู้รับจ้างมีอยู่ก่อน ผู้รับจ้างให้สิทธิ์ผู้ว่าจ้างใช้ ดัดแปลง และให้ผู้อื่นดูแลต่อได้โดยไม่มีกำหนดเวลาและไม่มีค่าตอบแทนเพิ่ม"
งานเพิ่ม รับประกัน และการดูแลหลังส่งมอบ
งานเพิ่มไม่ใช่เรื่องผิด ระบบเกือบทุกระบบมีงานเพิ่ม สิ่งที่ต้องมีคือขั้นตอน ขอเป็นลายลักษณ์อักษร ผู้รับจ้างประเมินราคาและเวลา ผู้ว่าจ้างอนุมัติก่อนเริ่มทำ งานเพิ่มที่ยังไม่อนุมัติไม่ควรทำให้การตรวจรับงานตามขอบเขตเดิมสะดุด
แยกการรับประกันออกจากการดูแล การรับประกันคือแก้สิ่งที่ทำไม่ตรงรายการให้ฟรีในระยะที่ตกลง การดูแลคืองานต่อเนื่องที่มีค่าใช้จ่าย เช่น อัปเดตความปลอดภัย มอนิเตอร์ระบบ และงานปรับแก้เล็กน้อย ควรเขียนราคาการดูแลไว้ตั้งแต่ตอนนี้ แม้จะยังไม่ต้องเซ็นก็ตาม
PDPA ยกเลิกสัญญา และภาษี
ถ้าระบบเก็บข้อมูลส่วนบุคคล ผู้พัฒนาที่เข้าถึงข้อมูลจริงถือเป็นผู้ประมวลผลข้อมูล และพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562 มาตรา 40 กำหนดให้ผู้ควบคุมข้อมูลจัดให้มีข้อตกลงกับผู้ประมวลผลข้อมูล จะเขียนเป็นข้อในสัญญาหรือแยกเป็นข้อตกลงการประมวลผลข้อมูล (DPA) ก็ได้
ข้อยกเลิกสัญญาควรบอกว่า ถ้าเลิกกลางทาง ผู้ว่าจ้างจ่ายเฉพาะงานที่ส่งมอบแล้ว และได้ซอร์สโค้ดของงานส่วนนั้น ส่วนเรื่องภาษี ผู้ว่าจ้างที่เป็นนิติบุคคลปกติหักภาษี ณ ที่จ่าย 3% จากค่าจ้างทำของ และสัญญาจ้างทำของต้องติดอากรแสตมป์ 1 บาททุก 1,000 บาทของค่าจ้าง ตามบัญชีอัตราอากรแสตมป์ ลักษณะแห่งตราสาร 4
- ระบุว่าราคารวมภาษีมูลค่าเพิ่มแล้วหรือยัง ถ้าผู้รับจ้างจดทะเบียนภาษีมูลค่าเพิ่ม
- ระบุว่าหักภาษี ณ ที่จ่ายจากยอดก่อนภาษีมูลค่าเพิ่ม
- ผู้ประมวลผลข้อมูลต้องลบหรือคืนข้อมูลส่วนบุคคลเมื่อสัญญาสิ้นสุด
จุดที่สัญญาจ้างเขียนโปรแกรมมักพัง
สัญญาส่วนใหญ่ไม่ได้พังเพราะผิดกฎหมาย แต่พังเพราะเขียนไว้กว้างจนแต่ละฝ่ายอ่านไม่เหมือนกัน
- ขอบเขตเขียนว่า "ระบบบริหารงานขายครบวงจร" โดยไม่มีรายการว่าครบวงจรคืออะไร
- จ่ายงวดใหญ่ก่อนเห็นงาน แล้วเหลืองวดสุดท้ายน้อยจนไม่มีแรงจูงใจให้ปิดงาน
- ซอร์สโค้ดอยู่ในบัญชีของผู้รับจ้าง พอเลิกจ้างก็ต้องขอกันเอง
- ไม่มีกรอบเวลาตรวจรับ งานค้างรอตรวจเป็นเดือน
- รวมค่าดูแลรายปีไว้ในราคาพัฒนาโดยไม่บอกว่าหมดเมื่อไหร่
เช็กลิสต์ก่อนเซ็นสัญญาจ้างเขียนโปรแกรม
- ขอบเขตงานเป็นรายการสิ่งที่ผู้ใช้ต้องทำได้ และผู้ใช้ตัวจริงอ่านแล้ว?
- แต่ละงวดเงินผูกกับงานที่ตรวจรับได้?
- มีกรอบเวลาตรวจรับและกรอบเวลาแก้ไขทั้งสองฝั่ง?
- ซอร์สโค้ดอยู่ในบัญชีของบริษัทคุณตั้งแต่วันแรก?
- มีขั้นตอนขอและอนุมัติงานเพิ่มเป็นลายลักษณ์อักษร?
- แยกระยะรับประกันออกจากค่าดูแล และรู้ราคาการดูแลแล้ว?
- มีข้อตกลงการประมวลผลข้อมูลส่วนบุคคล ถ้าระบบเก็บข้อมูลลูกค้า?
- ถ้าเลิกกลางทาง รู้ว่าจ่ายเท่าไหร่และได้อะไรกลับมา?
คำถามที่พบบ่อย
ลิขสิทธิ์ source code ของโปรแกรมที่จ้างทำ เป็นของใคร?
ตามพระราชบัญญัติลิขสิทธิ์ มาตรา 10 งานที่สร้างจากการรับจ้าง ลิขสิทธิ์เป็นของผู้ว่าจ้าง เว้นแต่ตกลงเป็นอย่างอื่น ถ้าสัญญาเขียนให้ผู้รับจ้างถือลิขสิทธิ์ไว้ หลักนี้ก็เปลี่ยนตามสัญญา จึงต้องอ่านข้อนี้ให้ดี และต้องเขียนเรื่องการส่งมอบซอร์สโค้ดแยกไว้ด้วย เพราะการเป็นเจ้าของลิขสิทธิ์ไม่ได้ทำให้ได้ไฟล์มาเอง
ค่าจ้างเขียนโปรแกรม ต้องหักภาษี ณ ที่จ่ายเท่าไหร่?
ถ้าผู้ว่าจ้างเป็นนิติบุคคล ปกติหัก 3% ของค่าจ้างก่อนภาษีมูลค่าเพิ่ม เพราะเป็นค่าจ้างทำของ ถ้าผู้ว่าจ้างเป็นบุคคลธรรมดาไม่ต้องหัก การจัดประเภทดูจากเนื้อหาในสัญญา ถ้าไม่แน่ใจให้ถามผู้ทำบัญชีก่อนจ่ายงวดแรก
สัญญาจ้างเขียนโปรแกรมต้องติดอากรแสตมป์ไหม?
ต้อง สัญญาจ้างทำของติดอากรแสตมป์ 1 บาททุก 1,000 บาทหรือเศษของ 1,000 บาทของค่าจ้าง ตามบัญชีอัตราอากรแสตมป์ ลักษณะแห่งตราสาร 4 ผู้รับจ้างเป็นผู้เสียอากรตามกฎหมาย แต่ในทางปฏิบัติมักตกลงกันในสัญญาว่าใครเป็นคนจ่าย
ใบเสนอราคาที่เซ็นแล้ว ใช้แทนสัญญาได้ไหม?
สำหรับงานเล็กที่ขอบเขตชัดอาจพอ แต่ใบเสนอราคาส่วนใหญ่ไม่พูดถึงลิขสิทธิ์ การตรวจรับ งานเพิ่ม ข้อมูลส่วนบุคคล และการยกเลิก ซึ่งเป็นเรื่องที่มักเกิดปัญหา ถ้าจะใช้ใบเสนอราคา ให้แนบเงื่อนไขสิบข้อในคู่มือนี้เป็นเอกสารแนบที่ทั้งสองฝ่ายเซ็นด้วย