Đạo đức lập trình

Tuần trước, tôi đọc được một dòng code như thế này:

[wbcr_php_snippet id=”1183″ title=”code1″]

Tôi thấy stress vì đoạn code này. Không biết nó viết cái gì, có lẽ nó sinh ra chỉ để thử thách sự kiên nhẫn của người đọc. Thật không may, đoạn code này đã đến tay khách hàng và không có cách nào để sửa chữa. Nghe khách nói là khách đã tự sửa rồi.

 

Cũng vừa mới đây, tôi đã đọc được một đoạn code như thế này

[wbcr_php_snippet id=”1184″ title=”Get Mail List”]

Khi được hỏi, tại sao lại viết như vậy, thì được trả lời là: “Em tưởng là code như vậy cũng được ạ? Em thẩy có lỗi gì đâu anh”. Không biết phải nói thế nào nữa.

Một vài đoạn code sinh ra  như thể muốn đánh giá hiệu năng của server.

[wbcr_php_snippet id=”1189″ title=”(no titled, ID=1189)”]

 

Một vài đoạn code khác sinh ra như để thể hiện khả năng không cần gì hết:

[wbcr_php_snippet id=”1190″ title=”PHP param”]

 

Khi tôi hỏi, sao không viết $request->all(), bạn ấy bảo rằng: “Viết như em vẫn chạy mà anh? Thôi, sửa làm gì anh…”

 

Tôi còn nhớ, khá lâu trước đây, có một nhóm lập trình chuyên comment mục @author là một người khác. Mục đích là để khi có bug xẩy xa, mọi người sẽ không liên hệ với các thành viên trong nhóm.

Còn ti tỉ chuyện vui buồn. Nói đến đây chắc có người bảo rằng: Ồi, thằng đi đọc code thì khi nào mà chả thấy người khác có lỗi. Lỗi nào cũng là do DEV, có khi nào PO hay quản lí bảo rằng: Xin lỗi tất cả lỗi lập trình này la của mình, do thời gian quá gấp…

Tôi không có ý định tranh cãi chuyện lỗi là do ai. Nhưng tôi cũng từng là lập trình viên chuyên nghiệp, tôi nghĩ những đoạn code này được tạo ra là vì người viết ra chúng không có tâm là chính, còn các tác động khác là thứ yếu thôi.

Chuyện tâm với nghề lập trình không phải là chuyện mới, thế giới đã có nhiều tranh luận về vấn đề này. Có hẳn một bộ đạo đức nghề viết mã đã được hiệp hội máy điện toán đề ra. Chi tiết ra thì dài lắm, nhưng túm váy lại có mấy điều này:

  • Đóng góp cho xã hội và sự hạnh phúc của nhân loại.

  • Tránh làm hại những người khác.

  • Trở nên thành thật và đáng tin cậy.

  • Công bằng và hành động mà không phân biệt đối xử.

  • Tôn trọng quyền sở hữu tài sản bao gồm cả quyền tác giả và bằng sáng chế.

  • Mang lại một sự tín nhiệm thích hợp cho tài sản trí tuệ.

  • Tôn trọng quyền riêng tư của những người khác.

  • Tôn trọng thông tin bí mật.

Nguồn https://www.acm.org/code-of-ethics

Người ta có qui định 28 điều dành cho nhà viết Mã một cách cụ thể như sau:

  • Điều 1: Không bao giờ tạo hoặc phân phối phần mềm độc hại

  • Điều 2: Không bao giờ viết code mà cố tình làm khó hiểu hay để người khác khó theo dõi

  • Điều 3: Không bao giờ viết tài liệu cố ý gây nhầm lẫn hoặc không chính xác

  • Điều 4: Không bao giờ dùng lại mã nguồn có bản quyền mà chưa mua hay chưa được phép

  • Điều 5: Thừa nhận (bằng lời nói và trong comment mã nguồn) khi dựa trên mã nguồn của các lập trình viên khác cho dù khi có những thay đổi đáng kể được thực hiện

  • Điều 6: Không bao giờ cố tình viết mã không hiệu quả từ đầu để sau này đăng ký sửa lại code hiệu quả hơn để kiếm tiền hay nâng cao uy tín

  • Điều 7: Không bao giờ cố tình viết mã tạo bug để sau này đăng ký sửa lỗi hay phát triển các phiên bản tiếp theo

  • Điều 8: Không bao giờ viết code mà cố ý phá vỡ mã của một lập trình viên khác với mục đích hạ uy tín người đó hay đánh bóng bản thân

  • Điều 9: Không bao giờ che giấu những khó khăn đã biết đối với việc hoàn thành dự án trong bất kỳ giai đoạn phát triển nào, đặc biệt là giai đoạn thiết kế

  • Điều 10: Không bao giờ cố tình hạ thấp khó khăn của việc hoàn thành một dự án

  • Điều 11: Báo cáo bất kỳ hoạt động bất hợp pháp nào của người sử dụng lao động

  • Điều 12: Không bao giờ phỉ báng sự chuyên nghiệp, các chuyên gia khác

  • Điều 13: Không bao giờ phủ nhận sự tồn tại của lỗi

  • Điều 14: Không bao giờ tiết lộ tri thức hay bí mật của công ty

  • Điều 15: Không bao giờ chấp nhận tiền công hay tiền đền bù từ nhiều bên cho cùng một kết quả công việc trừ khi được cho phép

  • Điều 16: Không bao giờ thực hiện công việc cạnh tranh mà không có sự hiểu biết chung của tổ chức

  • Điều 17: Không bao giờ che giấu thông tin với các thành viên khác của nhóm phát triển

  • Điều 18: Không bao giờ che giấu với người sử dụng lao động hay công ty lợi ích tài chính của họ trong các thông tin liên quan đến nguồn lực phát triển dự án

  • Điều 19: Không bao giờ che giấu bất kỳ xung đột lợi ích nào có thể ảnh hưởng đến dự án

  • Điều 20: Không bao giờ tìm kiếm lợi nhuận bên ngoài từ một dự án đã được tài trợ bởi một bên thứ hai mà không được phép của họ. Nếu được cho phép bán lại một sản phẩm, sản phẩm đó nên được giảm giá

  • Điều 21: Không bao giờ làm hại uy tín và danh tiếng của người sử dụng lao động, công ty hoặc các thành viên khác thuộc nhóm phát triển

  • Điều 22: Không bao giờ xuyên tạc kiến thức, kinh nghiệm hay khả năng của cá nhân

  • Điều 23: Không bao giờ lấy tiền hay uy tín từ kết quả công việc của người khác

  • Điều 24: Không bao giờ ăn cắp phần mềm, đặc biệt là các công cụ phát triển

  • Điều 25: Không bao giờ che giấu những thiếu sót của các lập trình viên khác bằng cách viết mã giúp họ và cho PASS coi như là công việc của họ

  • Điều 26: Không được cài đặt ứng dụng của bên thứ ba mà không được sự cho phép của người dùng

  • Điều 27: Luôn cập nhật sự tiến bộ của lĩnh vực Khoa học Máy tính

  • Điều 28: Không bao giờ bắt buộc người dùng cập nhật trừ khi phải thông báo và được họ đồng ý

Nguồn https://www.gammadyne.com/ethics.htm

Cũng không có gì quá to tát cả. Tôi giới thiệu ra đây để anh chị em có cơ hội tham khảo và áp dụng. Những điều chỉ ra ở đây là vấn đề về ý thức chứ chưa phải là vấn đề về kĩ năng.

Hi vọng lập trình viên DEHA ngày càng giỏi giang, hoàn thiện.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *