Đính kèm cảm xúc với mã [đã đóng]


26

Là một nhân viên của một công ty, khi bạn viết mã bạn có cảm thấy mình có một chấp trước vào nó không? Bạn có cảm thấy rằng bạn có một số quyền sở hữu của mã? Hoặc bạn có viết nó hoàn toàn tách rời khỏi nó mà không quan tâm đến những gì xảy ra với nó sau khi bạn chuyển sang một thứ khác?

EDIT: Tôi không nói về việc viết mã xấu và sau đó chạy ...


Phụ thuộc rất nhiều vào văn hóa nơi làm việc.

Câu trả lời:


33

Sau 30 năm làm nhà thầu, nó đã bị xáo trộn.

  1. Tất cả chỉ dùng một lần. Tôi đã làm việc với hàng trăm khách hàng. Tôi sẽ không bao giờ nhìn thấy mã nữa. Tại sao trở nên gắn bó? Không có ý thức sở hữu.

  2. Nó rất dễ thấy. Nó đắt hơn mã trong nhà, vì vậy nó được xem xét kỹ lưỡng. Vì tôi sẽ không ở đó để duy trì nó, nó nhận được rất nhiều sự xem xét kỹ lưỡng. Mã hướng dẫn và chuyển giao là rất quan trọng. Có một số niềm tự hào về nghề thủ công. Nhưng không có ý thức sở hữu.

Kỷ lục của tôi là 17 năm sản xuất. 12 trong số những năm không bảo trì dưới bất kỳ hình thức nào.

Tôi biết vì tôi nhận được một cuộc gọi. Họ đang sửa đổi hệ thống kế toán của mình và muốn biết cách thay thế thuật toán phân bổ chi phí thông minh mà tôi đã xây dựng từ nhiều năm trước. Tôi đã xem mã, và các tệp không thay đổi kể từ lần cải tiến cuối cùng 12 năm trước. (Không phải là sửa lỗi, AFAIK.)

Lần chạy dài nhất tiếp theo - đó là điều tôi biết-- là 7 năm hoạt động hoàn hảo. Tuy nhiên, điều đó đã xảy ra sự cố Y2K nghiêm trọng và yêu cầu một số thao tác lại để sử dụng tên tệp có 4 năm chữ số. Các thuật toán bên trong đều đúng, nhưng các tệp nhật ký sẽ xuất hiện theo thứ tự sai.

Một lần nữa, tôi biết điều đó thật hoàn hảo bởi vì các tập tin đã bị chạm vào kể từ lần phát hành cuối cùng tôi đã thực hiện.

Vì vậy, vâng, có rất nhiều niềm tự hào về nghề thủ công.

Nhưng không có "quyền sở hữu". Đó là mã của họ, không phải của tôi. Tôi chỉ xây dựng nó.


1
Rõ ràng chứng minh rằng ngay cả các chương trình hoàn hảo cũng cần phải thay đổi vì thế giới thay đổi.

10

Là một nhà phát triển solo ít nhiều, nỗi sợ phải duy trì những gì tôi viết là trình điều khiển chính đằng sau tôi cố gắng không viết mã khủng khiếp.


9

Tại nơi làm việc, một số mã là của tôi, theo nghĩa tương tự như cái ghế tôi đang ngồi là của tôi. Tôi đã viết nó, tôi đã làm nó tốt nhất có thể, tôi cảm thấy sở hữu nó, mọi người sẽ hỏi tôi về những thay đổi, và mọi người sẽ coi nó là của tôi. Và, giống như chiếc ghế của tôi, một khi tôi rời công ty, tôi sẽ không bao giờ gặp lại nó nữa và tôi sẽ không còn cảm xúc gắn bó nữa.

Từ "của tôi" có rất nhiều biến thể về ý nghĩa của nó. "Vợ tôi" và "bàn chải đánh răng của tôi" không hoàn toàn song song.


4

Nếu bạn viết mã cho chính mình, bạn có thể đủ khả năng để có cảm xúc với nó. Nếu bạn viết mã cho một doanh nghiệp, bạn phải luẩn quẩn thanh lọc những cảm xúc đó bất cứ khi nào có thể. Tôi không thể đếm số lần tôi đã thấy một lập trình viên giỏi khiến họ đau buồn bằng cách lấy cảm xúc qua mã.

Nói với chính mình: "Tôi đã làm nó, nó tốt, nhưng nó không phải của tôi và tôi có thể làm nhiều hơn nữa." Nếu bạn tin vào điều đó, thì khi 6 tháng của cuộc đời bạn trở nên lỗi thời vì một đại diện bán hàng cho một sản phẩm kém chất lượng đã cho sếp của bạn ăn trưa, bạn sẽ không mất việc vì phát điên với anh ta.

Hãy nhớ rằng họ đang trả tiền cho bạn. Tất cả chúng ta đều muốn làm những điều tuyệt vời, nhưng nếu họ trả tiền cho chúng ta để đào hố, sau đó lấp lại chúng, đó là đặc quyền của họ. Tôi vừa có một tình huống tôi đã viết một ứng dụng web, sau đó dành nhiều tháng để kết hợp các tính năng khủng khiếp, sau đó nhiều tháng mã hóa nó trở lại trạng thái ban đầu. "Công việc" đáng giá trong hai tuần qua tôi đã lấy từ repo SVN của mình, sau đó giới thiệu nó với số phiên bản mới. Và tôi ổn với điều đó.


3

Không, nhưng tôi thực sự ghét phải sửa các lỗi được giới thiệu bởi những người khác trong mã tôi đã viết ban đầu. Tôi sẽ hạnh phúc hơn nếu sự thay đổi đã được chỉ định cho tôi ngay từ đầu. Tôi ghét nó hơn nữa khi sửa chữa hoàn toàn bên ngoài thiết kế ban đầu, ví dụ bằng cách tạo ra một phụ thuộc tròn với một mô-đun cấp cao hơn.


0

Có và không.

Có - Đó là thứ bạn tạo ra và do đó bạn có một tệp đính kèm, giống như một nhà thiết kế xe hơi tự hào hoặc bối rối khi họ nhìn thấy những chiếc xe họ thiết kế trên đường.

Không - Theo như quyền sở hữu, thông thường bạn sẽ từ bỏ việc đó để đổi lấy việc được trả tiền để làm việc tại một công ty. Các nhân viên của nhà máy chế tạo ô tô không có quyền sở hữu trong mỗi chiếc lăn ra khỏi dây chuyền vì họ được trả tiền cho thời gian của họ.


0

Tôi cảm thấy rất độc quyền về mã tôi viết; nó đại diện cho các quyết định tôi đưa ra về cách giải quyết một vấn đề nhất định và do đó phản ánh khả năng suy nghĩ của tôi thông qua một vấn đề hợp lý và đưa ra một giải pháp hợp lý và hy vọng. Điều đó nói rằng, tất cả mọi thứ tôi viết về thời gian công ty thuộc về công ty. Tôi hy vọng không ai trong số họ quay lại cắn tôi, và tôi muốn được yêu cầu sửa mã của riêng mình, nhưng nếu không, thì không. (Và tôi có thể nói thêm rằng anh chàng đã viết mã ba tháng trước và đặt tên của tôi trên đó trong kiểm soát nguồn là một thằng ngốc).


0

Không có gì. Khi tôi kiểm tra nó, nó không còn là "của tôi" nữa. Một cách tự nhiên, tôi sẽ là người bảo trì và khắc phục sự cố, nhưng tôi cảm thấy không có quyền sở hữu đối với nó.

Tôi đã biết một số người cảm thấy rất độc quyền đối với mã của họ, đến mức họ sẽ bị kích thích nếu có ai đó sửa lỗi hoặc bằng cách nào đó sửa đổi nó mà không chạy nó trước. Tôi chưa bao giờ cảm thấy như vậy. Tất cả những gì tôi hỏi là nếu bạn tìm thấy một vấn đề trong mã của tôi và khắc phục nó, hãy cho tôi biết vấn đề là gì và cách khắc phục để tôi không mắc phải lỗi tương tự trong tương lai.


0

Tôi yêu các mã tôi viết. Tôi hiểu họ và điều chỉnh chúng để những người khác cũng sẽ như vậy. Khi mọi người đến gặp tôi và nói "Anh bạn, chúng tôi vẫn đang sử dụng kịch bản mà bạn đã viết cho chúng tôi. Nó rất ổn định và di động", tôi thích cảm giác tự hào và quyền sở hữu đó.

Sẽ không có hại gì khi gắn vào mã của bạn nếu bạn có thể thấy nó sẽ kết thúc ở đâu, tức là nếu tất cả trong nhà và bạn biết ai hoặc bạn đang lập trình cho cái gì, thì tôi thực sự nói rằng đó là một điều tốt để có được đính kèm . Vì bạn sẽ chỉ thích tạo ra nhiều mảnh sáng chói, nhiều hơn thế.

Mặt khác (nhận thức đầy đủ rằng tôi có thể nhắc lại những gì @ S.Lott đã nói) nếu mã sẽ kết thúc như một tài sản của khách hàng, thì sẽ không có ý nghĩa gì trong việc tình cảm đối với nó. Giống như ... chăm sóc chó con của bạn của bạn khi anh ấy đi nghỉ. : - /


0

Các nhà thầu và chuyên gia tư vấn có thể không bao giờ nhìn thấy mã của họ một lần nữa có lẽ không phải là ứng cử viên lý tưởng để gắn kết tình cảm với mã của họ. Phải "từ bỏ" nó nhiều lần có thể sẽ làm tê liệt các nhà tư vấn nghèo lái xe sáng tạo sau một thời gian.

Nếu chúng ta nhìn nó từ quan điểm của một nhân viên chứ không phải một nhà thầu, tôi sẽ nói rằng tôi muốn tất cả các thành viên trong nhóm của mình cảm thấy quyền sở hữu trong mã họ viết và trong mọi thứ mà họ tạo ra. Quyền sở hữu và niềm tự hào này nên mở rộng cho toàn đội. Cảm giác tự hào và quyền sở hữu tạo ra sự gắn bó với sản phẩm trong các câu hỏi và thêm ý nghĩa và ý nghĩa vào công việc của một thành viên trong nhóm. Tôi đã thấy điều này thúc đẩy hiệu suất rất nhiều trong các đội từ nhỏ đến lớn.

Điều nên tránh và điều tôi không thích là những người có vẻ tình cảm gắn liền với những dòng mã cụ thể mà họ đã viết và bảo vệ nó trước ngôi mộ. Họ không muốn những thay đổi được thực hiện, họ nhìn xuống và từ chối mọi ý tưởng để thay đổi hoặc cải tiến và cố gắng biện minh cho điều đó bằng một điều gì đó có vẻ đáng tin cậy. Điều mà điều này thường làm sôi lên, từ kinh nghiệm của riêng tôi, là nỗi sợ thay đổi và sợ những điều chưa biết. Nó không thực sự từ bỏ các dòng mã cũ của họ đó là vấn đề. Thay vào đó, nó phải tiếp nhận một cái gì đó mới, đôi khi không phải do chính bạn viết ra và nỗi sợ thất bại.

Loại tệp đính kèm "bệnh" này là thứ tôi làm việc chăm chỉ để cố gắng ngăn chặn. Nhưng các kết nối cảm xúc "lành mạnh" với sản phẩm, và bằng cách mở rộng mã viết, là điều tôi khuyến khích.


0

Đây là một câu hỏi thú vị và tôi đồng ý với một trong những bài đăng ở trên: Có và Không - nhưng vì những lý do khác nhau.

Tôi có phát triển gắn liền với mã không? Tât nhiên la co. Nhưng tôi không nghĩ đó là bản thân mã mà là kiến ​​trúc và ứng dụng tổng thể. Thông thường, bạn phải thực hiện nhiều nghiên cứu cụ thể về tên miền trước khi bạn thực sự có thể viết mã những gì doanh nghiệp muốn (trừ khi bạn viết IDE - thì bạn chắc chắn bị mắc kẹt trong đệ quy).

Mặt khác: Không có nhiều thứ tôi thích hơn là vứt bỏ những phần lỗi thời của cơ sở mã. Không có vấn đề như thế nào các văn bản có thể đã được. Hành trình quan trọng hơn nhiều so với sản phẩm (ít nhất là đối với bản ngã, tất nhiên bản thân sản phẩm cũng phải hoạt động tốt).

Có ý thức sở hữu? Vâng, nó phụ thuộc vào tình hình dự án. Khi bạn sẽ không bao giờ nhìn thấy mã nữa (vì phần của bạn trong dự án đã kết thúc và bạn đang tiếp tục) thì tại sao lại lãng mạn về những thứ đó? Tuy nhiên nếu bạn tiếp tục hỗ trợ nó (bằng bất cứ cách nào) thì cảm giác gắn bó là một điều tốt! Khi bạn quan tâm đến sản phẩm bạn đang xây dựng thì khả năng khá cao là bạn đang cố gắng để cung cấp các sản phẩm chất lượng cao.

Vì vậy, tất cả trong tất cả tôi cố gắng áp dụng một "mối quan hệ" thực dụng với mã tôi viết.


0

Đúng vậy, tôi đã từng đánh bại một đồng nghiệp vì anh ta đủ kiêu ngạo để đổi tên một vài biến.

Không thật sự lắm. Tôi được trả tiền để phát triển phần mềm. Mặc dù tôi thừa nhận, việc nhìn thấy các lỗi được thực hiện theo mã của tôi bởi các nhà phát triển khác có ảnh hưởng đến-cái tôi-.

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.