Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Cách đây một thời gian, có một cuộc trò chuyện giữa tôi và một người bạn tốt của tôi, trong đó người ta nghe thấy những câu sau:

— Số lượng lập trình viên sẽ không ngừng tăng lên - vì số lượng mã ngày càng tăng và ngày càng có nhiều nhà phát triển liên tục được yêu cầu hỗ trợ.
— Nhưng mã đã cũ, một số mã không còn được hỗ trợ. Thậm chí có khả năng là có một dạng cân bằng nào đó.

Nhớ lại chúng vài ngày sau, tôi tự hỏi liệu việc duy trì mã, đòi hỏi ngày càng nhiều tài nguyên theo thời gian, cuối cùng có thể làm tê liệt sự phát triển của chức năng mới hay nó sẽ yêu cầu số lượng lập trình viên tăng lên không giới hạn? Phân tích toán học và phương trình vi phân đã giúp đánh giá định tính sự phụ thuộc của lượng hỗ trợ vào phát triển và tìm ra câu trả lời cho các câu hỏi.

Câu hỏi một. Liệu có thể hỗ trợ “ăn hết” mọi nguồn lực phát triển?

Hãy xem xét một nhóm lập trình viên trong đó số lượng người tham gia là không đổi. Chia sẻ thời gian làm việc của họ Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? (Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?) được dành cho việc phát triển mã mới và phần thời gian còn lại Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? đi hỗ trợ. Trong các giả định của mô hình, chúng tôi giả định rằng loại hoạt động đầu tiên nhằm mục đích tăng khối lượng mã và loại hoạt động thứ hai nhằm mục đích thay đổi nó (sửa lỗi) và không có tác động đáng kể đến khối lượng mã.

Hãy biểu thị Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? toàn bộ số lượng mã được viết cho đến thời điểm đó Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?. Giả sử tốc độ viết mã tỷ lệ thuận Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?, chúng tôi nhận được:

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Điều tự nhiên là giả định rằng chi phí lao động để duy trì mã tỷ lệ thuận với khối lượng của nó:

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

hoặc

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Từ chổ nào

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Chúng ta thu được một phương trình vi phân có thể dễ dàng tích phân. Nếu tại thời điểm ban đầu số lượng mã bằng 0 thì

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Khi Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? chức năng Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?. Và điều này có nghĩa là giảm dần theo thời gian việc phát triển chức năng mới về 0 và chuyển tất cả các nguồn lực sang hỗ trợ.

Tuy nhiên, nếu trong thời gian Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? mã trở nên lỗi thời và không còn được hỗ trợ, sau đó là số lượng mã yêu cầu hỗ trợ tại một thời điểm Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? đã bằng rồi Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? Sau đó,

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

а Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? là nghiệm của phương trình vi phân có đối số chậm [1]:

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Nghiệm của phương trình như vậy được xác định duy nhất bằng cách xác định các giá trị Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? "trước sự khởi đầu của thời gian" Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?. Vì mã vẫn chưa được viết trước thời điểm ban đầu nên trong trường hợp của chúng tôi Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? khi Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?.

Hãy xem xét một vài ví dụ. Chúng tôi sẽ đo thời gian tính bằng năm và số lượng mã tính bằng hàng nghìn dòng. Sau đó Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? các giá trị ở hàng chục là chấp nhận được, chúng ta sẽ lấy 50 và 100. Tức là trong một năm, nhóm phát triển sẽ viết lần lượt là XNUMX và một trăm nghìn dòng mã. Vì Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? giá trị chấp nhận được có thể là: Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?, Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?, Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?. Điều này có nghĩa là nhóm phát triển có thể hỗ trợ số lượng mã mà họ viết trong một năm, cho dù đó là một phần tư, một nửa hay toàn thời gian. Là tuổi thọ trung bình của mã, chúng tôi sẽ đặt các giá trị sau: 1, 2 và 4 năm. Giải phương trình bằng số, ta thu được ví dụ về hành vi của hàm Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? đối với một số kết hợp tham số Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?.
Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?
Hành vi của chức năng Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? khi mã cũ đi, nó đã thay đổi. Chức năng không còn đơn điệu mà những biến động “dừng lại” theo thời gian và có xu hướng Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? đến một giá trị không đổi nào đó. Đồ thị cho thấy: càng nhiều Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?, Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? и Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?, nghĩa là, tuổi mã càng chậm thì tốc độ phát triển mã mới càng nhanh và chất lượng mã càng thấp thì càng có ít tài nguyên để phát triển chức năng mới. Có mong muốn đưa ra ít nhất một ví dụ trong đó Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? “rúc” gần bằng không. Nhưng điều này đòi hỏi phải lựa chọn các chỉ báo chất lượng phát triển rất kém và mã không bị cũ đi trong một thời gian dài. Ngay cả ở biểu đồ phía dưới bên trái, vẫn còn một lượng tài nguyên đáng kể dành cho chức năng mới. Do đó, câu trả lời đúng cho câu hỏi đầu tiên đúng hơn là thế này: về mặt lý thuyết - vâng, điều đó là có thể; thực tế - hầu như không.

Những câu hỏi không thể trả lời:

  1. Có đúng vậy không Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? có xu hướng tới một giới hạn nào đó tại Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? cho tất cả Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?? Nếu không dành cho tất cả mọi người thì dành cho ai?
  2. Nếu tồn tại một giới hạn thì giá trị của nó phụ thuộc như thế nào vào Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó??

Câu hỏi thứ hai. Việc bảo trì mã có thể khiến số lượng lập trình viên tăng trưởng không giới hạn không?

Hãy biểu thị Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? số lượng lập trình viên tham gia phát triển mã mới. Như trên, Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? — số lượng mã được viết tính đến một thời điểm Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?. sau đó

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Giữ cho việc hỗ trợ mã luôn bận rộn Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó? lập trình viên. Có tính đến mã lão hóa,

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Từ chổ nào

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Nếu Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?sau đó

Cần bao nhiêu lập trình viên để duy trì mã đã viết trước đó?

Do đó, câu trả lời cho câu hỏi thứ hai là phủ định: nếu số lượng nhà phát triển mã mới bị hạn chế, thì trong điều kiện mã cũ, việc hỗ trợ không thể khiến số lượng lập trình viên tăng lên không giới hạn.

Kết luận

Các mô hình được xem xét là các mô hình toán học “mềm” [2]. Chúng rất đơn giản. Tuy nhiên, sự phụ thuộc của kết quả mô phỏng vào các giá trị tham số tương ứng với những gì được mong đợi đối với các hệ thống thực, điều này chứng tỏ tính đầy đủ của các mô hình và đủ độ chính xác để thu được ước tính chất lượng cao.

Các tài liệu tham khảo

1. Elsgolts L.E., Norkin S.B. Giới thiệu lý thuyết về phương trình vi phân có đối số sai lệch. Mátxcơva. Nhà xuất bản "Khoa học". 1971.
2. Arnold V.I. Mô hình toán học “cứng” và “mềm”. Mátxcơva. Nhà xuất bản MCNMO. 2004.

Nguồn: www.habr.com

Thêm một lời nhận xét