Thế nào là đạo đức nghề lập trình? Có xảy ra với doanh nghiệp của bạn?

Thế nào là đạo đức nghề lập trình?  Có xảy ra với doanh nghiệp của bạn?

Đạo đức có lẽ là một trong những bài học sớm nhất của mỗi người. Không biết các bạn thế nào chứ từ bé mình đã được dạy “sống phải có có đạo đức”, thậm chí mình còn được dạy điều đó trước khi mình thực sự hiểu được “đạo đức là gì”.

Đạo đức là gì?

Đạo đức là một từ Hán Việt, được dùng từ xa xưa để chỉ một thành tố trong tính cách và giá trị của mỗi con người. Đạo có nghĩa là con đường, Đức có nghĩa là tính tốt hoặc những công trạng tạo nên. Khi mình nói một người có đạo đức ý là nói người đó có nếp sống chuẩn mực với xã hội, có nét đẹp trong đời sống và cả tâm hồn.

Đạo đức nghề nghiệp là gì?

Đạo đức nói chung thì là chuẩn mực của xã hội. Còn đạo đức nghề nghiệp là những chuẩn mực trong nghề nghiệp mà mình nói đến, ở mỗi ngành nghề lại có chuẩn mực khác nhau.

Ví dụ ở đạo đức trong nghề giáo dục là:

  • Không gian lận trong thành tích học tập, thi đua
  • Luôn giúp đỡ học sinh, sinh viên của mình
  • Đối xử công bằng với tất cả học sinh, sinh viên của mình

Đạo đức trong nghề y:

  • Lấy việc cứu chữa người bệnh là trên hết
  • Kê thuốc đúng liều lượng và an toàn
  • Chữa bệnh vì đúng lương tâm, không chữa vì đồng tiền

Ngành nghề nào cũng cần phải có đạo đức nghề nghiệp

Không bất ngờ nếu nghề lập trình cũng cần nhấn mạnh về “Đạo đức nghề nghiệp”. Thực tế là trong xã hội,  dù bạn làm gì, ở đâu thì cũng cần tuân theo những quy định, quy chuẩn về đạo đức. Đó là cách cư xử phù hợp, là lối hành xử cần phải có với mỗi bổn phận, vị trí trong công việc và xã hội, thậm chí có cả những “luật” phải tuân thủ, được quy định bằng các quy định pháp luật. Nếu phạm phải, người làm nghề thậm chí có thể bị ảnh hưởng nghiêm trọng.

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

Đây chính là phần quan trọng mà mình muốn nhấn mạnh trong bài viết này – Đạo đức nghề lập trình.

Như bạn thấy rồi đó, công nghệ đang dần làm thay đổi cuộc sống của chúng ta bằng cách có mặt trong tất cả các lĩnh vực trong xã hội. Từ kinh tế, chính trị, giáo dục, y tế cho tới vận tải, du lịch, giải trí,… nói chung là không chừa bất kỳ một ngành nghề nào mà không có sự góp mặt của công nghệ cả. Điều này khiến cho các lập trình viên cảm thấy thật vinh dự và tự hào. Nhưng càng vinh dự, tự hào bao nhiêu thì trách nhiệm cũng lớn bấy nhiêu.

Thật vậy, xin kể một câu chuyện để chứng minh điều này.

Một developer phát triển phần mềm giao dịch ngân hàng nhưng chẳng may quên một dấu chấm phẩy, gây ra lỗi nghiêm trọng (Exception) và làm sai sót trong các phiên giao dịch. Trong khi công ty X sử dụng dịch vụ của ngân hàng này để trả lương cho anh A, vì tính năng giao dịch bị lỗi nên ngân hàng mặc dù đã ghi nhận công ty X đã trả lương nhưng tài khoản của anh A vẫn không nhận được tiền. Vậy là anh A bị mất lương tháng này, không có tiền trả tiền nhà trọ, không có tiền đưa "bạn gái đi chơi", tệ hơn, anh A còn bị bạn gái bỏ vì bị nghi ngờ mang tiền đi cho cô bạn gái khác.

Vậy là chỉ từ câu chuyện của một dấu chấm phẩy đã đưa số phận của anh A sang một trang mới.

Mặc dù câu chuyện trên là hư cấu, nhưng không hẳn là không có những chuyện như vậy xảy ra. Trong thực tế, đã từng xảy ra những tình huống mà developer chúng ta vô tình “giết người”. Vâng, giết người đấy bạn không nghe lầm đâu.

Xin tiếp tục được lấy dẫn chứng như sau

  • Sự kiện cỗ máy Therac-25 gây ra 6 tai nại thảm khốc trong những năm từ 1985 đến 1987 chính là câu chuyện nổi tiếng nhất về việc những dòng code giết người. Therac-25 là một cỗ máy xạ trị cho bệnh nhân ung thư được sản xuất vào năm 1982. Do sai lầm trong việc code và kiểm thử, máy chiếu phóng xạ quá liều, làm chết 4 người, bị thương 2 người.
  • Năm 1994 ở Scotland, lỗi phần mềm dẫn đến một vụ tai nạn máy bay, giết chết 29 người.
  • Tháng 6 năm 2010, con worm máy tính Stuxnet được các chuyên viên Semactec tìm thấy. Con worm “vô hại” này được biết là có khả năng thâm nhập và phá hoại các lò phản ứng hạt nhân. Stuxnex lây lan khá rộng ở Iran, nhưng chưa rõ có lò phản ứng nào bị nổ hay thiệt hại vì nó chưa.
  • Cơ quan quản lý thực phẩm và dược phẩm Hoa Kỳ (FDA) đã xác nhận sự liên quan giữa các vấn đề phần mềm của máy bơm thuốc tiêm truyền với hơn 700 ca tử vong và 20 000 ca bị thương nặng từ năm 2005 đến 2009.

Mặc dù để xảy ra những sự việc đáng tiếc như vậy trách nhiệm không hoàn toàn thuộc về các developer, nhưng cũng không thể nói rằng chúng ta vô tội. Giá như chúng ta cẩn thận hơn một chút, giá như chúng ta chịu khó test thêm một test case nữa, giá như chúng ta tập trung hơn một chút nữa thì đã có thể cứu sống hàng chục sinh mạng, tiết kiệm hàng nghìn đô la, vun vén hạnh phúc lứa đôi cho hàng tỷ người trên thế giới. Nói thì nghe to tát vậy thôi chứ thực tế thì nó đúng là như vậy.

Một cuốn sách nổi tiếng về đạo đức nghề lập trình
Một cuốn sách nổi tiếng về đạo đức nghề lập trình

Lập trình cần phải có đạo đức như thế nào?

Sau một hồi các dẫn chứng thực tế lẫn bịa đặt, chắc bạn cũng nắm được phần nào về trách nhiệm và tầm ảnh hưởng của một developer tới xã hội rồi chứ. Vậy làm sao để developer chúng ta trở thành những người có đức đạo đức nghề nghiệp, luôn luôn code có đạo đức. IEEE-CS và ACM có một bài viết về code đức như thế này Software Engineering Code of Ethics and Professional Practice.

Nội dung bài viết này này gồm 8 nguyên tắc về public interestclient & employersản phẩmsự phán xétquản lýnghề nghiệpđồng nghiệp và bản thân.

Tóm tắt lại một số ý quan trọng như sau:

  1. Chỉ approve sản phẩm khi tin rằng nó an toàn: Tuyệt đối không cung cấp các sản phẩm không an toàn, làm giảm chất lượng cuộc sống, hay khi biết chắc chắn rằng nó sẽ ảnh hưởng xấu tới người khác.
  2. Sẵn sàng đóng góp kĩ năng của mình cho các mục đích tốt: Theo cách hiểu của mình thì là giúp đỡ các bạn newbie, đóng góp cho các phần mềm mã nguồn mở, nâng cao cảnh giác của mọi người về bảo mật, vv.
  3. Thành thật về kinh nghiệm và kĩ năng: Không khai man CV, không "chém gió" về khả năng của mình, không nhận những gì mà mình không làm. Nếu không tuân theo nguyên tắc này, ảnh hưởng tiêu cực cho bạn nhiều hơn là cho cộng đồng.
  4. Giữ bí mật thông tin có được trong quá trình làm việc: Giữ bí mật các thông tin của công ty, thông tin của team, thông tin vận hành sản phẩm, thông tin khách hàng,…
  5. Không chấp nhận các job "ngoài luồng" mà ảnh hưởng đến công việc chính: Nếu có nhận các job ngoài công ty thì hãy tranh thủ thời gian buổi tối và cuối tuần để làm việc, đừng làm trong lúc làm việc ở công ty.
  6. Cố gắng tối đa để đưa ra sản phẩm chất lượng cao, với một acceptable cost và schedule: Không phóng đại deadline, không vẽ thêm việc để làm, không charge tiền khách hàng quá mức.
  7. Không để lại nợ code (technical debt). Đây là món nợ rất xấu nếu code quá nhiều tiềm ẩn rủi ro, tương tự như nợ xấu ngân hàng. Nếu nợ code quá lớn đến mức các kỹ sư khác không thể bảo trì nổi, rốt cuộc phải đập đi làm lại, thì hậu quả vô cùng khủng khiếp tương tự như sự sụp đổ của một hệ thống ngân hàng. Có thể nói nợ code là hậu quả của chiến thuật "tiền trảm hậu tấu" mà các developer sử dụng để pass qua Test Case, đáp ứng yêu cầu hiện tại của khách hàng. Nhưng khi go-live sẽ phát sinh vô số vấn đề "bóng ma" đằng sau hàng triệu dòng code tưởng như sạch sẽ (cleanup).
  8. Trả lương công bằng: Ngược lại là một nhà quản lý, phải đảm bảo việc trả lương công bằng cho developer.
  9. Luôn không ngừng nâng cao bản thân: Dev phải cầu thị, luôn học hỏi để nâng cao trình độ kĩ thuật và kinh nghiệm của bản thân.
Một trong những hậu quả của đạo đức nghề nghiệp - đó là Nợ Code
Một trong những hậu quả của đạo đức nghề nghiệp - đó là Nợ Code (Nguồn: Asana)

Kết luận

Ngành nghề nào cũng vậy, cũng cần phải có đạo đức, đặc biệt là các ngành nghề ảnh hưởng nhiều tới xã hội như công nghệ thông tin, giáo dục, y tế, thực phẩm thì lại càng phải đề cao tinh thần đạo đức nghề nghiệp. Bởi nếu để ra sai sót dù nhỏ thì hậu quả chúng khó mà đoán trước được. Các cụ dạy cấm có sai “sai một ly, đi một dặm”.

Dưới đây là một số điều cơ bản trong đạo đức của một lập trình viên:

  1. Không bao giờ tạo ra và sử dụng phần mềm độc hại.
  2. Không dùng mã nguồn có bản quyền mà chưa được cho phép.
  3. Luôn cung cấp những sản phẩm đảm bảo an toàn và chất lượng.
  4. Trung thực về kinh nghiệm và kỹ năng lập trình của bản thân.
  5. Có ý thức trách nhiệm với sản phẩm mình làm ra.
  6. Trung thực trong đánh giá sản phẩm, không tư lợi cá nhân.
  7. Công nhận năng lực của người khác.
  8. Giữ bí mật thông tin trong quá trình hoàn thành dự án.
  9. Giảm thiểu tối đa sự ảnh hưởng của các tác nhân bên ngoài trong quá trình làm việc.
  10. Sẵn sàng giúp đỡ đồng nghiệp.
  11. Phát triển sản phẩm theo hướng có chi phí hợp lý nhất.
  12. Không ngừng nâng cao kiến thức, cải thiện trình độ bản thân
  13. Không cố tình phá vỡ mã của lập trình viên khác nhằm hạ uy tín của đối phương.
  14. Không che giấu khó khăn trong việc hoàn thành dự án, dù ở bất kỳ giai đoạn nào.
  15. Không ăn cắp phần mềm, đặc biệt là các công cụ dùng để phát triển.

Nếu bạn đã và đang có ý định theo nghề lập trình, thì những quy định trên đây hoàn toàn xứng đáng để bạn tham khảo, cân nhắc và thậm chí coi như là những quy tắc trong cuộc sống, công việc. Mong rằng các lập trình viên luôn giữ vững đạo đức nghề nghiệp để có những cống hiến tuyệt vời cho toàn xã hội, dù họ làm việc ở bất kỳ đâu.

St

 

Category