ปัญหาทางกฎหมายที่เกี่ยวข้องกับเซิร์ฟเวอร์และโครงสร้างพื้นฐานของการพัฒนาระบบคืออะไร
ระบบ IT ที่ใช้ในองค์กรในทางหนึ่งแล้ว คือสิ่งที่สร้างขึ้นจากการสร้างเอกสารข้อกำหนดและเอกสารการออกแบบ และการเขียนรหัสต้นฉบับที่ตรงกับเนื้อหาในเอกสารเหล่านั้น แต่ไม่ใช่เพียงแค่ด้านนุ่มๆเท่านั้น ระบบจะสามารถทำงานได้จริงๆเมื่อมีคอมพิวเตอร์ทางกายภาพ หรือที่เรียกว่า อินฟราสตรัคเจอร์ ในบทความนี้ เราจะอธิบายเกี่ยวกับปัญหาทางกฎหมายที่มีความเกี่ยวข้องอย่างใกล้ชิดกับด้านของอินฟราสตรัคเจอร์ในโครงการพัฒนาระบบ
ความหมายของ Infra ในระบบ IT
วิศวกรที่ทำงานในการพัฒนาระบบเรียกว่าวิศวกรระบบ (SE) โดยทั่วไป และโปรเจคการพัฒนาจะเริ่มต้นจากกระบวนการขั้นต้นเช่น การสร้างเอกสารข้อกำหนดและการออกแบบ ตามด้วยการสร้างโปรแกรมและการทดสอบ นี่คือกระบวนการทั่วไป อย่างไรก็ตาม วิศวกรระบบ (SE) ในความหมายที่กว้างขวางคือวิศวกรที่รับผิดชอบงานทั้งหมดที่จำเป็นสำหรับกระบวนการเหล่านี้ แต่ขึ้นอยู่กับองค์กรหรือสถานที่ทำงานที่อาจจะแยกชื่อตามงานที่รับผิดชอบหรือสาขาที่เกี่ยวข้อง ชื่อว่าวิศวกร Infra หมายถึงวิศวกรที่ทำงานในการพัฒนาและดำเนินการระบบ IT โดยเฉพาะในการจัดเตรียมสภาพแวดล้อมการทำงานของคอมพิวเตอร์ทางกายภาพ ระบบ IT ที่ใช้ในองค์กรหรือสถานที่ทำงานเป็นสิ่งก่อสร้างที่เป็นนามธรรมที่สร้างขึ้นจากการรวมกันของรหัสแหล่งที่มา แต่เพื่อให้ระบบนั้นทำหน้าที่ตามที่คาดหวังไว้ การสร้างสภาพแวดล้อมรอบ ๆ Infra ที่รวมถึงเซิร์ฟเวอร์และเครือข่ายเป็นสิ่งที่จำเป็น การพัฒนาระบบจะดำเนินการไปโดยมีสองล้อหลักคือ การสร้างโปรแกรมและรหัสแหล่งที่มา และการจัดเตรียมสภาพแวดล้อมรอบ ๆ Infra ที่สนับสนุนสภาพแวดล้อมการทำงาน มุมมองนี้ถือว่าสำคัญในการป้องกันปัญหาที่ไม่คาดคิด
สถานการณ์ที่ปัญหาด้าน Infrastructure ทำให้โปรเจคล้มเหลว
ในโปรเจคการพัฒนาระบบ อาจจะมีการเน้นไปที่การออกแบบโปรแกรมหรือ Source Code มากเกินไป และขาดมุมมองในการดูแลรักษา Infrastructure ซึ่งสิ่งนี้สามารถเกิดขึ้นได้จริง แต่ถ้าทั้งสองด้านไม่สามารถทำงานร่วมกันได้ อาจกลายเป็นความเสี่ยงที่ทำให้โปรเจคล้มเหลว
การขนาดของเซิร์ฟเวอร์ผิดพลาดทำให้เกิดความขัดแย้ง
ตัวอย่างเช่น หลังจากที่การสร้างและทดสอบโปรแกรมทั้งหมดเสร็จสิ้น สุดท้ายเราอาจพบว่า ประสิทธิภาพการประมวลผลของเซิร์ฟเวอร์ไม่เพียงพอ ทำให้ระบบไม่สามารถใช้งานได้จริง การประเมินว่าระบบจะรับภาระขนาดไหนในระยะการใช้งาน และการดูแลรักษา Infrastructure ที่เหมาะสมกับขนาดของระบบ เรียกว่า “Sizing” มีกรณีที่เกิดปัญหาและพัฒนาเป็นความขัดแย้งจากการขนาดของเซิร์ฟเวอร์ผิดพลาด ซึ่งเคยเกิดขึ้นจริงในอดีต (แม้ว่าจะได้รับการแก้ไขผ่านการประนีประนอม แต่ยังมีกรณีที่มีชื่อเสียงที่สามารถอ้างอิงได้) สำหรับวิธีการแก้ไขความขัดแย้งระหว่างทั้งสองฝ่ายผ่าน “การประนีประนอม” สามารถดูรายละเอียดได้ในบทความด้านล่างนี้
https://monolith.law/corporate/disputes-related-to-system-development[ja]
การที่ความขัดแย้งได้รับการแก้ไขผ่านการประนีประนอม หมายความว่า ความขัดแย้งได้รับการแก้ไขผ่าน “การสนทนา” ระหว่างทั้งสองฝ่าย ดังนั้น ไม่เหมือนกับกรณีที่ได้รับคำพิพากษาจากศาล สิ่งที่ได้จากการประนีประนอมไม่ได้สะสมเป็นตัวอย่างคดี และมักจะเป็นเรื่องที่เฉพาะเจาะจง
สาระสำคัญของกรณีคือ ขอบเขตของหน้าที่ในการตอบสนองต่อข้อกำหนดที่ไม่ชัดเจนของผู้ขาย
อย่างไรก็ตาม สาระสำคัญของความขัดแย้งนี้คือ “ผู้ขายควรรับผิดชอบในสิ่งที่ไม่ได้ระบุไว้ในข้อกำหนดอย่างไร” ถ้าพิจารณาจากมุมนี้ คุณจะได้รับคำแนะนำมากมายจากบทความด้านล่างนี้
https://monolith.law/corporate/system-development-specs-function[ja]
ในบทความด้านบน ได้อธิบายถึงขอบเขตของหน้าที่ในการสร้างและรับผิดชอบของผู้ขาย สำหรับสิ่งที่ไม่ได้ระบุไว้ในข้อกำหนด ที่นี่ ได้อธิบายถึงความแตกต่างระหว่าง “ส่วนที่สามารถมองเห็นได้ง่าย” (เช่น ส่วนที่เกี่ยวข้องกับหน้าจอ หรือ “Front-end”) และ “ส่วนที่เกี่ยวข้องกับ Logic” (เช่น การย้ายข้อมูล หรือ “Back-end” หรือ “Database”) นั่นคือ สำหรับ “ส่วนที่สามารถมองเห็นได้ง่าย” ที่ผู้สั่งซื้อ/ผู้ใช้ (ที่โดยปกติไม่มีความรู้เฉพาะทางเกี่ยวกับโปรเจคการพัฒนาระบบ) สามารถตรวจสอบปัญหาได้ง่าย มักจะถูกยอมรับว่าเป็นความผิดของผู้สั่งซื้อ/ผู้ใช้ ในขณะที่ “ส่วนที่เกี่ยวข้องกับ Logic” มักจะถูกยอมรับว่าเป็นความผิดของผู้รับสั่ง/ผู้ขาย ดังนั้น ถ้าพิจารณาจากมุมนี้ ปัญหาของการขนาดของเซิร์ฟเวอร์เป็นเรื่องที่ยากที่จะรู้ว่ามีปัญหาอยู่ที่ไหน ถ้าไม่ใช่ผู้เชี่ยวชาญด้านเทคนิค ดังนั้น มักจะถูกยอมรับว่าเป็นความผิดของผู้รับสั่ง/ผู้ขาย ดังนั้น ถ้าคุณต้องทำการฟ้องร้องในส่วนนี้ ถ้าไม่มีเหตุผลที่ชัดเจนที่จะยกเว้นความรับผิดชอบของผู้รับสั่ง/ผู้ขาย มักจะมีการตัดสินที่ไม่เป็นไปในทางของผู้รับสั่ง/ผู้ขาย
มาตรการป้องกันปัญหาจากความผิดพลาดในการขนาดของเซิร์ฟเวอร์
เพื่อป้องกันปัญหาที่กล่าวมาแล้ว การทำงานร่วมกันระหว่างการสร้างโปรแกรมและการเขียนรหัสแหล่งที่มา และการจัดเตรียมสภาพแวดล้อมรอบ ๆ สิ่งสำคัญคือการทำให้ทั้งสองด้านเข้าใจกัน มาตรการที่สามารถพิจารณาได้มีดังนี้
ทำให้ความรับผิดชอบเกี่ยวกับการขนาดของเซิร์ฟเวอร์ชัดเจนในสัญญา
ไม่จำกัดเฉพาะในกรณีเหล่านี้เท่านั้น ข้อพิพาทในโครงการพัฒนาระบบส่วนใหญ่มาจากความไม่ชัดเจนในการแบ่งหน้าที่ระหว่างผู้เชี่ยวชาญในการพัฒนาระบบและผู้ใช้ที่เข้าใจในสถานการณ์ภายในองค์กร แม้ว่าความร่วมมือที่แน่นแฟ้นระหว่างทั้งสองฝ่ายจะจำเป็นสำหรับความคืบหน้าที่ราบรื่นของโครงการ แต่ยังควรทำให้การแบ่งหน้าที่และขอบเขตความรับผิดชอบชัดเจนในสัญญาหรืออื่น ๆ มากที่สุดเท่าที่จะทำได้
ทำให้ข้อกำหนดการพัฒนาเป็นรายละเอียดและจัดการการเปลี่ยนแปลงอย่างสมบูรณ์
นอกจากนี้ ในกรณีที่ข้อกำหนดฟังก์ชันที่ควรจะสามารถทำได้เป็นคลุมเครือ ความเสี่ยงที่จะเกิดข้อพิพาทจะเพิ่มขึ้น นี่คือการทำให้ข้อกำหนดชัดเจนในขั้นตอนการกำหนดข้อกำหนดเริ่มแรกและการจัดการการเปลี่ยนแปลงในระหว่างโครงการ สำหรับวิธีการตอบสนองต่อการเปลี่ยนแปลงข้อกำหนดในระหว่างโครงการ กรุณาดูรายละเอียดในบทความด้านล่าง
https://monolith.law/corporate/howto-manage-change-in-system-development[ja]
เลือกโมเดลการพัฒนาที่เหมาะสมกับลักษณะของโครงการ
นอกจากนี้ สิ่งที่เกี่ยวข้องอย่างใกล้ชิดกับสองมาตรการด้านบน การเลือกโมเดลการพัฒนาที่เหมาะสมสำหรับลักษณะและขนาดของโครงการพัฒนาระบบเป็นสิ่งที่สำคัญ โดยทั่วไป ถ้าเป็นการพัฒนาระบบที่มีขนาดใหญ่พอที่การขนาดของเซิร์ฟเวอร์จะสำคัญ ความชัดเจนของข้อกำหนดและขอบเขตความรับผิดชอบจะเพิ่มขึ้นถ้าเลือกใช้โมเดลวอเตอร์ฟอลล์ สำหรับการเลือกโมเดลการพัฒนาที่เหมาะสมตามลักษณะของโครงการ กรุณาดูรายละเอียดในบทความด้านล่าง
https://monolith.law/corporate/legal-merits-and-demerits-of-development-model[ja]
สรุป
เพื่อให้การดำเนินโครงการพัฒนาระบบสามารถดำเนินไปอย่างราบรื่น ปัญหาที่เกิดจากการจัดเตรียมสภาพแวดล้อมทางด้านอินฟราสตรัคเจอร์อาจจะเป็นจุดที่มักถูกมองข้ามได้ การให้ความสนใจถึงปัญหาที่เกี่ยวข้องกับอินฟราสตรัคเจอร์อาจจะเป็นภาระที่ไม่เล็กน้อยสำหรับผู้ที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคโนโลยี อย่างไรก็ตาม มาตรการป้องกันปัญหาเหล่านี้อาจจะอยู่ในขั้นตอนขยายของมาตรการพื้นฐานอย่าง “การระบุข้อกำหนด/การจัดการการเปลี่ยนแปลงอย่างเข้มงวด” “การระบุบทบาท/ขอบเขตความรับผิดชอบ” และ “การเลือกโมเดลการพัฒนาที่สอดคล้องกับขนาดและงบประมาณของโครงการ” จุดที่คนที่ทำงานในด้านกฎหมายภายในองค์กรควรเข้าใจก่อนอื่นคือ มาตรการป้องกันปัญหาทางกฎหมายสามารถนำมาใช้กับปัญหาที่เกี่ยวข้องกับอินฟราสตรัคเจอร์ได้เพียงพอ นอกจากนี้ สำหรับวิศวกรทางด้าน IT การเข้าใจว่าปัญหาที่เกี่ยวข้องกับอินฟราสตรัคเจอร์สามารถกลายเป็นความเสี่ยงที่ทำให้โครงการล้มเหลวอย่างรุนแรง และการจัดการงานอย่างราบรื่นเป็นสิ่งที่สำคัญ
Category: IT
Tag: ITSystem Development