Có phù hợp trong mô tả công việc của nhà phát triển để có lỗi không phải là lỗi đầu ra hay không? [đóng cửa]


10

Là một phần của đánh giá tất cả các mô tả công việc, công ty của tôi đã quyết định đưa vào đây như một đầu ra quan trọng:

phát triển trang web hoàn thành đúng thời hạn, trong phạm vi đặc điểm kỹ thuật và không có lỗi

Do các thông số kỹ thuật thay đổi thường xuyên, không có quá trình kiểm soát thay đổi chính thức và môi trường, chúng ta sẽ nói, một chút không thể đoán trước, KPI này thực tế và hợp lý như thế nào?


20
Hoàn toàn không thực tế. Điều đó có lẽ được viết bởi một người đã làm việc với quá nhiều nhà phát triển tồi. Nhưng nó cũng có thể là lỗi của quản lý tồi. Không đủ thông tin cung cấp.
Đánh dấu Canlas

11
Nhà phát triển đi kèm với "viết mã miễn phí lỗi" trong sơ yếu lý lịch của họ sẽ đủ lố bịch để phù hợp với vị trí.
P.Brian.Mackey

12
Mã duy nhất có thể được chứng minh là không có bất kỳ lỗi nào và đạt được mục tiêu của nó là một cơ sở mã trống tuyên bố không làm gì cả.
unolysampler

8
pfft ... trông giống như một điều khoản tế thần để mọi người có thể dễ dàng. "Xin lỗi, bạn đã không tuân thủ thỏa thuận việc làm của bạn ... chúng tôi sẽ sa thải bạn mà không cần thông báo hoặc nguyên nhân bổ sung. Tootles."
Steven Evers

5
Tất nhiên là không có lỗi. Trình biên dịch nói: 0 lỗi, 0 cảnh báo. Điều đó hoàn toàn đáp ứng các yêu cầu công việc :-)
Ferruccio

Câu trả lời:


21

"Lỗi miễn phí" là quá chủ quan . "Yêu cầu tính năng chưa hoàn thành" của một người là "Lỗi" của một người khác. Một cái gì đó như "Nếu đáp ứng đáng kể thông số kỹ thuật thiết kế" sẽ phù hợp hơn. Tôi chưa bao giờ thực sự thấy những gì bạn mô tả trong một mô tả công việc. Tôi đã thấy nó cho công việc hợp đồng , nhưng không phải cho nhân viên.


9

Tôi sẽ có một vị trí đối lập với hầu hết các câu trả lời và nói rằng nó hoàn toàn hợp lý và thực tế.

Tất cả sự phát triển sẽ được hoàn thành đúng hạn? Tất nhiên là không, không phải lúc nào cũng vậy.

Tất cả sự phát triển sẽ được hoàn thành trong đặc điểm kỹ thuật? Bạn muốn hy vọng như vậy, nhưng đôi khi điều đó đơn giản là không thể và bạn sẽ phải đánh dấu sự sai lệch khỏi một thông số không thể hoặc tự mâu thuẫn.

Và tất cả sự phát triển sẽ không có lỗi? Không bao giờ .

Nhưng đó là những gì KPI dành cho. Đó là thứ có thể đo lường được và qua đó bạn có thể theo dõi hiệu suất và tiến độ.

Nếu thông số kỹ thuật thay đổi thường xuyên, không có quy trình kiểm soát thay đổi chính thức và môi trường không thể đoán trước, thì sẽ là một thách thức để giữ con số này gần với "không có lỗi". Nhưng thách thức đó là công việc của bạn và đó là công việc mà bạn hy vọng sẽ làm khá tốt - và thậm chí tốt hơn vào năm tới, khi bạn có nhiều thực hành hơn trong việc quản lý hương vị hỗn loạn đặc biệt của công ty bạn.

Câu hỏi truy cập: KPI nào bạn sẽ đề xuất cho một lập trình viên? Đó là một khó khăn. Rất nhiều điều chúng tôi làm là khó đo lường.


4
Một cơ sở mã có kích thước đáng kể trên thực tế không thể đảm bảo là "không có lỗi", bởi vì có thể có một lỗi mà bạn đơn giản không tìm thấy. Ngoài ra, lỗi gì? Một lỗi? Làm thế nào được đo lường này?
philosodad

1
@philosodad - đó là quan điểm của tôi. Nó sẽ không có lỗi miễn phí . Nhưng nếu năm nay x lỗi được tìm thấy trong mã bạn đã viết và năm sau x-4 là, bạn đã cải thiện KPI của mình. Đối với lỗi là gì, đó thực sự là một vấn đề đối với tổ chức của bạn và không nghi ngờ gì sẽ gây ra một số đối số "lỗi" so với "yêu cầu không có giấy tờ" so với "yêu cầu thay đổi" so với "sự khác biệt về quan điểm".
Carson63000

3
@ Carson63000: nhưng đó là quan điểm của tôi! Một KPI được đảm bảo để gây ra một số tranh luận, dẫn đến sự bất đồng không thể tránh khỏi giữa các bên và định nghĩa mơ hồ một số liệu chính là, ít nhất là có vấn đề. Lấy ví dụ của bạn, nếu "lỗi" là một biện pháp chủ quan, có thể dự đoán rằng các nhà quản lý sẽ xác định lỗi để làm cho mình trông đẹp hơn, vì vậy mọi người sẽ giảm tỷ lệ lỗi cho cùng một hiệu suất. Nhưng một người quản lý mới có thể xác định nó lên, rồi xuống, để cho thấy họ đã "cải thiện" cùng một đầu ra chính xác như thế nào.
philosodad

3
Nó là tốt hơn để có một mục tiêu không có lỗi nghiêm trọng (xác định quan trọng). Hoặc để có một tỷ lệ lỗi cải thiện. Và thậm chí tốt hơn, công cụ này nên là mục tiêu để đánh giá hiệu suất hàng năm, không phải là một phần của mô tả công việc.
quick_now

3
KPI liên quan đến một mục tiêu không chỉ không hoàn toàn đáp ứng mà còn có thể bị vượt quá. Bạn sử dụng nó để đo lường mức độ bạn đang làm tồi tệ hơn hoặc tốt hơn mục tiêu KPI. Tôi không thấy làm thế nào "lỗi miễn phí" có thể được vượt quá. Do đó, ngay cả khi dự định là KPI, nó vẫn còn thiếu sót. KPI tốt hơn sẽ là đo lường số lượng lỗi, báo cáo thử nghiệm được gửi theo mã bạn đã viết dẫn đến thay đổi mã thực tế, v.v.
Marjan Venema

4

Nếu đó là một mô tả công việc, thì tôi sẽ không lo lắng quá nhiều về nó vì làm việc với mã không có lỗi là một phần của công việc của một lập trình viên điển hình (ngay cả khi chúng ta không bao giờ có thể đạt được nó).

Tuy nhiên, với tư cách là một KPI, nó quá xa vời, nhưng đừng đổ lỗi cho người đã đề xuất nó nếu họ không phải là lập trình viên. Chỉ cần giải thích rằng tuyên bố đó đặt ra một mục tiêu có thể là không mong muốn cho tổ chức. Đó là, "không có lỗi" là một tiêu chuẩn cực kỳ cao đối với phần mềm sẽ tốn rất nhiều tiền để thực sự cung cấp. Giải thích rằng một dự án phần mềm chạy tốt đòi hỏi phải đưa ra quyết định về việc mỗi lỗi có đáng để dành thời gian cho nhà phát triển có giá trị hay không.

Đây là một ví dụ làm cho điểm độc đáo.
Một lập trình viên phát hiện ra rằng phần mềm của chúng tôi có lỗi "năm 3000" và sẽ ngừng hoạt động sau ngày 31 tháng 12 năm 1999. Sẽ mất 6-8 tháng để khắc phục sự cố. Dựa trên KPI được khuyến khích đảm nhận dự án này mặc dù không có giá trị thực sự cho công ty.

Được rồi, vì vậy, ví dụ đó là một chút cực đoan, nhưng trong bất kỳ dự án phần mềm nào, sẽ có hàng tá lỗi nhỏ được phát hiện ra rằng tương tự không tạo ROI cần thiết để sửa chúng. Thay vào đó, nếu KPI được dự định ngụ ý rằng lập trình viên không bao giờ đưa ra lỗi ở vị trí đầu tiên, thì có vẻ hợp lý khi BẤT K staff nhân viên nào được giữ theo tiêu chuẩn không bao giờ phạm sai lầm trong việc thực hiện công việc của họ?


Có vẻ như bạn không có KPI bao gồm "sửa lỗi được quản lý coi là không thành vấn đề và không cần sửa."
Carson63000

@Carson - không phải ở một số công ty lớn mà tôi biết. Mục tiêu ngớ ngẩn là một phần trong cách kinh doanh của họ.
quick_now

3

Không

Không chỉ là không phù hợp, nó là lố bịch

Việc kiểm tra chỉ có thể chứng minh sự tồn tại của lỗi chứ không phải sự vắng mặt của chúng, vì vậy mọi chương trình được viết theo cam kết này sẽ phải bao gồm một bằng chứng nghiêm ngặt về tính đúng đắn ... phạm vi kiểm tra 100%

"Hãy coi chừng các lỗi trong đoạn mã trên; tôi chỉ chứng minh nó đúng, không thử nó." - D. Knuth

KPI là thước đo thành công và tiến tới mục tiêu. Chúng không phải là một chuyển đổi nhị phân "mã không có lỗi = thành công, một lỗi duy nhất = thất bại, bạn đã bị sa thải!"
Carson63000

@Carson: "không có lỗi" không phải là KPI, đó là một sự tưởng tượng.
Steven A. Lowe

1
Âm thanh với tôi như một khâu. Đặt một cái gì đó ngớ ngẩn vào JD sau đó bất cứ khi nào cần một lý do, người đó có thể bị sa thải vì họ không thực hiện như JD yêu cầu.
quick_now

3

Tất nhiên, đó là công việc của mỗi lập trình viên và trách nhiệm, viết mã không có lỗi. Đó là một kỳ vọng hoàn toàn hợp lý. Làm thế nào bạn có thể trở thành một lập trình viên chuyên nghiệp nếu bạn phát hành mã không hoạt động? Làm thế nào bạn có thể coi mình là một lập trình viên chuyên nghiệp nếu bạn phát hành mã mà bạn không biết làm việc?

Nếu bạn thuê một họa sĩ, bạn mong đợi anh ta sẽ làm tốt công việc của mình. Bạn mong đợi kết quả công việc của mình không có lỗi. Nếu có lỗi, bạn mong anh ấy chịu trách nhiệm về những lỗi đó và sửa chúng miễn phí. Hơn nữa, nếu các lỗi làm bạn mất tiền, bạn mong đợi anh ta bồi hoàn cho bạn. Tại sao bạn có những kỳ vọng này? Bởi vì họa sĩ là một chuyên gia.

Các lập trình viên thích đổ lỗi cho những người khác về lỗi của họ. "Chương trình của tôi có lỗi vì yêu cầu hoặc vì lịch trình hoặc vì Mặt trăng ở nhà thứ 8" Nhưng thực sự không có ai để đổ lỗi. Nếu chương trình của bạn có lỗi, bạn đặt chúng ở đó.

Nghề nghiệp của chúng tôi sẽ không bao giờ một nghề cho đến khi các lập trình viên nhận ra rằng sự cố dừng lại với họ. Rằng họ chịu trách nhiệm về chất lượng của các chương trình của họ.

Bạn có biết tại sao các công ty tạo ra các bộ phận QA Phần mềm không? Bởi vì các lập trình viên không làm việc của họ! Các lập trình viên đã phát hành rất nhiều chuyện tào lao đến nỗi các công ty phải thành lập các bộ phận hoàn toàn mới để kiểm tra chúng.

Danh sách lỗi dài bao nhiêu? Nó là chuyên nghiệp để có hàng ngàn lỗi trong cơ sở dữ liệu lỗi? Rõ ràng là không. Đó là sự phản ánh của hành vi xấu, kỷ luật kém, và, thẳng thắn, thiếu trung thực.

Chúng tôi sẽ không bao giờ là một nghề cho đến khi chúng tôi nhận ra rằng đó là công việc của chúng tôi để đảm bảo rằng QA không tìm thấy gì.


+1, nhưng tôi muốn nghĩ rằng không có lỗi là mục tiêu cá nhân hơn là thực tế. Tất cả chúng ta nên làm điều đó nhưng trừ khi được cung cấp nguồn lực vô tận, chúng ta sẽ không đến đó, ít nhất là không được cung cấp cách chúng ta phát triển phần mềm bây giờ.
rjnilsson

Tôi không thể đồng ý mạnh mẽ hơn với tình cảm của chú Bob. Đó là rất nhiều câu hỏi về tính chuyên nghiệp.
Johnsyweb

1
Vị trí này hơi phức tạp bởi thực tế là quản lý của tôi hoàn toàn rõ ràng rằng họ muốn tôi cung cấp cho họ phần mềm lỗi hơn là phần mềm chính xác sau này. Tôi không nghĩ rằng tôi cô đơn khi ở trong tình huống này.
Tom Anderson

3

Đáng buồn thay, điều này nghe có vẻ như là một cách để họ "bao gồm tất cả các cơ sở", và rõ ràng là không được khuyến khích và có khả năng chỉ gây ra sự vỡ mộng trong các nhà phát triển.

Tuy nhiên, đã nói rằng, điều này thực sự chỉ quan trọng khi bạn thấy những gì họ làm với văn bản đó trong thời gian xem xét. Vì vậy, đừng phản ứng thái quá quá nhanh - vẫn có thể có sự tỉnh táo ở cuối đường hầm.


Với môi trường làm việc hiện tại của tôi, tôi rất nghi ngờ về cách họ áp dụng từ ngữ đó.
Phil.Wheeler

2

"Không có lỗi" như trong "hoàn hảo?" Như trong "được viết bởi Thiên Chúa và các thiên thần, không phải con người?" (chúng ta đang nói ở đây về logic chương trình và có thể lỗi logic phần cứng)

Tôi không thể nói một cách trung thực về ngay cả một dòng mã mà nó không có lỗi. Đó là bởi vì con người chúng ta, tốt, chúng ta không thể chứng minh không có giả thuyết tiêu cực!

Điều tốt nhất tôi có thể nói là xác suất xảy ra lỗi là một số trong khoảng từ 0 đến 1. Tôi đạt được con số đó bằng các nguyên tắc kiểm tra và phát triển phần mềm được xác định rõ hoặc không rõ ràng hoặc không hiểu rõ; bởi một số lượng các dòng phần mềm nguồn trong câu hỏi; bởi sự hiểu biết về việc ứng cử viên của tôi tốt hay kém, mutt nghèo, áp dụng những nguyên tắc đó trong việc tạo ra những dòng mã đó; và nhiều hơn nữa.

Và tôi có thể diễn đạt sự hiểu biết đó chỉ như một xác suất. Vì vậy, thuật ngữ "không có lỗi" có nghĩa là gần như không có gì.

Nếu tôi thấy quảng cáo cho một kỹ sư phần mềm sản xuất mã "không có lỗi" tôi sẽ áp dụng ngay hoặc tôi sẽ chạy ngay: công ty đã không nghĩ nhiều về cách phát triển, kiểm tra và cung cấp phần mềm của mình . Vì vậy, nó sẽ là một cơ hội tuyệt vời hoặc một cơn ác mộng bất tận.

Mặc dù vậy, trong bất kỳ phần mềm nào, tôi có thể dễ dàng - và phải - nói rằng tôi mong đợi mã không có lỗi nằm ngoài công cụ logic, lờ mờ, logic này: mã biên dịch và liên kết mà không có lỗi hoặc cảnh báo; đó là "html hợp lệ" hoặc "css hợp lệ"; JavaScript (giả sử) tạo ra không có thông báo lỗi không giải thích được hoặc lỗi trình duyệt. Phần đó tôi có thể đo trực tiếp và đánh dấu màu đen và trắng trên biểu đồ.

Phần đó dễ như ăn bánh. Bất cứ ai cũng có thể làm điều đó .

Xin chào, chúc may mắn trong tìm kiếm của bạn :-)


1

Tôi có ngu ngốc không, hay "lỗi" không có nghĩa là "thông điệp trình biên dịch gây tử vong lên tới mã không thể biên dịch được"?

Theo định nghĩa đó, đó là một yêu cầu rất hợp lý ...


1
Thật. Có văn bản sai trên chân trang có thể là một lỗi nhưng chắc chắn đó không phải là cùng một loại lỗi như một cái gì đó ngăn trang không tải và phát sinh lỗi thời gian chạy lại cho người dùng.
Thất vọngWithFormsDesigner

Trong phát triển web, "lỗi" có thể có nghĩa là nhiều thứ. Hiển thị giá sai cho tất cả các sản phẩm của bạn có thể được coi là một lỗi lớn, nhưng nó không nhất thiết ngăn không cho bất cứ thứ gì chạy và nó có thể không báo cáo bất kỳ vấn đề nào trong nhật ký máy chủ.
Simon B

Trong bốn năm kể từ khi viết bình luận này, tôi đã phát triển web nhiều hơn và hoàn toàn đồng ý - mặc dù vậy, tôi sẽ đứng trước câu trả lời của tôi từ 4 năm trước và nói rằng điểm mà tôi đang cố gắng làm cho định nghĩa của "lỗi" là tùy ý và đối với (rất) chọn định nghĩa, đó một yêu cầu hợp lý.
Chris Browne
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.