Nhà phát triển C # có thể tạo ra bao nhiêu dòng mã mỗi tháng? [đóng cửa]


21

Một giám đốc tại nơi làm việc của tôi đã hỏi tôi và nhóm các nhà phát triển của tôi câu hỏi:

Nhà phát triển C # có thể tạo ra bao nhiêu dòng mã mỗi tháng?

Một hệ thống cũ đã được chuyển đến C # và anh ấy muốn biện pháp này là một phần của kế hoạch dự án.

Từ một số nguồn (có vẻ đáng tin cậy), anh ta đã có câu trả lời là "10 SLOC / tháng " nhưng anh ta không hài lòng với điều đó.

Nhóm đồng ý rằng điều này gần như không thể chỉ định vì nó sẽ phụ thuộc vào một danh sách dài các tình huống. Nhưng chúng ta có thể nói rằng người đàn ông sẽ không rời đi (hoặc rất thất vọng về chúng ta) nếu chúng ta không đưa ra câu trả lời phù hợp với anh ta hơn. Vì vậy, ông đã rời đi với câu trả lời tốt hơn nhiều lần về "10 SLOC / ngày "

Câu hỏi này có thể được trả lời không? (trực tiếp hoặc thậm chí với một số phân tích)


7
Những dòng đó cần phải có bất kỳ chất lượng nhúng? > _>
dr Hannibal Lecter

4
Nó có thể là mã máy tính tạo ra? Nếu vậy, tôi khá chắc chắn rằng tôi có thể truy cập vào tiền tố nguồn Zetta (10 ^ 21) theo dòng, với phần cứng phù hợp. Nó sẽ không làm bất cứ điều gì, làm phiền bạn ...
GrandmasterB

6
Nguồn đáng tin cậy: Tháng người đàn ông huyền thoại.
Martin York

2
Một woodchuck có thể làm được bao nhiêu gỗ nếu một woodchuck có thể chuck gỗ? Tôi không thể tin câu hỏi này vẫn đang được hỏi! Cái gì, đây là năm 1975? Có nhiều câu hỏi hay hơn, như "Đội ngũ phát triển đã triển khai thành công bao nhiêu hệ thống trong năm nay?" hoặc "Có bao nhiêu giờ mỗi tháng đã được lưu bằng hệ thống hiện tại so với trước đây?" Câu hỏi nên có giá trị, không phải số lượng của một số liệu không liên quan.
Mark Freedman

3
Câu hỏi không nên được trả lời bởi vì nó dựa trên các giả định sai lầm như "càng nhiều càng tốt" hoặc "nhiều mã hơn có nghĩa là chất lượng hơn".
ThomasX

Câu trả lời:


84

Hỏi giám đốc của bạn có bao nhiêu trang hợp đồng mà luật sư của anh ta có thể viết mỗi tháng. Sau đó (hy vọng) anh ta sẽ nhận ra rằng có một sự khác biệt rất lớn giữa việc viết một hợp đồng một trang và viết một hợp đồng 300 trang mà không có sơ hở và mâu thuẫn. Hoặc giữa việc viết một hợp đồng mới và thay đổi một hợp đồng hiện có. Hoặc giữa việc viết một hợp đồng mới và dịch nó sang một ngôn ngữ khác. Hoặc đến một hệ thống luật khác. Có lẽ anh ta thậm chí sẽ đồng ý rằng "các trang hợp đồng trên mỗi đơn vị thời gian" không phải là một thước đo rất tốt cho năng suất của luật sư.

Nhưng để cung cấp cho bạn một số câu trả lời cho câu hỏi thực sự của bạn: Theo kinh nghiệm của tôi, đối với một dự án mới, vài trăm SLOC mỗi ngày và nhà phát triển không phổ biến. Nhưng ngay khi những con bọ đầu tiên xuất hiện, con số này sẽ giảm mạnh.


18
Con số đó thậm chí có thể giảm mạnh đến mức rơi vào tiêu cực ...
Hans Ke vào

Nó không phải là một sự tương tự chính xác. Hoàn toàn ổn khi hỏi một dịch giả về bao nhiêu trang của một văn bản tiếng Anh anh ta có thể dịch sang tiếng Đức trong một tuần. Và họ đang chuyển một ứng dụng từ ngôn ngữ / nền tảng này sang ngôn ngữ khác, tương tự như bản dịch.
SK-logic

4
@ SK-Logic phải không? Hãy thử dịch một cuộc trò chuyện ngẫu nhiên, sau đó thử dịch một tài liệu pháp lý dài.
BlackICE

@ SK-logic - Mỗi dòng trong tài liệu nguồn được dịch thường sẽ được ánh xạ thành một dòng trong tài liệu đích - đó là ánh xạ tuyến tính. Khi nói đến phần mềm, không có khả năng hai ngôn ngữ lập trình đủ tương tự về cấu trúc và khả năng để có thể mong đợi giống nhau. Có khả năng sẽ có nhiều lĩnh vực có thể tiết kiệm và một số khu vực, nơi bạn sẽ có nhiều mã tương đối để viết.
cjmUK

1
@KristofProvost, bản dịch 1 kèm 1 thường là điểm khởi đầu cho quá trình tái cấu trúc dài và đau đớn. Nhưng nó là cần thiết để có được một cái gì đó làm việc đầu tiên. Và trong tất cả các dự án dịch thuật mà tôi đã gặp, động lực chính là sự lão hóa của chuỗi công cụ ban đầu (ví dụ: PL / I sang C ++) và thiếu tự tin vào tương lai của nó. Mã sạch và thành ngữ chưa bao giờ là ưu tiên hàng đầu trong các dự án như vậy.
SK-logic

33

Nhà phát triển C # có thể tạo ra bao nhiêu dòng mã mỗi tháng?

Nếu họ tốt, ít hơn không.


5
+1: Khi duy trì mã kế thừa, chúng tôi cố gắng đăng ký LỘC âm (trong khi duy trì hoặc cải thiện chức năng). Một trong những đồng nghiệp của tôi đã quản lý để xóa hơn 2.500 dòng mã trong một lần đăng ký. Việc tái cấu trúc đó khiến anh mất khoảng một tuần, nhưng trung bình tổng thể vẫn còn hơn -300 dòng mỗi ngày. :-)
Peter K.

Đo lường bằng các dòng mã giảm cũng vô nghĩa khi nó rơi vào cùng một cái bẫy - số dòng mã đó là một phép đo hợp lệ của bất cứ thứ gì ngoài số dòng mã. Cung cấp cho tôi 40.000 dòng mã tốt trên 10.000 dòng mì spaghetti không thể đọc được, bị lỗi mỗi ngày.
Maximus Minimus

1
Tất nhiên nó là vô nghĩa @mh. đây là câu trả lời nhiều hơn
quentin-starin

21

Chạy theo cách khác ... Bây giờ.

LoC là một trong những số liệu tồi tệ nhất bạn có thể sử dụng.

Các nhà phát triển tồi có khả năng viết nhiều LoC mỗi ngày hơn các nhà phát triển giỏi, nhưng lại tạo ra mã rác.

Tùy thuộc vào độ phức tạp của mã, việc chuyển cổng có thể được thực hiện bằng các quy trình tự động hóa, điều này sẽ dẫn đến hàng ngàn + LoC thay đổi mỗi ngày, trong khi các phần khó hơn trong đó các cấu trúc ngôn ngữ được mã hóa khác nhau được chuyển đến 100LoC mỗi ngày.

Gửi anh ấy để đọc trang Wikipedia trên SLOC . Nếu đưa ra một số ví dụ đẹp và đơn giản về lý do tại sao nó là một số liệu kém như vậy.


1
MxGrath: SLOC chỉ tệ khi đo tiến độ, nhưng nó thường có thể sử dụng để đo độ phức tạp tổng thể, đặc biệt. kể từ đó, như Les Hatton đã chỉ ra, "McCabe Cyclomatic Complexity có khả năng dự đoán tương tự như các dòng mã."
thuốc

18

Câu trả lời đúng: Không ...

Điều hành này cần được giáo dục, rằng SLOC không phải là số liệu hợp lệ cho tiến trình phân tích

Câu trả lời cẩu thả: Bất kỳ số nào bạn có thể tạo nên.

Chỉ cần cho anh ta một số, bạn và nhóm của bạn có thể dễ dàng làm cho số đó lên. (Bằng cách đặt trừ khi dòng, dòng trống, bình luận, v.v., chỉ để cho phép anh chàng này tiếp tục sống trong thế giới tưởng tượng của mình, và ám ảnh một đội khác và tiếp tục chu kỳ củng cố đau khổ tạo nên một câu chuyện cho thed Dailywtf.

Không đẹp, nhưng có thể.


Tôi sẽ phải nói rằng các ý kiến có thể làm tăng tính hữu ích của mã, mặc dù.
Nitrodist

2
@Nitrodist thực sự là những bình luận tốt, những bình luận mà tôi đang đề cập chỉ được sử dụng để "làm cho" điều hành hạnh phúc. Điều đó sẽ hoàn toàn vô dụng ...
Zekta Chan

10

Ngay từ cái nhìn đầu tiên, câu hỏi này trông hoàn toàn ngu ngốc, và mọi người ở đây chỉ trả lời cho phần C # LoC ngu ngốc của nó. Nhưng có một sắc thái quan trọng - đó là câu hỏi về hiệu suất chuyển . Cách đúng để đặt câu hỏi này là hỏi, có bao nhiêu dòng mã của dự án nguồn (dự án được chuyển) mà một nhà phát triển có thể xử lý trong một đơn vị thời gian nhất định. Đó là một câu hỏi hoàn toàn hợp lý, vì tổng số dòng mã được biết đến, và đó chính xác là số lượng công việc phải hoàn thành. Và cách đúng để trả lời câu hỏi này là thu thập một chút dữ liệu lịch sử - làm việc trong một tuần và đo lường hiệu suất của từng nhà phát triển.


1
Làm thế nào đây là một dấu hiệu của số lượng chính xác của công việc phải được thực hiện? Nếu bạn cần chuyển 1000 dòng mã, có thể chuyển nó thành 50 dòng mã nếu thư viện có sẵn / chức năng hiện có, v.v. được sử dụng. Và nó cũng có thể mất 50 dòng để chuyển 100 dòng mã hiện có. Hoàn toàn phụ thuộc vào mã.
Mark Freedman

Tôi đã nói rằng một số nguồn của LoC là một số liệu thích hợp, không phải đầu ra.
SK-logic

2
Tôi không đồng ý. Nếu các phần của mã tồn tại trong bản gốc không có ý nghĩa trong cổng, thì chúng không bao giờ được coi là "được chuyển" và do đó, không bao giờ được tính. OTOH, tạo một tính năng và bộ hỗ trợ cho bản gốc có thể đưa ra một dấu hiệu có ý nghĩa hơn về tiến trình hoàn thành. Nói một cách đơn giản, số liệu tiến độ chỉ xứng đáng với nỗ lực mà người ta sẵn sàng bỏ ra để tạo và duy trì nó.
mummey

1
@mummey, các hiệu ứng bạn đang nói chỉ là biến động, chúng nên biến mất trên cơ sở thống kê đủ lớn.
SK-logic

7

Tôi chỉ có một điều để nói:

Đo lường tiến trình lập trình theo dòng mã giống như đo tiến độ chế tạo máy bay theo trọng lượng.

- Bill Gates

Sau đó, bạn có thể lập luận rằng Bill Gates đã không biết cách tạo ra phần mềm thành công;)

Lưu ý: SLOC là một thước đo rất tốt về độ phức tạp của mã cơ sở!


5
I 
can
write
large
numbers
of
lines
of
code
per
month.

Trên thực tế, tỷ lệ thuận với số lượng từ.

Bạn thấy quan điểm của tôi?


1
Hầu hết các công cụ tạo số liệu thống kê cục bộ cung cấp cho bạn các LỘC logic - tức là "câu lệnh mã" chứ không phải "dòng trình soạn thảo". Vì vậy, câu trả lời của bạn sẽ nhận được điểm 1 LLOC. Họ cũng tạo ra các số liệu hữu ích như tỷ lệ nhận xét cho mã và độ phức tạp của mã, vì vậy chúng không hoàn toàn vô dụng.
gbjbaanb

1
@gbjbaanb Đó chỉ là một loại vô dụng. Ngôn ngữ khai báo không có câu lệnh hoặc, do đó, "dòng câu lệnh". Mã tốt có thể được tự ghi lại bằng tên định danh lành mạnh thay vì nhận xét. Các mã khác được viết bằng đồ họa nhiều hơn khi không có khái niệm "dòng" có ý nghĩa, ví dụ: sổ ghi chép Mathicala.
Jon Harrop

4

Tôi có thể có lập trường hơi khác về vấn đề này, nhưng tôi nghĩ tôi có thể hiểu tại sao giám đốc điều hành tìm kiếm thông tin này nếu họ hiện đang lập kế hoạch dự án. Vì khó có thể ước tính thời gian dự án sẽ diễn ra trong bao lâu, một trong những phương pháp được sử dụng (xem: Ước tính phần mềm: Làm sáng tỏ nghệ thuật đen ) là ước tính dự án sẽ mất bao lâu trên cơ sở số lượng SLOC trong các dự án tương tự và bây giờ có thể các nhà phát triển sản xuất trung bình. Trong thực tế, điều này có nghĩa là được thực hiện bằng cách sử dụng các hồ sơ lịch sử mà nhóm có trong tay cho các dự án tương tự với các nhà phát triển tương tự hoặc tương tự.

Tuy nhiên, điều đáng giá là những ước tính này chỉ có ý nghĩa đối với việc lập kế hoạch dự án cơ bản và thực sự không có ý định thiết lập tốc độ của các nhà phát triển cho dự án vì mọi thứ thay đổi từ ngày này sang ngày khác. Do đó, hầu hết những gì bạn đọc khi sử dụng SLOC làm công cụ ước tính là chúng sẽ hoạt động tốt trong thời gian dài nếu bạn đã có kiến ​​thức tốt, nhưng tệ hại khi sử dụng hàng ngày.


4

Nói chung là một ý tưởng tồi khi gọi sếp của bạn là một thằng ngốc, vì vậy các đề xuất của tôi bắt đầu bằng việc hiểu và thảo luận về các số liệu, thay vì từ chối chúng.

Một số người không thực sự được coi là kẻ ngốc đã sử dụng các số liệu dựa trên các dòng mã. Fred Brooks, Barry Boehm, Capers Jones, Watts Humphries, Michael Fagan và Steve McConnell đều sử dụng chúng. Bạn có thể đã sử dụng chúng ngay cả khi chỉ để nói với đồng nghiệp, mô-đun Thần này là 4000 dòng, nó cần được chia thành các lớp nhỏ hơn.

Có dữ liệu cụ thể liên quan đến câu hỏi này từ một nguồn mà nhiều người trong chúng ta tôn trọng.

http://www.codinghorror.com/blog/2006/07/diseconomies-of-scale-and-lines-of-code.html

http: //www.codinghorror.com/blog/2005/08/are-all-programming-lacular-the-same.html

http://discuss.joelonsoftware.com/default.asp?joel.3.286106.22

Tôi nghi ngờ rằng việc sử dụng dòng mã tốt nhất cho mỗi giờ lập trình viên là để cho thấy rằng trong suốt vòng đời của dự án, giá trị này sẽ bắt đầu khá cao, nhưng khi các lỗi được tìm thấy và sửa chữa, các dòng mã mới sẽ được thêm vào để giải quyết các vấn đề không phải là một phần của ước tính ban đầu và các dòng mã được loại bỏ để loại bỏ trùng lặp và cải thiện hiệu quả sẽ cho thấy LỘC / giờ chỉ ra những thứ khác ngoài năng suất.

  • Khi mã được viết nhanh, cẩu thả, cồng kềnh và không có bất kỳ nỗ lực tái cấu trúc nào, hiệu quả rõ ràng sẽ ở mức cao nhất. Đạo đức ở đây sẽ là bạn phải cẩn thận cho những gì bạn đo lường.
  • Đối với một nhà phát triển cụ thể, nếu họ thêm hoặc chạm vào số lượng mã lớn trong tuần này, tuần tới có thể có một khoản nợ kỹ thuật phải trả về việc xem xét mã, kiểm tra, gỡ lỗi và làm lại.
  • Một số nhà phát triển sẽ làm việc với tỷ lệ đầu ra phù hợp hơn so với những người khác. Có thể thấy rằng họ dành nhiều thời gian nhất để có được những câu chuyện hay của người dùng, quay vòng rất nhanh và thực hiện các bài kiểm tra đơn vị tương ứng, sau đó quay lại và nhanh chóng tạo mã chỉ tập trung vào các câu chuyện của người dùng. Điều đáng nói ở đây là các nhà phát triển có phương pháp có thể sẽ quay vòng nhanh, sẽ viết mã nhỏ gọn và làm lại thấp vì họ hiểu rất rõ vấn đề và giải pháp trước khi bắt đầu viết mã. Có vẻ hợp lý rằng họ sẽ viết mã ít hơn vì họ chỉ viết mã sau khi họ nghĩ thông qua, thay vì trước và sau.
  • Khi mã được đánh giá cho mật độ khiếm khuyết của nó, nó sẽ được tìm thấy là ít hơn thống nhất. Một số mã sẽ chiếm phần lớn các rắc rối và khiếm khuyết. Nó sẽ là một ứng cử viên để viết lại. Khi điều đó xảy ra, nó sẽ trở thành mã đắt nhất bởi vì mức độ làm lại cao. Nó sẽ có tổng số dòng mã cao nhất (được thêm, xóa, sửa đổi, như có thể được báo cáo từ một công cụ như CVS hoặc SVN), nhưng các dòng mã thấp nhất mỗi giờ được đầu tư. Điều này cuối cùng có thể là sự kết hợp của mã hoặc thực hiện vấn đề phức tạp nhất hoặc giải pháp phức tạp nhất.

Bất kể cuộc tranh luận về năng suất lập trình viên trong các dòng mã hóa ra như thế nào, bạn sẽ thấy rằng bạn cần nhiều nhân lực hơn khả năng của mình và hệ thống sẽ không bao giờ được hoàn thành kịp thời gian. Bạn công cụ thực sự không phải là số liệu. Họ đang sử dụng phương pháp ưu việt, nhà phát triển tốt nhất bạn có thể thuê hoặc đào tạo và kiểm soát phạm vi và rủi ro (có thể bằng phương pháp Agile).


The take away here is that methodical developers will probably have quick turn around, will write compact code, and have low rework.Không đồng ý. Đó là tua thấp hoặc quay vòng nhanh. Được rồi, tùy chọn thứ 3 bị đốt cháy và rời khỏi sự nghiệp của nhà phát triển.
Neolisk

3

Cung cấp cho anh ta một số liệu tốt hơn để làm việc với

Thay vì LỘC , giải thích đây là những số liệu tồi tệ nhất để sử dụng. Sau đó, đưa cho anh ta một sự thay thế:

Số chức năng / Tính năng cho mỗi tính năng / Yêu cầu chức năng -> NOFF / RFF

Bạn có thể cần thêm trọng số / chuẩn hóa lên trên NOFF / RFF, để phục vụ cho số lượng yêu cầu mỗi tuần.

:) rõ ràng ở trên được tạo thành, nhưng bất cứ điều gì, tốt hơn SLOC ...


3

Tôi có thể nói với bạn rằng một khối lượng các nhà thầu cho một dự án lớn đã viết 15000 LỘC (mỗi) trong một năm. Đó là một câu trả lời cực kỳ khó hiểu, nhưng nó rất hữu ích với chúng tôi khi chúng tôi có 400.000 C ++ LoC hiện có và chúng tôi có thể hình dung rằng việc chuyển đổi tất cả thành C # sẽ khiến chúng tôi mất khoảng 26 năm để hoàn thành. Cho hoặc nhận.

Vì vậy, bây giờ chúng ta đã biết thứ tự lớn về độ lớn, chúng ta có thể lập kế hoạch tốt hơn cho nó - nhận 20 dev và ước tính công việc một năm cho tất cả chúng sẽ ổn. Trước khi đếm, chúng tôi không biết phải mất bao lâu để di chuyển.

Vì vậy, lời khuyên của tôi dành cho bạn là hãy kiểm tra tất cả các mã bạn đã viết trong một khoảng thời gian cụ thể (tôi may mắn có một dự án mới để làm việc), sau đó chạy một trong nhiều công cụ số liệu mã trên đó. Chia số cho thời gian và bạn có thể cho anh ta một câu trả lời chính xác - bạn thực sự viết bao nhiêu LỘC mỗi ngày. Đối với chúng tôi, nó xuất hiện ở 90 LỘC mỗi ngày! Tôi đoán chúng tôi đã có rất nhiều cuộc họp và tài liệu về dự án đó, nhưng sau đó tôi đoán chúng tôi cũng sẽ có rất nhiều cuộc họp và tài liệu về cuộc họp tiếp theo :)


2

Âm thanh về chính xác.

/programming/966800/mythical-man-month-10-lines-per-developer-day-how-close-on-large-projects

Nếu bạn tính đến việc gỡ lỗi, tài liệu, lập kế hoạch, vv Nó trung bình khoảng 10 dòng mã mỗi ngày. Trên thực tế tôi sẽ đánh giá 10 dòng một ngày ở phía cao (tức là một nhà phát triển rất năng suất).

Mặc dù bạn có thể tạo ra vài trăm dòng trong một ngày (điều này không bền vững). Nó không phải là mã chất lượng cho đến khi bạn đã thêm tất cả các đơn vị kiểm tra tài liệu và tất nhiên đã gỡ lỗi mã sau khi kiểm tra đơn vị của bạn hiển thị các lỗi. Sau khi hoàn thành, bạn trở lại 10.


1

Tôi đoán là, một nhà phát triển làm việc với một ngôn ngữ như C # sẽ có thể viết / tạo khoảng 10K LoCs / ngày. Tôi cho rằng, tôi có thể làm điều đó. Tôi chỉ không bao giờ sẽ.

Những gì bạn muốn của một nhà phát triển là, để hoàn thành công việc của mình trong 10 LoC / ngày. Ít mã hơn luôn luôn tốt hơn. Tôi thường bắt đầu sản xuất một số lượng lớn mã và sau đó cắt đi cho đến khi tôi đạt đến mức tối đa đơn giản, vì vậy tôi thực sự có những ngày có LoC âm.

Theo một nghĩa nào đó, mã hóa giống như thơ. Câu hỏi không phải là, một nhà thơ có thể viết bao nhiêu dòng, mà là anh ta có thể truyền đạt bao nhiêu trong 14 dòng sonnet.


5
10K LoC? IMO chỉ có thể được thực hiện bởi một máy phát điện. Theo như LoC viết tay, tôi muốn đặt giới hạn trên trong phạm vi 1K LoC. Và đó phải là một ngày làm việc hiệu quả.
user281377

@ammoQ: Đó là khả thi. Nếu ai đó yêu cầu bạn viết càng nhiều mã càng tốt, bạn có thể làm điều đó. Có lẽ đó chỉ là một huyền thoại, nhưng tôi đã nghe nói rằng các lập trình viên buộc phải tạo ra nhiều LoC làm như vậy bằng cách bao gồm mã chết hoặc trùng lặp, bằng cách mở rộng các vòng lặp và các hàm nội tuyến bằng tay (hoặc không có các vòng lặp và chương trình con ở vị trí đầu tiên) và nhiều thứ ngu ngốc khác nhiều thứ. Ngoài ra, việc sử dụng quá mức mã soạn sẵn giúp: D
back2dos

@ back2dos: OK, tôi đã suy nghĩ về mã thực sự có ý nghĩa.
dùng281377

@ammoQ: chắc chắn không có gì tôi sẽ đổ lỗi cho bạn. Quan điểm của tôi là, số liệu đó, không có ý nghĩa dẫn đến mã, điều đó không có ý nghĩa;)
back2dos

1

Hãy để người quản lý của bạn xử lý nó, hoặc bắt đầu săn việc.

Nói một cách nghiêm túc, bạn có thể dành thời gian cho những gì cuối cùng có thể là một nỗ lực vô vọng trong việc giải thích cho giám đốc điều hành các phương pháp đúng đắn và không chính xác để đo lường tiến độ của dự án để hoàn thành. Trong tất cả thực tế, những gì các nhà quản lý kỹ thuật và dự án là dành cho.

Mặt khác, các tình huống như vậy mà người điều hành nghi vấn kỹ sư và / hoặc người quản lý dự án của bạn. Bạn có nhiều vấn đề lớn hơn và cơ bản hơn để giải quyết, ngay cả khi chúng chưa tự tiết lộ. Trong trường hợp này, một vấn đề như thế này có thể đóng vai trò là "phát súng cảnh báo" cho những vấn đề lớn hơn sắp xảy ra.


1

Các câu trả lời khác là chính xác, đó là một câu hỏi ngớ ngẩn và câu trả lời không có nghĩa là một điều chết tiệt. Tất cả đều đúng, nhưng tôi tình cờ biết được tôi đã tạo ra bao nhiêu dòng mã trong khoảng một tháng.

Đó là khoảng 3000 dòng mã C # không có XML-doc. Tôi đã thực hiện chức năng mới và kết thúc với số tiền này trong một tháng hoặc một tháng và một tuần. Đó là tất cả những gì kết thúc trong kiểm soát nguồn, rất nhiều mã được viết và sau đó được cấu trúc lại hoặc xóa.

Tôi là một nhà phát triển C # và tôi đang cố gắng để giỏi về nó, nhưng tôi không thể nói cho bạn biết tôi khách quan đến mức nào. Tôi đã cố gắng viết mã tốt và nỗ lực rất nhiều để làm cho nó dễ bảo trì. Tôi chỉ đưa ý kiến ​​một hoặc hai lần trong mã này.

Tôi không biết rằng đó là quá nhiều hoặc quá ít dòng mã và tôi phải nói rằng tôi không thực sự quan tâm. Đó là một phần dữ liệu vô nghĩa và nó không thể được sử dụng một cách an toàn để ngoại suy theo bất kỳ cách nào. Nhưng tôi tình cờ biết dữ liệu này nên tôi quyết định chia sẻ.


0

Chà, tôi đến bữa tiệc này hơi muộn như thường lệ, nhưng đây thực sự là một điều thú vị. Ban đầu tôi cũng có suy nghĩ giống như hầu hết câu hỏi của giám đốc điều hành. Tuy nhiên, tôi đã đọc câu trả lời của SK-logic và nhận ra rằng đó là một câu hỏi hợp lý được hỏi theo cách vô nghĩa. Hoặc, đặt khác nhau, có một vấn đề hợp lệ đằng sau câu hỏi.

Các nhà quản lý thường cần phải cố gắng xác định tính khả thi, tài trợ, nhân sự, vv cho một dự án. Đây là một vấn đề hợp lý. Đối với một cổng Straightford, một ước tính dựa trên các dòng mã được chia cho các dòng mã trung bình ước tính cho mỗi nhà phát triển mỗi ngày là đơn giản, nhưng sẽ thất bại vì tất cả các lý do được đưa ra trên trang này.

Một cách tiếp cận hợp lý hơn sẽ là: -

  1. Đối với ước tính tại chỗ, hãy hỏi các nhà phát triển có nhiều kinh nghiệm nhất với mã để ước tính ruột về thời gian cần thiết. Điều này chắc chắn là không chính xác vì nhiều lý do mà tôi sẽ không đi vào đây, nhưng đó là điều tốt nhất mà họ sẽ có thể làm ngay từ đầu. Ít nhất họ nên có một ý tưởng cho dù nó sẽ được thực hiện dễ dàng trong một tuần hoặc nhiều năm ngay cả với các nguồn lực bổ sung. Nếu đã có bất kỳ cổng hoặc phần công việc có kích thước tương tự được thực hiện, họ có thể sử dụng điều này như một hướng dẫn.
  2. Ước tính cổng theo thành phần để có tổng kích thước. Các nhiệm vụ không liên quan trực tiếp đến cổng cần được đưa vào, chẳng hạn như thiết lập cơ sở hạ tầng (máy móc, hệ thống xây dựng, v.v.), điều tra và mua phần mềm, v.v.
  3. Xác định các thành phần rủi ro nhất của cổng và bắt đầu với các thành phần đầu tiên. Chúng có khả năng thổi bay ước tính nhiều nhất, vì vậy nên được thực hiện trước nếu có thể để có những bất ngờ hạn chế vào cuối cảng.
  4. Theo dõi tiến trình so với kích thước được thực hiện trong bước 2 để liên tục tính toán thời lượng dự kiến ​​của cổng. Khi dự án di chuyển về phía trước, điều này sẽ trở nên chính xác hơn. Tất nhiên, số lượng dòng mã đã được chuyển (các tính năng trong cơ sở mã gốc hiện có trong mã được chuyển) cũng có thể được sử dụng làm số liệu và thực sự hữu ích để đảm bảo rằng sản phẩm ban đầu được chuyển chứ không phải là một loạt các chức năng mới thú vị được thêm vào trong khi không xử lý cổng thực tế.

Đây sẽ là những bước chân thực, tất nhiên có nhiều hoạt động khác xung quanh việc này rất hữu ích như điều tra các công cụ porting và khung có thể cắm, tạo nguyên mẫu, xác định những gì thực sự cần được chuyển, sử dụng lại các công cụ kiểm tra và cơ sở hạ tầng, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.