สัญญาจ้างพัฒนาซอฟต์แวร์ที่ไม่ตอบคำถามว่า "โค้ดเป็นของใคร" คือระเบิดเวลาที่จะระเบิดวันที่คุณอยากเปลี่ยนผู้พัฒนา เรื่องนี้ถามคนละแหล่งยังได้คำตอบคนละข้าง บทความนี้กาง 5 จุดที่ต้องเช็คก่อนเซ็น จากมุมของผู้พัฒนาที่อยู่ฝั่งเดียวกับผู้จ้าง ไม่ใช่คำแนะนำทางกฎหมาย งานเดิมพันสูงควรให้ทนายอ่านสัญญาด้วยเสมอ
ลิขสิทธิ์งานจ้างเขียนโปรแกรม ถ้าสัญญาไม่เขียน กฎหมายจะตัดสินแทน
ถ้าสัญญาไม่ได้เขียนเรื่องเจ้าของผลงานไว้ กฎหมายลิขสิทธิ์จะเป็นตัวตัดสินแทน และผลต่างกันตามรูปแบบการจ้าง งานของพนักงานประจำ มาตรา 9 ให้ลิขสิทธิ์เป็นของผู้สร้างถ้าไม่ได้ทำหนังสือตกลงกัน แต่นายจ้างนำงานออกเผยแพร่ได้ตามวัตถุประสงค์ของการจ้าง ส่วนงานที่เกิดจากการรับจ้างบุคคลอื่น มาตรา 10 ให้เป็นของผู้ว่าจ้างเว้นแต่ตกลงกันเป็นอย่างอื่น อ่านตัวบทเต็มได้จากพ.ร.บ.ลิขสิทธิ์ พ.ศ. 2537 สองมาตราให้ผลคนละทาง แปลว่าวันมีปัญหาจริง คุณอาจต้องไปเถียงกันก่อนว่าการจ้างของคุณเข้ามาตราไหน โค้ดเลยเป็นของใคร ซึ่งแพงและช้ากว่าการเขียนหนึ่งย่อหน้าลงสัญญาตั้งแต่วันแรกมาก หลักที่เราใช้เองและแนะนำผู้จ้างคือ อย่าปล่อยให้กฎหมายตัดสินแทนสัญญา
จุดแรกที่ต้องเช็ค คือ Source Code เป็นของใครเมื่อจ่ายครบ
มองหาประโยคที่เขียนชัดว่า source code ลิขสิทธิ์ และสิทธิ์ในผลงานทั้งหมด โอนเป็นของผู้ว่าจ้างเมื่อชำระเงินครบถ้วน ถ้าสัญญาไม่มีประโยคนี้ หรือเขียนคลุมเครือว่า "ผู้ว่าจ้างมีสิทธิ์ใช้งานระบบ" ให้หยุดแล้วถามทันที เพราะสองแบบนี้คือคนละสินค้า จุดยืนของเราเขียนไว้ตรงๆ ในข้อกำหนดการใช้บริการว่าเมื่อชำระครบ สิทธิ์ในผลงานที่พัฒนาขึ้นเฉพาะสำหรับลูกค้าโอนเป็นของลูกค้าตามขอบเขตในสัญญา ส่วนเครื่องมือเดิมของเราและ library โอเพนซอร์สเป็นไปตาม license ของมัน ดูข้อ 4 ด้านล่าง
อีก 4 จุดในสัญญาจ้างพัฒนาซอฟต์แวร์ที่พลาดกันบ่อย
- License กับ Ownership คือคนละเรื่อง บางเจ้าราคาถูกกว่าเพราะขายสิทธิ์ใช้งาน ไม่ใช่ความเป็นเจ้าของ ไม่ผิดถ้าบอกกันชัด แต่กลายเป็นกับดัก lock-in ได้ถ้าเพิ่งมารู้วันที่อยากย้ายออก เทียบราคาข้ามเจ้าต้องเทียบบนเงื่อนไขเดียวกัน
- ขอบเขตส่งมอบต้องเกินคำว่า "ระบบใช้งานได้" ระบุเป็นรายการ ทั้งโค้ด เอกสารติดตั้ง สิทธิ์เข้าบัญชีและฐานข้อมูล กับข้อมูลในรูปแบบเอาออกได้ และให้เปิดบัญชี cloud แยกของโปรเจกต์ตั้งแต่ต้น ไม่ปนกับลูกค้ารายอื่น วันจบงานจะได้โอนสิทธิ์ขาดได้จริง
- รับประกันต้องมีตัวเลขและขอบเขต เขียนให้ชัดว่ากี่วันหลังส่งมอบ ครอบคลุมบั๊กงานเดิมแบบไหน และอะไรนับเป็นงานใหม่ ถ้าไม่เขียนเลย ประมวลกฎหมายแพ่งฯ มาตรา 600 ให้รับผิดต่อความชำรุดบกพร่องที่ปรากฏภายใน 1 ปีนับแต่ส่งมอบ ซึ่งอาจไม่ตรงกับที่สองฝ่ายตั้งใจ ของเราระบุเป็นรายสัญญา เช่น 30 หรือ 90 วัน
- Dependency และ license ของของที่ยืมมา ซอฟต์แวร์ส่วนใหญ่พึ่ง library ภายนอก ถามว่าตัวไหนมีค่า license ต่อเนื่อง ตัวไหนมีเงื่อนไขให้เปิดเผยโค้ด GPL ผูกกับการแจกจ่ายสำเนา ส่วน AGPL เพิ่มกรณีให้ผู้ใช้โต้ตอบผ่านเครือข่าย ขอบเขตจริงขึ้นกับเวอร์ชันและวิธีรวมโค้ด และเขียนลงสัญญาว่าใครจ่ายและใครตรวจ
สัญญาที่ดีไม่ได้มีไว้กันโกง มันมีไว้กันเข้าใจไม่ตรงกัน
งานแบบไหนที่ความเป็นเจ้าของโค้ดไม่ใช่ประเด็นหลัก
ถ้าคุณซื้อสิทธิ์ใช้ซอฟต์แวร์สำเร็จรูปหรือ SaaS รายเดือน ความเป็นเจ้าของโค้ดไม่ใช่ประเด็น แต่สิทธิ์ส่งออกข้อมูลและย้ายออกยังเป็น เพราะคุณตั้งใจเช่า แลกกับการไม่ต้องสร้างและถือระบบเอง ส่วนค่าเริ่มต้นขึ้นกับเงื่อนไขผู้ให้บริการ เกณฑ์เลือกระหว่างสองทางนี้เราเขียนไว้ในซอฟต์แวร์สำเร็จรูป กับ สั่งทำ ประเด็นเจ้าของโค้ดจะกลายเป็นเรื่องใหญ่เมื่อคุณจ้างให้สร้างซอฟต์แวร์เฉพาะเพื่อสั่งทำของเฉพาะทาง ซึ่งส่วนที่สร้างขึ้นใหม่สำหรับงานของคุณ ควรออกจากประตูไปกับคุณได้ครบตามที่ตกลง
เช็คลิสต์ก่อนเซ็น ไล่ให้ครบ 5 เรื่อง
ไล่หา 5 เรื่องนี้ในสัญญา เจ้าของโค้ดเมื่อจ่ายครบ ได้ความเป็นเจ้าของหรือแค่สิทธิ์ใช้งาน ขอบเขตส่งมอบเป็นรายการ ตัวเลขวันรับประกันพร้อมขอบเขต และค่า license ต่อเนื่องของ dependency งานยาวหลายงวดให้เขียนลงสัญญาว่าจะได้รับโค้ดตอนไหน ไม่ปล่อยให้คลุมเครือถึงวันจบงาน ข้อไหนไม่มีให้ถามเป็นลายลักษณ์อักษรก่อนเซ็น
ถ้ามีร่างสัญญาอยู่ในมือแล้วยังไม่แน่ใจ ส่งร่างมาให้เราดูได้ฟรี ไม่มีข้อผูกมัด และไม่จำเป็นต้องจ้างเราพัฒนา คำตอบที่ใช้ได้คือคำตอบที่ชัดพอจะเขียนเพิ่มลงสัญญา ไม่ใช่คำรับปากปากเปล่า สัญญาอ่านคู่กับใบเสนอราคาเสมอ วิธีอ่านฝั่งราคาเราเขียนไว้ในจ้างพัฒนาซอฟต์แวร์ ราคาคิดจากอะไร และถ้าอยากได้คู่สัญญาที่ประกาศเรื่องพวกนี้ไว้ชัดตั้งแต่หน้าเว็บ ดูขอบเขตงานรับพัฒนาซอฟต์แวร์สั่งทำของเราได้ คุยรอบแรกฟรี
ถ้าตัดสินใจจ้างเรา เกิดอะไรต่อ
- ส่งร่างสัญญาหรือโจทย์มา เราตอบภายในวันทำการเดียวกันว่า 5 เรื่องข้างบนครบไหม และข้อไหนควรขอแก้ก่อนเซ็น เราตรวจในมุมผู้พัฒนา ไม่ใช่ทนาย
- ภายใน 48 ชั่วโมง คุณได้ขอบเขตงานเป็นรายการพร้อมงบเบื้องต้น เอาไปเทียบกับเจ้าอื่นได้ ไม่ต้องจ้างเรา
- ถ้าไปต่อ ใบเสนอราคาแจกแจงรายการตามขอบเขตนั้น ระหว่างทำส่งลิงก์ staging ให้ทีมคุณลองทุกสัปดาห์ ปิดงานแล้วส่งมอบ source code ส่วนที่พัฒนาให้คุณพร้อมสิทธิ์ตามสัญญา ส่วน library โอเพนซอร์สเป็นไปตาม license ของมัน กำหนดส่งมอบเขียนไว้ในสัญญาตั้งแต่ต้น
คำถามที่พบบ่อย
Source code ที่จ้างทำเป็นของใคร
ตามที่สัญญาเขียนครับ อย่ารอให้กฎหมายตัดสินแทน เพราะผลขึ้นกับรูปแบบการจ้างและข้อตกลงที่ทำกันไว้ วิธีที่ตรงที่สุดคือเขียนลงสัญญาตรงๆ ว่าโค้ดและลิขสิทธิ์โอนให้ผู้ว่าจ้างเมื่อจ่ายครบ ถ้าสัญญาเงียบเรื่องนี้ ให้ถามก่อนเซ็น ไม่ใช่หลังส่งมอบ
สัญญาให้แค่สิทธิ์ใช้งาน ต่างจากเป็นเจ้าของยังไง
ต่างเหมือนเช่ากับซื้อครับ สิทธิ์ใช้งานแปลว่าผู้พัฒนายังถือโค้ดไว้ คุณได้ license ใช้ตามเงื่อนไข จะแก้ ต่อยอด หรือย้ายให้ทีมอื่นดูแลได้แค่ไหน ขึ้นกับเงื่อนไข license ที่เขียนไว้ แบบนี้ไม่ผิดกฎหมาย เงื่อนไขและต้นทุนคนละแบบ ต้องอ่านให้ครบก่อนเซ็นว่ากำลังซื้ออะไรและออกจากระบบยังไง
งานจ้างพัฒนาซอฟต์แวร์ต้องขอส่งมอบอะไรบ้าง
ยึดหลักเดียวครับ คือของที่ได้ต้องพอให้ทีมอื่นรับช่วงต่อได้ ลดการพึ่งผู้พัฒนาเดิม แกนที่ควรขอมี 4 อย่าง ตัว source code สิทธิ์เข้าถึงบัญชีที่ระบบรันอยู่ เอกสารวิธีติดตั้งและรันระบบ และข้อมูลในรูปแบบที่เอาออกมาได้ แล้วปรับเพิ่มลดตามลักษณะระบบ ถ้าระบบใช้งานได้แต่ขาดของพวกนี้ วันที่อยากเปลี่ยนผู้ดูแล การย้ายจะยากและแพงกว่าที่ควรมาก
งานพัฒนาซอฟต์แวร์รับประกันกี่วัน
กฎหมายไม่ได้กำหนดเลขวันในสัญญาครับ แต่ถ้าสัญญาไม่เขียนเลย ประมวลกฎหมายแพ่งฯ มาตรา 600 ให้ผู้รับจ้างรับผิดต่อความชำรุดบกพร่องที่ปรากฏภายใน 1 ปีนับแต่ส่งมอบ ของเราระบุระยะและขอบเขตเป็นรายสัญญา เช่น 30 หรือ 90 วัน สำหรับแก้บั๊กงานเดิม ข้อสงสัยทางกฎหมายให้ทนายดูสัญญาของคุณ






