Đạo đức trong phát triển phần mềm
Câu 1: Trình bày lại các quy định bằng tiếng Việt, trình bày theo cách hiểu của sinh viên, không sử dụng các công cụ dịch như google translate để dịch lại nội dung và copy phần dịch vào bài làm. Sinh viên cho ví dụ minh họa (có thể lấy thực tế hoặc tự nghĩ ra các tình huống có thể xảy ra trong thực tế)
Câu 2: Lấy 5 ví dụ bạn biết được, hoặc đọc trên báo chí về các trường hợp vi phạm nguyên tắc đạo đức khi phát triển phần mềm và phân tích chi tiết điều luật trong IEEE/ACM Code of Ethics bị vi phạm.
Bài làm
Trong việc phát triển phần mềm, kỹ sư phần mềm không chỉ phải áp dụng các kĩ năng của mình vào công việc mà còn phải tuân theo các đạo đức - đạo đức trong phát triển phần mềm. Đạo đức trong phát triển phần mềm không đơn giản chỉ là tuân theo luật pháp mà còn liên quan đến các bộ nguyên tắc đúng đắn về mặt đạo đức. Các nguyên tắc bao gồm:
Principle 1: PUBLIC (Tính cộng đồng)
Các kỹ sư phần mềm phải hành động nhất quán vì lợi ích cộng đồng. Mọi hành động gây hại đến người khác đều bị ngăn cấm.
1.01. Nhận hoàn toàn trách nhiệm về lỗi mà mình gây ra.
VD: Khi mình tạo ra một phần mềm mạng xã hội cho người dùng nhưng lại bị để lộ lỗ hỏng cho hacker lợi dụng đánh cắp thông tin của người dùng thì mình phải biết nhận lỗi và phải thực hiện vá lỗi.
1.02. Đặt lợi ích của khách hàng và lợi ích của cộng đồng lên hàng đầu những vẫn bảo toàn lợi ích của cá nhân - kỹ sư phần mềm.
VD: Khi tham gia một dự án, với cương vị của mình là một kỹ sư phần mềm thì mình phải đặt lợi ích của khách hàng lên hàng đầu, có nghĩa là phải hoàn thành dự án tốt nhất để mang lại lợi ích cho tất cả các bên.
1.03. Chỉ phê duyệt các phần mềm khi nó đã vượt qua các bài kiểm tra về thông số kỹ thuật và không làm giảm chất lượng cuộc sống hoặc gây hại cho môi trường. Mục đích cuối cùng của phần mềm là vì lợi ích cộng đồng.
VD: Khi mình có cương vị là một người kiểm thử thì mình có trách nhiệm phải kiểm thử kỹ càng tất cả mọi mặt, mọi vấn đề có thể xảy ra với phần mềm của mình, tránh có lỗi bất lợi cho cộng đồng.
1.04. Bày tỏ quan điểm của mình khi thấy một phần mềm có thể gây hại cho mọi người xung quanh.
VD: Khi xây dựng phần mềm, mình phát hiện phần mềm đó có thể làm hỏng hệ điều hành của người dùng thì mình phải góp ý ngay vào việc đó để làm cho phần mềm tốt hơn.
1.05. Phải biết hợp tác cùng nhau, làm việc nhóm để giải quyết những vấn đề nghiêm trọng do phần mềm gây ra.
VD: Với các phần mềm khó hoặc đòi hỏi thời gian dài để thực hiện thì mình phải biết cách làm việc nhóm có hiệu quả nhất để đem lại tốc độ hoàn thành nhanh và độ chính xác cao.
1.06. Thành thật với chính mình và chính phần mềm mình làm ra.
VD: Khi phát hành một phần mềm, thì khi công bố chúng thì mình phải thông báo thật những thứ mình làm ra, không lừa đảo hoặc nói quá lên về các chức năng của phần mềm.
1.07. Tạo mọi điều kiện để mọi người được tiếp cận với lợi ích của phần mềm một cách tốt nhất.
VD: Khi mình tạo ra một trò chơi mang lại kiến thức tốt và phần thưởng hấp dẫn thì mình phải tạo mọi điều kiện tốt nhất để mọi người tham gia.
1.08. Khuyến khích mọi người sử dụng các kỹ năng đóng góp cho các mục đích tốt, vào sự nghiệp giáo dục cộng đồng liền quan đến ngành học.
VD: Khi mình là một kỹ sư dày dặn kinh nghiệm thì mình phải khuyến khích mọi người biết tuân theo đạo đức trong phát triển phần mềm, khuyến khích mọi người cống hiến hết sức mình cho công việc và ngành nghề này.
Principle 2: CLIENT AND EMPLOYER (Khách hàng và Chủ lao động)
Các kỹ sư phần mềm phải làm việc theo một cách có lợi nhất cho khách hàng, dự án và chủ lao động phù hợp với lợi ích của cộng đồng
2.01. Cống hiến hết mình cho dự án của mình và thẳng thắng khi mình có bất cứ hạn chế nào về kinh nghiệm hay trình độ học vấn của mình.
VD: Với một dự án khó, mình phải thẳng thắng bày tỏ về hạn chế của mình, sự thiếu hụt kiến thức của mình để mọi người có thể giúp đỡ, cùng với đó mình cũng phải không ngừng học hỏi thêm để hoàn thành dự án một cách tốt nhất.
2.02. Không sử dụng các phần mềm lậu, vi phạm pháp luật.
VD: Khi sử dụng các phần mềm để lập trình hay soạn thảo, mình phải sử dụng các ứng dụng bản quyền để vừa ủng hộ các kỹ sư phần mềm đã tạo ra sản phẩm mình sử dụng, vừa không đi ngược với đạo đức.
2.03. Sử dụng tài sản của công một cách hợp lý và chỉ sử dụng khi có sự đồng ý của khách hàng hoặc chủ lao động.
VD: Trong lúc làm việc, ta thấy một người khác sử dụng máy tính của công ty để chơi game đánh bài trên mạng, ta phải ngăn cản ngay vì làm như vậy là sử dụng tài sản công cho mục đích riêng và điều đó là điều cấm kỵ.
2.04. Đảm bảo tất cả tài liệu đều đã được phê duyệt bởi người có thẩm quyền chuyên môn.
VD: Khi làm xong một phần mềm, thì nó cần phải được kiểm thử kỹ càng và phải được duyệt bởi người có thẩm quyền trước khi tung nó ra thị trường.
2.05. Bảo mật thông tin về khách hàng và chủ lao động trong trường hợp các thông tin đó là hợp pháp.
VD: Trong khi làm việc, mọi thông tin của khách hàng và dự án đều là tuyệt mật, không được tiết lộ với bất cứ ai.
2.06. Bảy tỏ ý kiến với khách hàng và chủ lao động khi thấy dự án có khả năng thất bại hay vi phạm luật sở hữu trí tuệ hoặc có vấn đề.
VD: Google đã sử dụng trái phép hơn 11000 dòng code API của Oracle nhưng vẫn cho nó là hợp pháp.
2.07. Khi có bất kể thay đổi gì trong dự án, kỹ sư có trách nhiệm phải báo cáo với khách hàng và người chủ lao động.
VD: Trong dự án tạo ra trò chơi điện tự, với chức năng di chuyển của trò chơi sử dụng các phím "a, w, s, d" nhưng nó bất tiện cho người chơi, ta thực hiện thay đổi nó thành các phìm mũi tên thì lúc thay đổi ta phải báo cáo với cấp trên để xin ý kiến và báo cáo sự thay đổi đó.
2.08. Không chấp nhận các công việc bên ngoài có gây bất lợi cho công việc mà họ đang thực hiện cũng như chủ lao động.
VD: Anh A vừa là lập trình viên và vừa làm part-time nhân viên quán cafe, khi anh nhận dự án lơn thì anh phải tập trung vào công việc của mình, dự án của mình, không được để các công việc khác phân tâm, tức phải bỏ qua công việc part-time.
2.09. Nếu phát hiện dự án không mang lại lãi suất cho khách hàng và chủ lao động thì phải báo ngay cho họ.
VD: Trong một dự án tạo ứng dụng mạng xã hội, ta cảm thấy ứng dụng của ta khi ra mắt không thể cạnh tranh với các mạng xã hội khác như Facebook, Zalo,... thì ta phải bảy tỏ ý kiến của bản thân để dừng tạo ra phần mềm khi cần thiết
Principle 3: PRODUCT (Sản phẩm)
Các kỹ sư phần mềm phải đảm bảo rằng sản phẩm của họ phải đạt được chất lượng chuyên môn cao nhất có thể.
3.01. Cố gắng đạt được sản phẩm chất lượng cao, chi phí thấp nhất và vạch ra lịch trình làm việc hợp lý để đạt được mục tiêu ấy.
VD: Trong một dự án phát triển game, ta phải cố gắng cải thiện hiệu năng của trò chơi để nó tương thích tốt nhất với máy của mọi người.
3.02. Đề xuất và đảm bảo các mục tiêu có thể đạt được trong bất kỳ dự án nào.
VD: Trong dự án, ta chỉ đề xuất các chức năng mà phần mềm của mình có thể đạt được và có trách nhiệm hoàn thành chúng.
3.03. Giải quyết tất cả các vấn đề về đạo đức, kinh tế, văn hoá, luật pháp và môi trường liên quan đến dự án, sản phẩm.
VD: Trong một dự án X, anh A có nhiệm vụ phải hạn chế kinh phí, làm cho sản phẩm thân thiệt với môi trường.
3.04. Đánh giá đúng năng lực của mình để nhận công việc. Nếu không đủ có thể đề xuất vừa làm việc vừa đào tạo thêm kinh nghiệm
VD: Trong cuộc phỏng vấn, việc anh A nói quá về kỹ năng làm việc của mình là trái với đạo đức vì dễ làm cho dự án không thành công.
3.05. Đảm bảo sử dụng phương pháp thích hợp cho dự án mà họ làm việc.
VD: Trong dự án Y, khi tạo ra phần mềm trò chơi, anh A đề xuất sử dụng phím di chuyển là "a, w, s, d" cho thuận tiên với người chơi.
3.06. Làm việc tuân theo các quy định chuyên môn và đạo đức.
VD: Anh A làm việc trong công ty thì phải tuân theo các quy định làm việc của công ty và đạo đức nghề nghiệp của mình.
3.07. Cố gắng hiểu các thông số kỹ thuật, cách hoạt động mà phần mềm họ làm ra.
VD: Với một phần mềm mà mình làm ra, mình phải là người hiểu rõ về phần mềm nhất.
3.08. Đảm bảo phần mềm đáp ứng đầy đủ các yêu cầu và đã qua phê duyệt.
VD: Khi nhận được đơn hàng từ khách hàng thì phải nghiên cứu hết tất cả chức năng cần có.
3.09. Bảy tỏ ý kiến cá nhân về sản phầm một cách có chuyên môn.
VD: Khi được giao một sản phẩm thì nên tính toán ước lượng trước nguồn chi phí để làm việc không bị thiếu hụt.
3.10. Đảm bảo kiểm tra, bảo trì các phần mềm và các tài liệu liên quan mà chúng hoạt động dựa vào đó.
VD: Khi phát hành một ứng dụng game, người lập trình viên nên thường xuyên theo dõi để kiểm soát lỗi của nó.
3.11. Chuẩn bị các giải pháp khi các vấn đề nghiêm trọng có thể xảy ra.
VD: Khi phát hành ứng dụng game thì nên hướng dẫn cách làm giảm độ lag, tăng độ mượt, độ chi tiết...
3.12. Tôn trọng quyền riêng tư của người khác có thể bị ảnh hưởng tới phần mềm đó.
VD: Khi chúng ta xây dựng một ứng dụng để bán hàng, chúng ta chỉ sử dụng thông tin cá nhân khi cần thiết, không đánh cắp và bán cho bên thứ 3.
3.13. Chỉ sử dụng các dữ liệu sau thi thông qua các phép lọc có chuyên môn và phù hợp với lợi ích cộng đồng.
VD: Khi làm dự án xử lý thông tin, phải lọc các thông tin bằng các phương pháp chuyên môn.
3.14. Duy trì tính toàn vẹn của dữ liệu.
VD: Trong dự án làm việc với dữ liệu nhiều, thì ta có nghĩa vụ phải quản lý tốt dữ liệu để tránh hao hụt.
3.15. Bảo trì phần mềm thường xuyên để có được hiệu năng tốt nhất.
VD: Với các người máy AI thì người lập trình cần bảo trì phần mềm suy nghĩ của nó thường xuyên để nó có hiệu năng tốt nhất.
Principle 4: JUDGMENT (Đánh giá)
Các kỹ sư phần mềm phải đánh giá một cách độc lập, khách quan nhất theo chuyên môn của mình.
4.01. Tiết chế các đánh giá kỹ thuật và duy trì các giá trị con người
VD: Khi đóng góp từ thiện thì không nên hiển thị thông tin chi tiết của người đóng góp để duy trì các giá trị nhân văn.
4.02. Chỉ phê duyệt các tài liệu liên quan đến chuyên môn.
VD: Trong các phép lọc dữ liệu, người kỹ sư có nhiệm vụ lọc những dữ liệu chỉ liên quan đến chuyên môn của mình.
4.03. Đánh giá khách quan và độc lập với bất kỳ phần mền hay tài liệu nào.
VD: Đánh giá phần mềm của người quen hay người lạ thì phải đánh giá nó bằng cách khách quan nhất có thể.
4.04. Không tham gia vào các hoạt động tài chính lừa đảo.
VD: Lập trình ra các web-site đánh bạc qua mạng là sai trái.
4.05. Tránh xảy ra các cuộc xung đột không đáng có vì phần mềm và dự án.
VD: Trong các cuộc thảo luận của dự án, các kỹ sư không nên làm theo cách riêng của mình mà phải thống nhất ý kiến, tránh các xung đột vật lý.
4.06. Từ chối tham gia các tổ chức tư nhân mà trong đó chủ lao động và khách hàng có những xung đột.
VD: Công ty X và công ty Y có xung đột với nhau, công ty X mới anh A về làm việc thì anh A phải từ chối.
Principle 5: MANAGEMENT (Quản lý)
Khi là quản lý hay lãnh đạo của một dự án, các kỹ sư phần mềm thúc đấy các nhân viên mình làm việc một cách tốt nhất, phù hợp với đạo đức trong việc quản lý, bảo trì và phát triển phần mềm.
5.01. Đảm bảo quản lý tốt dự án, hoàn thành tốt công việc mình được giao.
VD: Với tư cách là một người quản lí thì nên xây dựng một quy trình sao cho quá trình sản xuất phần mềm thuận lời, đạt hiệu quả cao nhất.
5.02. Thông báo với các kỹ sư phần mềm khác về tiêu chuẩn của dự án.
VD: Vơi tư cách là một người quản lý thì ta phải có nhiệm vụ nhắc nhở mọi người về tiêu chuẩn của dự án kĩ càng.
5.03. Đảo bảo các thành viên trong đội phải am hiểu về các chính sách và quy trình của dự án được đề ra.
VD: Khi làm trong công ty ngân hàng thì kỹ sư phải am hiểu về các chính sách để tránh vi phạm pháp luật.
5.04. Giao công việc cho những người phù hợp với công việc đó.
VD: Trong dự án, việc tối ưu hiệu năng là công việc khó nên nó phải được giao cho người giỏi nhất hoặc một nhóm hoạt động tốt.
5.05. Thông báo với các thành viên về các định lượng thực tế của dự án.
VD: Một số công ty đăng thông tin tuyển dụng sai lệch với thực tế về mức lương, môi trường làm việc.
5.06. Đưa ra các thông tin chính xác, mô tả đầy đủ các điều khoản của dự án.
VD: 2 người ở cùng một công ty, một chức bậc, một vị trí, một công việc, một thời gian làm việc và có cùng một năng lực thì số tiền nhận được thì sẽ không chênh nhau là bao.
5.07. Trả lương công bằng và chính đáng cho các thành viên.
VD: Với cương vị là quản lý thì ta phải trả lương theo năng lực của nhân viên một cách chính đáng.
5.08. Không vô cớ ngăn cản ai đó đảm nhận vị trí mà người đó đủ tiêu chuẩn.
VD: A muốn ứng cử lên làm quản lí đội phát triển, nhưng B ganh tị và không muốn A đạt được chức vụ này.
5.09. Đảm bảo rằng có các thoả thuận công bằng giữa chủ lao động, khách hàng và kỹ sư phần mềm.
VD: Khi bắt đầu làm việc, ta phải đảm bảo hợp đồng làm việc của ta với chủ lao động và khachs hàng phải công bằng cho mọi bên.
5.10. Đưa ra các hình phạt phù hợp cho các thành viên vi phạm.
VD: Khi có 1 thành viên vi phạm, ta phải đưa ra hình phạt hợp lý với cương vị là quản lý dự án.
5.11. Không yêu cầu các kỹ sư phần mềm làm điều gì trái với quy tắc đạo đức.
VD: Anh A - quản lý dự án bắt anh B qua phần mềm đánh cắp thông tin của khách hàng để bán cho công ty tài chính.
5.12. Không trừng phạt ai một cách vô lý khi họ bày tỏ quan điểm về dự án.
VD: Khi anh A bày tỏ quan điểm về dự án, mặc dù nó đúng nhưng nó bất lợi với mình, mình đuổi việc anh ấy. Việc đó là sai với đạo đức nghề nghiệp.
Principle 6: PROFESSION (Chuyên nghiệp)
Các kỹ sư phần mềm phải nâng cao danh tiếng nghề nghiệp của mình, không được làm ô uế và phải phù hợp với lợi ích cộng đồng.
6.01. Góp phần phát triển một môi trường làm việc tốt, thuận lợi.
VD: Góp phần tạo ra môi trường để cho mọi người có thể cư xử đạo đức với nhau hơn, không thuốc lá khi làm việc,...
6.02. Thúc đẩy kiến thức của công chúng về kỹ thuật phần mềm.
VD: các lập trình viên tạo ra các diễn đàn, các video, các blog chia sẻ về kiến thức công nghệ phần mềm cho cộng đồng
6.03. Mở rộng kiến thức của bản thân bằng cách tham gia vào các tổ chức chuyên nghiệp.
VD: Anh A tham gia các buổi hội thảo, họp báo về công nghệ để mở rộng kiến thức.
6.04. Hỗ trợ đồng nghiệp khi cần.
VD: Khi anh A gặp trục trặc trong việc lập trình các chức năng, anh B là người có kinh nghiệm trong phần này, lập tức hỗ trợ anh A
6.05. Không vụ lợi cho bản thân.
VD: Công ty trả cho chúng ta 30.000 cho 1 tiếng làm việc, nên cố gắng cống hiến trong khoảng thời gian đó thay vì phí phạm thời gian đó.
6.06. Tuân thủ các điều khoản, ngoại lệ khi nó không phù hợp với lợi ích cộng đồng.
VD: Khi tham gia 1 dự án, ta phải tuân thủ các điều khoản mà nó đề ra.
6.07. Thành thật với chính phần mềm mình làm ra.
VD: Khi phát hành một phần mềm, thì khi công bố chúng thì mình phải thông báo thật những thứ mình làm ra, không lừa đảo hoặc nói quá lên về các chức năng của phần mềm.
6.08. Chịu trách nhiệm bảo trì, sửa lỗi khi phần mềm xảy ra vấn đề.
VD: Khi phát triển phần mềm, với cương vị là một lập trình viên thì phải liên tục bảo trì, sửa lỗi chúng.
6.09. Đảm bảo rằng mọi người đều biết về quy tắc đạo đức trong phát triển phần mềm.
VD: Tuyên truyền cho mọi người về đạo đức trong phát triển phần mềm
6.10. Tránh liên kết với các tổ chức khác có thể gây hại cho chủ lao động và khách hàng.
VD: Anh A làm trong công ty X, nên anh A không được làm việc cho công ty Y đang cạnh tranh với công ty X
6.11. Nhận thức được các hành vi vi phạm đạo đức.
VD: Anh A đang lập trình thì anh A phải tự nhận thức được mình phải làm cho thật tốt công việc của mình.
6.12. Bảy tỏ mối quan ngại với những người không tôn trọng quy tắc này.
VD: Anh B không tôn trọng quy tắc này, anh A có trách nhiệm giảng giải thêm để anh B hiểu biết thêm về quy tắc này
6.13. Báo cáo các hành vi vi phạm nguyên tắc này với các cơ quan có thẩm quyền
VD: Anh B thấy anh A sử dụng phần mềm không bản quyền, lập tức báo cáo với cơ quan có thẩm quyền.
Principle 7: COLLEAGUES (Đồng nghiệp)
Các kỹ sư phần mềm phải biết hỗ trợ đồng nghiệp của mình và hỗ trợ theo cách công bằng nhất.
7.01. Khuyến khích các đồng nghiệp tuân theo quy tắc này.
VD: Trong môi trường làm việc, ta có trách nhiệm khuyến khích mọi người tuân theo đạo đức trong phát triển phần mềm.
7.02. Hỗ trợ đồng nghiệp trong chuyên môn.
VD: Anh B gặp rắc rối, anh A lập tức giúp đỡ.
7.03. Ghi chú đầy đủ về công việc và không nhận hối lộ.
VD: Anh A đang làm việc cho công ty X, khi được công ty Y đề xuất nhận hối lộ để tiết lộ cơ mật của công ty X, anh A từ chối.
7.04. Xem lại dự án một cách chi tiết nhất.
VD: Trong dự án, mình có trách nhiệm kiểm kê thì mình phải xem lại một cách kỹ càng nhất.
7.05. Công bằng khi lắng nghe và đánh giá các thành viên khác.
VD: Lúc thảo luận nhóm, mình phải lắng nghe mọi ý kiến trước rồi mơi nhận xét điểm chung và riêng, lợi và hại của từng ý kiến
7.06. Hỗ trợ đồng nghiệp nhận thức đầy đủ về mục tiêu và các quy trình làm việc.
VD: Trong dự án, ta phải phổ biến cho đồng nghiệp các mục tiêu đã đề ra của phần mềm.
7.07. Không can thiệp quá sâu vào vấn đề cá nhân của đồng nghiệp khác.
VD: Anh B có vấn đề trong chuyện yêu đương, anh A không được can thiệp vào
7.08. Trong các tình huống vượt ngoài lĩnh vực làm việc, hãy lằng nghe ý kiến từ các chuyên gia khác có chuyên môn hơn.
VD: Ta đang gặp vấn đề về hình ảnh trong phần mềm thì ta cần lắng nghe thêm ý kiến ở mảng đồ hoạ.
Principle 8: SELF (Bản thân)
Các kỹ sư phần mềm phải không ngừng học hỏi, nâng cao tay nghề.
8.01. Không ngừng nâng cao kiến thức chuyên môn của mình.
VD: Thế giới hiện nay càng ngày càng phát triển, ta phải không ngừng học hỏi trau dồi thêm kiến thức.
8.02. Cải thiện khả năng của mình đẻ tạo ra các phần mềm tốt hơn, tin cậy hơn và an toàn hơn.
VD: Không ngừng học tập để phát triển, tạo ra phần mềm tốt hơn phần mềm đã có.
8.03. Nâng cao khả năng của mình để tạo ra phần mềm, tài liệu chính xác, đẩy đủ.
VD: Trau dồi kiến thức để viết ra cuốn sách lập trình hay.
8.04. Nâng cao hiểu biết của họ về các phần mền và tài liệu liên quan.
VD: Sử dụng nhiều phần mềm, đọc nhiều sách để biết thêm về công nghệ, phần mềm.
8.05. Nâng cao kiên thức về các tiêu chuẩn liên quan đến phần mềm.
VD: Mình tham gia các hội thảo về phần mềm để nâng cao kiến thức của mình về công nghệ, các tiêu chuẩn mới.
8.06. Nâng cao kiến thức về quy tắc và cách giải thích quy tắc này.
VD: Ta không chỉ học mà phải thấm nhuần và phát huy hơn nữa đạo đức trong phát triển phần mềm
8.07. Không đối xử bất công với bất kỳ ai vì có định kiến không phù hợp.
VD: Anh A có định kiến với phần mềm của mình, mình đánh anh A. Như vậy là trái với đạo đức.
8.08. Không được can thiệp công việc của người khác.
VD: Anh B có vấn đề trong chuyện yêu đương, anh A không được can thiệp vào,
8.09. Nhận thức được vi phạm các quy tắc về đạo đức trong phát triển phần mềm là đang cản trở bản thân trở thành một kỹ sư phần mềm chuyên nghiệp.
VD: Khi mình thấm nhuần đạo đức này, có thể nhận thức được các việc trái với đạo đức, giúp mình tiến xa hơn trên con đường công nghệ phần mềm.
Đạo đức trong công nghệ phần mềm là điều đầu tiên mà mỗi kỹ sư lập trình phải học và thấm nhuần chúng, nhưng một số trường hợp hy hữu vẩn xảy ra:
(1) 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.
Theo như các điều luật trong IEEE/ACM đã vi phạm các nguyên tắc sau:
- Nguyên tắc 1: Gây ra lỗi nghiêm trọng đến cộng đồng.
- Nguyên tắc 5: Người quản lý đã phê duyệt máy chiếu mà không kiểm thử kỹ càng.
- Nguyên tắc 3: Sản phẩm chưa đạt được hiệu quả cao nhất, thiếu sót dẫn đến hậu quả nghiêm trọng.
(2) 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. Theo như các điều luật trong IEEE/ACM đã vi phạm các nguyên tắc sau:
- Nguyên tắc 6: Với 1 con worm thì các kỹ sư phải thừa biết nó có thể gây hại cho cộng đồng những vẫn làm ngơ.
(3) 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
Theo như các điều luật trong IEEE/ACM đã vi phạm các nguyên tắc sau:
- Nguyên tắc 1: Ảnh hưởng đến cộng đồng.
- Nguyên tắc 3: Máy bơm chưa đạt kết quả tốt mà đã đem ra sử dụng dẫn đến hậu quả nghiêm trọng
- Nguyên tắc 5: Quá trình kiểm thử còn sơ sài.
(4) Mới đây, đầu những nằm 2018, Facebook bị người dùng cáo buộc vi phạm về quyền riêng tư khi chia sẽ dữ liệu của họ với bên thứ 3, bao gồm cả Công ty tư vấn Cambridge Analytica của Anh. Kể từ vụ bê bối này, Facebook đã xoá quyền truy cập dữ liệu khỏi hàng ngàn ứng dụng bị nghi ngờ lạm dụng, đồng thời hạn chế lượng thông tin có sẵn cho các nhà phát triển và giúp người dùng dễ dàng điều chỉnh các hạn chế về chia sẽ dữ liệu cá nhân.
Theo như các điều luật trong IEEE/ACM đã vi phạm các nguyên tắc sau:
- Nguyên tắc 1: Không tuyên bố với mọi người về lỗi của mình vì để thông tin người dùng bị chia sẽ.
- Nguyên tắc 2: Làm lộ thông tin người dùng làm ảnh hưởng cuộc sống, tiền bạc của họ.
(5) Google đã ăn cắp hơn 11000 dòng mã API Java của Oracle để sử dụng trong quá trình phát triển hệ điều hành Android thuộc về "sử dụng hợp pháp" và không vi phạm bản quyền. Tranh chấp bản quyền này bắt nguồn từ việc Google phát triển nền tảng Android. Vào thời điểm đó, Google đã sao chép tên và kiểu tham số các hàm Java để Android tương thích với Java, những mã này có thể hiểu đơn giản là giao diện JavaAPI
Theo như các điều luật trong IEEE/ACM đã vi phạm các nguyên tắc sau:
- Nguyên tắc 1: Google đã lừa dối Oracle khi tuyên bố các dòng mã API đó là hợp pháp và không vi phạm bản quyền