MONOLITH LAW OFFICE+81-3-6262-3248Ngày làm việc 10:00-18:00 JST [English Only]

MONOLITH LAW MAGAZINE

IT

Ưu và nhược điểm pháp lý của từng mô hình phát triển hệ thống là gì?

IT

Ưu và nhược điểm pháp lý của từng mô hình phát triển hệ thống là gì?

Cách tiến hành dự án phát triển hệ thống có một phương pháp luận nhất định. Thông thường, khi tiếp tục học về các vấn đề pháp lý liên quan đến phát triển hệ thống thông qua sách vở, phương pháp truyền thống nhất được gọi là mô hình Waterfall thường được giả định. Tuy nhiên, không chỉ có mô hình Waterfall là phương pháp luận/mô hình để tiến hành phát triển hệ thống. Ví dụ, gần đây, phương pháp được gọi là mô hình phát triển Agile cũng được chọn nhiều hơn.

Bài viết này sẽ giải thích so sánh giữa hai mô hình Waterfall và Agile từ góc độ phòng ngừa rủi ro pháp lý và tranh chấp.

Định nghĩa về Mô hình phát triển

Định nghĩa về Mô hình Waterfall

Mô hình phát triển trong quá trình phát triển hệ thống là gì?

Phương pháp phát triển hệ thống phổ biến và cổ điển nhất là như sau:

  • Định rõ yêu cầu: Xác định chức năng mà hệ thống sắp tạo ra cần có, và các yêu cầu về đặc tả
  • Thiết kế cơ bản: Thiết kế tổng thể của hệ thống từ góc nhìn của người dùng, bao gồm thiết kế màn hình, chuyển đổi màn hình, v.v.
  • Thiết kế chi tiết: Thiết kế tổng thể của hệ thống từ góc nhìn của nhà phát triển, bao gồm các kết nối giữa các tệp chương trình, v.v.
  • Triển khai lập trình: Lập trình theo tài liệu thiết kế
  • Kiểm thử: Kiểm tra xem sản phẩm có đúng theo đặc tả hay không, và yêu cầu người dùng xác nhận

Phương pháp phát triển này, tiến triển từ nguồn dòng chảy xuống dưới mà không có sự trở lại hoặc thay đổi thứ tự, được gọi là “Mô hình Waterfall”. Dòng chảy này không phải lúc nào cũng cần thiết để tạo ra một hệ thống hoạt động. Tuy nhiên, trong việc phát triển hệ thống, thường đòi hỏi nhiều người và thời gian dài, việc lập kế hoạch trở nên quan trọng. Do đó, việc phân chia các công đoạn, sắp xếp vai trò, và làm rõ phạm vi trách nhiệm của mỗi người tham gia cũng được coi là quan trọng.

Định nghĩa về Mô hình phát triển Agile

Ngược lại, phương pháp tiến hành công việc phát triển không phải lúc nào cũng phù hợp với cách tiếp cận “từ nguồn dòng chảy đến hạ lưu”. Chắc chắn, do tính chất của công việc, kỹ năng lập kế hoạch và dự đoán là điểm quan trọng, không cần phải nói. Tuy nhiên, trong công việc liên quan đến việc tạo ra sản phẩm hoặc tác phẩm mới, việc lập kế hoạch hoàn hảo từ đầu thường là không thể. Nếu nhìn nhận điều này, không chỉ tiến hành công việc theo kế hoạch đã đặt ra, mà còn cần phải linh hoạt trong việc sửa đổi sau này, thay đổi đặc tả, và tăng số lần thử và sai. Phương pháp phát triển phản ánh cách tiếp cận này được gọi là “Mô hình phát triển Agile”. Trong Mô hình phát triển Agile, thường không tốn nhiều công sức vào việc chuẩn bị kế hoạch chi tiết hay tài liệu thiết kế, mà thay vào đó, lập trình và kiểm thử các chương trình nhỏ, từ từ biến chúng thành chương trình hoặc hệ thống lớn hơn.

Mô hình Waterfall giúp dễ học vấn đề pháp lý

Trước khi so sánh hai mô hình phát triển, trước hết, chúng tôi muốn nói về vấn đề pháp lý liên quan đến từng mô hình phát triển, cũng như việc thu thập thông tin và học hỏi pháp luật.

Hầu hết các sách tham khảo đều viết dựa trên mô hình Waterfall

Khi bạn muốn nghiên cứu vấn đề pháp lý liên quan đến phát triển hệ thống hoặc học kiến thức pháp lý, mô hình Waterfall là lựa chọn tốt nhất để thu thập thông tin. Hầu hết các sách pháp lý về phát triển hệ thống đều viết dựa trên mô hình Waterfall. Do phát triển hệ thống theo cách truyền thống và phổ biến thường tuân theo mô hình Waterfall, nên phát triển Agile chỉ được đề cập như một phần bổ sung, thường chỉ được giới thiệu sơ lược. Do đó, nếu bạn muốn thu thập thông tin từ sách về vấn đề pháp lý liên quan đến phát triển hệ thống, mô hình Waterfall sẽ giúp bạn tiến bộ nhanh hơn trong việc học.

Mô hình Waterfall có nhiều ví dụ vụ án

Ngoài ra, vì mô hình Waterfall là phương pháp phát triển hệ thống truyền thống và phổ biến, nên cũng có nhiều ví dụ vụ án thực tế đã xảy ra trong quá khứ. Trong thảo luận về pháp luật, không chỉ các điều khoản mà còn kiến thức về các vụ án trước đó cũng rất quan trọng. Ngay cả khi chỉ đọc nghĩa của các điều khoản mà không thể nói rõ là “trắng” hay “đen”, bạn cũng có thể bổ sung nội dung của các điều khoản bằng cách lấy kiến thức từ các vụ án trước đó.

Đôi khi, ngay cả khi không phải là luật pháp được viết rõ ràng, sự tích lũy của các quyết định mà tòa án đã đưa ra có thể được xem như là tiêu chuẩn quyết định giống như các điều khoản. Điều này được gọi là “lý thuyết pháp lý dựa trên các vụ án”. Ngay cả khi không chỉ nói về phát triển hệ thống, nếu có sự tích lũy của lý thuyết pháp lý dựa trên các vụ án trong một lĩnh vực đã biết, thậm chí đối với các tranh chấp chưa biết, việc dự đoán kết quả cuối cùng của tranh chấp có thể trở nên dễ dàng hơn. Đây là lợi ích lớn của việc phát triển hệ thống dựa trên mô hình Waterfall.

Ưu điểm của từng phương pháp phát triển

Ưu và nhược điểm của mô hình Waterfall và phát triển Agile là gì?

Dựa trên nội dung trên, chúng tôi sẽ tổng hợp ưu và nhược điểm của từng phương pháp, so sánh chúng với nhau. Phần đầu tập trung vào việc tổng hợp ưu điểm của mô hình Waterfall, càng về phía dưới, ưu điểm của phát triển Agile càng dễ hiểu.

So sánh về khả năng lập kế hoạch và dự báo

Về khả năng lập kế hoạch và dự báo, có thể nói rằng mô hình Waterfall có lợi thế. Dù hệ thống cần phát triển có quy mô lớn đến đâu, nó sẽ luôn được chia nhỏ thành từng giai đoạn từ “trên xuống dưới”. Nếu thiết lập thời hạn cho từng giai đoạn, việc quản lý tiến độ sẽ trở nên dễ dàng hơn.

Ngược lại, phát triển Agile là phương pháp không tốn nhiều chi phí và công sức cho việc lập kế hoạch trước và tạo ra ý tưởng toàn diện, do đó, nó có thể trở thành một cách tiếp cận tình huống.

So sánh về khả năng làm rõ vai trò và phạm vi trách nhiệm của từng cá nhân

Trong mô hình Waterfall, việc mỗi giai đoạn được chia nhỏ cụ thể hóa có lợi thế là có thể làm rõ vai trò của từng thành viên trong dự án.

Ngược lại, trong phát triển Agile, việc phân chia giai đoạn thường mơ hồ, do đó, có xu hướng mơ hồ về việc ai sẽ chịu trách nhiệm khi xảy ra sự cố không lường trước.

So sánh về khả năng phát triển quy mô lớn

Mô hình Waterfall, với ưu điểm về khả năng lập kế hoạch và phân chia vai trò, càng có lợi thế hơn khi phát triển quy mô lớn. Ngay cả khi tổ chức một số lượng lớn nhân viên, nếu chia nhỏ các giai đoạn và thúc đẩy phân công công việc, chi phí cho việc điều chỉnh mối quan hệ giữa con người có thể giảm.

Ngược lại, mô hình phát triển Agile không thích hợp cho việc phát triển quy mô lớn. Vì đây là một cách tiếp cận tập trung vào tốc độ bắt đầu hơn là khả năng lập kế hoạch và phân chia vai trò, nên khó áp dụng trong các tình huống có nguy cơ trễ hạn cuối cùng.

So sánh về tốc độ và hiệu quả

Phát triển Agile bắt đầu nhanh hơn

Về tốc độ từ khi người dùng có yêu cầu về chức năng cho đến khi nó được triển khai thực tế, mô hình phát triển Agile có lợi thế. Đó là bởi vì, trong mô hình Waterfall, người phụ trách giai đoạn trên và dưới thường được phân biệt rõ ràng, làm tăng thời gian giao tiếp nội bộ của nhà cung cấp. Điều này dẫn đến việc tốn nhiều thời gian cho giao tiếp, dễ dàng trở nên yếu đối với yêu cầu thay đổi thông số kỹ thuật sau cùng.

Ngược lại, mô hình phát triển Agile có thể bắt đầu và thực hiện nhanh chóng mà không cần thông qua một trung gian. Điều này liên quan chặt chẽ đến lợi ích lớn nhất của mô hình phát triển Agile, đó là khả năng dễ dàng đối phó với thay đổi thông số kỹ thuật sau cùng. Tuy nhiên, ngay cả với mô hình phát triển Agile, nếu tiếp tục đáp ứng một cách mờ nhạt đối với yêu cầu thay đổi thông số kỹ thuật và phát triển thêm, điều đó có thể trở thành rủi ro khiến dự án “bốc cháy”. Vì lý do này, quản lý thay đổi là chìa khóa để thành công trong việc phát triển hệ thống bằng mô hình phát triển Agile. Chi tiết về quản lý thay đổi được trình bày trong bài viết dưới đây.

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

Mô hình Waterfall ít khả năng bị đình trệ giữa chừng hơn

Ngược lại, khi so sánh từ góc độ tốc độ và hiệu quả, quan trọng là phải xem xét trên trục thời gian dài hạn. Nếu xem xét rủi ro khi dự án bị “bốc cháy” giữa chừng và không tiến triển từ đó, mô hình Waterfall có lợi thế. Rủi ro lớn nhất gây ra tình huống dự án bị đình trệ giữa chừng là sự thiếu giao tiếp giữa người dùng và nhà cung cấp. Mô hình Waterfall, dễ dàng làm rõ sự phân chia vai trò giữa hai bên, có lợi thế ở điểm này.

Phát triển Agile dễ dàng tiến triển mượt mà hơn ở giai đoạn kiểm tra

Tuy nhiên, từ góc độ dễ dàng tiến hành cuộc thảo luận ở giai đoạn kiểm tra, mô hình phát triển Agile có lợi thế nhất định. Đó là bởi vì, giữa người dùng và nhà cung cấp, việc chia sẻ thông tin chi tiết ngay cả trong quá trình phát triển hệ thống là điều cần thiết. Điều này giúp giảm rủi ro khi sự khác biệt trong nhận thức giữa hai bên bất ngờ xuất hiện khi nhìn vào sản phẩm cuối cùng. Thêm vào đó, giải thích về bước kiểm tra phát triển hệ thống và các vấn đề pháp lý liên quan đến nó được xử lý chi tiết trong bài viết dưới đây.

Tóm tắt

Như vậy, khi so sánh, chúng ta có thể tổng quát rằng, mô hình Waterfall phục vụ cho việc quản lý một cách triệt để, trong khi mô hình phát triển Agile tập trung vào tốc độ từ khi bắt đầu cho đến khi thực hiện. Đối với các vấn đề pháp lý liên quan đến phát triển hệ thống dựa trên mô hình phát triển Agile, chúng tôi đã xử lý chi tiết trong bài viết dưới đây.

Việc lựa chọn mô hình phát triển nào phù hợp không chỉ dựa trên quan điểm pháp lý, mà còn cần xem xét tổng thể dựa trên quy mô dự án, ngân sách, mục tiêu, v.v. Chúng tôi tin rằng đây là một quyết định cần được đưa ra một cách toàn diện.

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:

Quay lại Lên trên