MONOLITH LAW OFFICE+81-3-6262-3248วันธรรมดา 10:00-18:00 JST [English Only]

MONOLITH LAW MAGAZINE

IT

คืออะไรบางอย่างที่เป็นข้อดีและข้อเสียทางกฎหมายสำหรับแต่ละโมเดลการพัฒนาในการพัฒนาระบบ

IT

คืออะไรบางอย่างที่เป็นข้อดีและข้อเสียทางกฎหมายสำหรับแต่ละโมเดลการพัฒนาในการพัฒนาระบบ

วิธีการดำเนินโครงการพัฒนาระบบมีวิธีการที่เฉพาะเจาะจง โดยปกติแล้ว เมื่อเราเรียนรู้เกี่ยวกับปัญหาทางกฎหมายที่เกี่ยวข้องกับการพัฒนาระบบจากหนังสือหรือแหล่งข้อมูลอื่น ๆ มักจะมีการสมมติว่าเราใช้วิธีการที่เรียกว่า “Waterfall Model” หรือ แบบจำลองน้ำตก ซึ่งเป็นวิธีการที่เก่าแก่ที่สุด แต่วิธีการหรือแบบจำลองที่ใช้ในการพัฒนาระบบไม่ได้จำกัดเฉพาะที่แบบจำลองน้ำตกเท่านั้น ตัวอย่างเช่น ในปัจจุบันมีการเลือกใช้วิธีการที่เรียกว่า “Agile Development Model” หรือ แบบจำลองการพัฒนาแบบอไจล์ มากขึ้น

ในบทความนี้ เราจะอธิบายและเปรียบเทียบระหว่างแบบจำลองน้ำตกและแบบจำลองการพัฒนาแบบอไจล์ โดยมุ่งเน้นที่การจัดการความเสี่ยงทางกฎหมายและการป้องกันความขัดแย้ง

คืออะไรคือโมเดลการพัฒนา

คืออะไรคือโมเดลวอเตอร์ฟอลล์

โมเดลการพัฒนาในการดำเนินการพัฒนาระบบคืออะไร?

วิธีการที่ทั่วไปและคลาสสิกที่สุดในการพัฒนาระบบคือดังต่อไปนี้:

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

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

คืออะไรคือโมเดลการพัฒนาแบบอ agile

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

การเรียนรู้ปัญหาทางกฎหมายง่ายด้วยโมเดลวอเตอร์ฟอลล์

ก่อนที่เราจะเปรียบเทียบระหว่างโมเดลการพัฒนาทั้งสอง, ขอกล่าวถึงปัญหาทางกฎหมายที่เกี่ยวข้องกับแต่ละโมเดลการพัฒนา, และความง่ายในการเก็บข้อมูลและการเรียนรู้กฎหมายเป็นข้อพื้นฐาน.

หนังสืออ้างอิงส่วนใหญ่เขียนอยู่บนพื้นฐานของโมเดลวอเตอร์ฟอลล์

เมื่อคุณพยายามศึกษาปัญหาทางกฎหมายที่เกี่ยวข้องกับการพัฒนาระบบหรือความรู้ทางกฎหมาย, โมเดลวอเตอร์ฟอลล์มีข้อได้เปรียบในการเก็บข้อมูล. หนังสือกฎหมายที่พูดถึงการพัฒนาระบบส่วนใหญ่เขียนอยู่บนพื้นฐานของโมเดลวอเตอร์ฟอลล์. เนื่องจากการพัฒนาระบบแบบคลาสสิกและทั่วไปจะดำเนินการตามโมเดลวอเตอร์ฟอลล์, การพัฒนาแบบอ agile จึงมีการวางตำแหน่งเพียงเล็กน้อยและมักจะถูกนำเสนออย่างคร่าวๆ. ดังนั้น, ถ้าคุณต้องการข้อมูลจากหนังสือเกี่ยวกับปัญหาทางกฎหมายที่เกี่ยวข้องกับการพัฒนาระบบ, โมเดลวอเตอร์ฟอลล์จะทำให้การเรียนรู้ง่ายขึ้น.

โมเดลวอเตอร์ฟอลล์มีการสะสมคดีศาลมาก

นอกจากนี้, โมเดลวอเตอร์ฟอลล์เป็นวิธีการพัฒนาระบบแบบคลาสสิกและทั่วไป, ดังนั้นมีการสะสมคดีที่เกิดขึ้นจริงในอดีตมากมาย. ในการอภิปรายกฎหมาย, ความรู้เกี่ยวกับคดีศาลในอดีตเป็นสิ่งสำคัญเท่ากับข้อความของกฎหมาย. ในบางกรณีที่ไม่สามารถกำหนดได้ว่าเป็น “ขาว” หรือ “ดำ” จากการอ่านข้อความของกฎหมายเท่านั้น, คุณสามารถเติมเต็มเนื้อหาของกฎหมายโดยการได้รับความรู้จากคดีศาลในอดีต.

แม้ว่าจะไม่ได้ระบุไว้ในกฎหมายที่เขียนไว้ชัดเจน, การสะสมการตัดสินของศาลอาจจะถูกตั้งขึ้นเป็นมาตรฐานการตัดสินเหมือนกับข้อความของกฎหมาย. สิ่งเหล่านี้เรียกว่า “หลักการตามคดีศาล”. ในบริบทของการพัฒนาระบบหรืออื่น ๆ, ถ้ามีการสะสมหลักการตามคดีศาลอยู่แล้ว, แม้ว่าจะเป็นความขัดแย้งที่ไม่รู้จัก, การทำนายผลของความขัดแย้งสุดท้ายอาจจะง่ายขึ้น. โมเดลวอเตอร์ฟอลล์ที่ใช้ในการพัฒนาระบบมีข้อได้เปรียบในด้านนี้.

ข้อดีของแต่ละวิธีการพัฒนา

ข้อดีและข้อเสียของโมเดลวอเตอร์ฟอลล์และการพัฒนาแบบ Agile คืออะไรบ้าง?

ด้วยเนื้อหาที่ได้กล่าวมาข้างต้น ต่อไปนี้เราจะจัดเรียงข้อดีและข้อเสียของแต่ละวิธีการพัฒนาโดยเปรียบเทียบกัน ในส่วนแรกจะเป็นการจัดเรียงข้อดีของโมเดลวอเตอร์ฟอลล์เป็นหลัก และยิ่งไปถึงส่วนล่าง ข้อดีของการพัฒนาแบบ Agile จะเป็นที่เข้าใจได้ง่ายขึ้น

การเปรียบเทียบในด้านการวางแผนและความสามารถในการมองเห็นภาพรวม

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

ในทางกลับกัน, การพัฒนาแบบ Agile นั้นเป็นวิธีการที่ไม่ใช้ค่าใช้จ่ายหรือแรงงานมากมายในการวางแผนล่วงหน้าหรือการมองภาพรวมของระบบทั้งหมด, ดังนั้นจึงมีโอกาสที่จะกลายเป็นวิธีการที่เน้นไปที่การตอบสนองต่อสถานการณ์ที่เกิดขึ้น

การเปรียบเทียบความง่ายในการชัดเจนของบทบาทและขอบเขตความรับผิดชอบของแต่ละบุคคล

ในรูปแบบวอเตอร์ฟอลล์ (Waterfall Model) ขั้นตอนการทำงานจะถูกแบ่งออกเป็นส่วนย่อยๆ ทำให้สามารถทำให้บทบาทของสมาชิกในโปรเจคแต่ละคนชัดเจนได้ ซึ่งเป็นข้อได้เปรียบ

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

การเปรียบเทียบความง่ายในการพัฒนาขนาดใหญ่

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

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

การเปรียบเทียบความรวดเร็วและประสิทธิภาพ

การพัฒนาแบบ Agile เริ่มต้นได้เร็วกว่า

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

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

https://monolith.law/corporate/howto-manage-change-in-system-development[ja]

การพัฒนาแบบ Waterfall มีโอกาสน้อยกว่าที่จะล้มเหลวระหว่างทาง

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

การพัฒนาแบบ Agile ทำให้การตรวจรับผลงานดำเนินไปได้ราบรื่น

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

https://monolith.law/corporate/estimated-inspection-of-system-development[ja]

สรุป

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

https://monolith.law/corporate/legal-and-contract-issues-of-agile-development[ja]

การเลือกรูปแบบการพัฒนาที่เหมาะสมนั้น นอกจากจะต้องพิจารณาจากมุมมองของกฎหมายแล้ว ยังต้องพิจารณาจากขนาดของโปรเจค งบประมาณ และวัตถุประสงค์ ดังนั้น ควรตัดสินใจอย่างครอบคลุม

Managing Attorney: Toki Kawase

The Editor in Chief: Managing Attorney: Toki Kawase

An expert in IT-related legal affairs in Japan who established MONOLITH LAW OFFICE and serves as its managing attorney. Formerly an IT engineer, he has been involved in the management of IT companies. Served as legal counsel to more than 100 companies, ranging from top-tier organizations to seed-stage Startups.

Category: IT

Tag:

กลับไปด้านบน