오늘날 개발자를 괴롭히는 12 가지 윤리적 딜레마

기술 세계는 항상 힘이 길고이 힘의 결과에 대해 생각하는 데 부족했습니다. 그것이 구축 될 수 있다면, 기술이 처음부터 구축되어야하는지 여부는 말할 것도없고 더 안전하고 건전한 방법을 고려하지 않고 그것을 구축 할 사람이 항상있을 것입니다. 소프트웨어가 작성됩니다. 어디서 어떻게 사용하는지 누가 신경 쓰나요? 그것은 코너 사무실에있는 누군가를위한 일입니다.

더 심각한 문제 : 윤리 과정은 물리 세계 공학 학위의 필수 요소가되었지만 컴퓨터 과학 교육학에서는 여전히 마지 못해 변칙적입니다. 그러나 소프트웨어가 우리 삶의 더 많은 부분을 차지함에 따라 프로그래머가 내린 결정의 윤리적 결과는 더 커질뿐입니다. 이제 우리의 코드가 냉장고, 온도 조절기, 화재 경보기 등에 있으므로 잘못된 움직임, 예지력 부족 또는 완전히 모호한 의사 결정이 모든 곳에서 인류를 괴롭힐 수 있습니다.

[앱 개발의 내용과 내용 : 15 가지 인기 프로그래밍 트렌드-15 가지 추위. | 프로그래밍 IQ 테스트, 3 라운드 및 "Hello, world"프로그래밍 언어 퀴즈를 통해 개발에 대해 얼마나 많이 알고 있는지 보여주세요. | 더 어렵지 않고 더 스마트하게 작업하십시오. 프로그래머가 알아야 할 모든 팁과 트렌드를 보려면에서 Developers 'Survival Guide를 다운로드하십시오. | 의 Developer World 뉴스 레터를 통해 최신 개발자 뉴스를 확인하십시오. ]

다음은 개발자가 알고 있든 모르 든 매일 개발자가 직면하는 윤리적 문제입니다. 작업의 본질이 너무 추상적이기 때문에 어떤면에서는 쉬운 답이 없습니다. 설상가상으로, 비즈니스는 컴퓨터 기술과 불가분의 관계가되어 오늘날의 비즈니스 사례 기능이 내일의 오웰 리안 악몽이되는 것을 막기 위해 모든 투자 당사자의 요구와 동기 간의 균형을 맞추기가 어렵습니다.

비결은 현재의 시대 정신을 지나서 당신이 구축 한 것의 모든 미래 활용을 예상하는 것입니다. 아주 간단 하죠? 이것을 당신의 결정을 내리기위한 가이드 북 이라기보다는 우리가 매일 업무의 일부로해야 할 윤리적 숙고의 시작점으로 생각하십시오.

윤리적 딜레마 1 : 로그 파일-저장 대상 및 처리 방법

프로그래머는 팩 쥐와 같습니다. 시스템을 디버그하는 유일한 방법이기 때문에 모든 기록을 보관합니다. 그러나 로그 파일은 또한 사용자가하는 모든 일을 추적하고 잘못된 손에 사용자가 비밀로 유지하려는 사실을 노출 할 수 있습니다.

많은 기업이 로그 파일을 적극적으로 보호하는 기반을 구축합니다. 일부 원격 백업 서비스는 서로 다른 지리적 위치에 추가 사본을 보관할 것을 약속합니다. 모든 사업이 그러한 부지런함을 열망하는 것은 아닙니다. 예를 들어 Snapchat은 데이터 백업의 매우 나쁜 작업을 수행하여 브랜드를 구축했지만 사용자는 잊어 버린 시스템의 자유에 매료되었습니다.

로그 파일의 존재만으로도 몇 가지 윤리적 질문이 발생합니다. 적절하게 보호되고 있습니까? 누가 액세스 할 수 있습니까? 우리가 파일을 파괴한다고 말할 때 그것들이 정말로 파괴됩니까?

핵심은 윤리적 또는 기타 위험을 감안할 때 어떤 정보를 보관할 가치가 있는지 확인하는 것입니다. 여기서 미래는 방정식을 복잡하게 만듭니다. 1960 년대에는 흡연이 널리 수용되었습니다. 아무도 사람들의 흡연 습관을 추적하는 것에 대해 두 번 생각하지 않았을 것입니다. 그러나 오늘날 누군가의 흡연 활동에 대한 지식은 건강 보험 요율을 높이거나 보장을 거부하는 데 사용될 수 있습니다.

미래의 비즈니스 거래 향후 정부 규정; 새로운 수익원에 대한 예상치 못한 절박한 필요성-무해한 로그 파일이 앞으로 문제가 될 것이라고 예측하는 것은 불가능할 수 있지만, 그 과정에서 로그를 처리하는 방법에 대한 윤리를 고려하는 것이 중요합니다.

윤리적 딜레마 2 : 사용자를 제품으로 전환할지 여부와 방법

이는 스타트 업 시대의 잘 알려진 격언입니다. 서비스 비용을 지불하지 않으면 고객이 아닙니다. 당신이 제품입니다.

인터넷에서는 "무료"서비스가 풍부합니다. 사실, 돈이 어디에서 나올지에 대한 질문은 종종 미루고 미루어집니다. 우리는 그저 놀라움을 구축하고 채택 지표를 주시하고 다른 사람이 서버 조명을 유지하는 더러운 작업을 처리 할 것이라고 생각합니다. 최악의 경우 항상 광고가 있습니다.

개발자는 누가 자신의 작업을 지원할 것이며 자금이 어디에서 나올지에 대해 미리 알아야합니다. 모든 변경 사항은 충격과 역류를 방지하기 위해 명확하고시기 적절하게 사용자에게 전달되어야합니다. 사람을 제품으로 바꾸는 것은 가볍게 받아 들여서는 안되는 윤리적 변화입니다. 그늘진 광고 거래, 그늘진 광고 네트워크-얼리 어답터의 암시 적 신뢰를 처리하는 방법에주의해야합니다.

윤리적 딜레마 3 : 콘텐츠가 실제로 얼마나 자유 로워지기를 원하는가?

많은 기업이 콘텐츠를 만드는 사람에게 비용을 지불하지 않고 콘텐츠를 제공하는 데 의존합니다. 일부는 돌아 서서 광고를 판매하거나 액세스 비용을 청구합니다. 이러한 비즈니스는 종종 생존 할 수 없으며 개발 비용의 공정한 몫을 부담해야하는 경우 재료의 가격을 매력적으로 책정 할 수 없습니다. 그들은 윤리적으로 흔들리는 결정을 은폐하기 위해 "공유"또는 "공정 사용"에 대해 정교한 합리화를 개발합니다.

개발자는 자신의 코드가 제작자에서 소비자에 이르기까지 먹이 사슬의 모든 사람을 어떻게 지원할 것인지 스스로에게 물어봐야합니다. 콘텐츠를 만드는 사람들이 자신의 작업이 이러한 방식으로 배포되기를 원합니까? 노출이나주의를 위해 혼자 일하는 것이 행복합니까? 그들은 수익의 공정한 분배를 받고 있습니까?

이러한 질문을 고려하지 않는 것은 불법 복제에 눈을 멀게하는 것과 같습니다. 결국 모든 정보가 단지 "자유롭기를 원"하는 것은 아닙니다.

윤리적 딜레마 4 : 얼마나 많은 보호가 충분한가

어떤 사람들은 모든 것을 두 가지 다른 알고리즘으로 이중 암호화하고 금고에 보관 된 하드 디스크에 잠겨 야한다고 말합니다. 아아, 오버 헤드는 시스템을 크롤링하는 속도를 늦추고 개발을 10 배 더 어렵게 만듭니다. 설상가상으로, 한 비트가 뒤집 히거나 알고리즘의 일부가 잘못되면 암호화를 취소 할 수 없기 때문에 데이터가 모두 손실됩니다.

다른 사람들은 데이터를 보호하기 위해 손가락 하나 까딱하기를 원하지 않습니다. 다음 팀은 필요한 경우 나중에 특수 암호화를 추가 할 수 있다고 개발자는 말할 수 있습니다. 또는 그들은 그것에 대해 민감한 것이 없다고 주장 할 수도 있습니다. 이러한 책임을 무시하는 팀은 일반적으로 많은 다른 코드를 생성하고 사람들이 갈망하는 멋진 기능 더미를 만들 수 있습니다. 그들이 안전한지 누가 신경 쓰나요?

얼마나 많은 보호를 적용해야하는지에 대한 간단한 대답은 없습니다. 추측 만 있습니다. 데이터가 손실되거나 제품이 배송되지 않을 때까지 더 많은 것이 항상 좋습니다.

윤리적 딜레마 5 번 : 버그 수정을위한 것인가?

적극적인 결정을 내릴 때 윤리적 떼를 협상하는 것은 충분히 어렵지만, 문제를 제쳐두고 결국 수정 될 버그에 라벨을 붙일 수 있다면 훨씬 더 어렵습니다. 어떻게 든 코드 실행에 빠진 문제를 해결하기 위해 얼마나 노력해야할까요? 우리는 모든 것을 떨어 뜨리나요? 버그가 고쳐질만큼 심각한 것인지 어떻게 결정합니까? 

Isaac Asimov는 오래 전 로봇 공학의 법칙을 작성하고 로봇의 무 활동으로 인해 인간이 해를 입을 경우 로봇이 아무것도하지 않는 것을 금지하는 법을 삽입했을 때이 문제에 직면했습니다. 물론 그의 로봇에는 문제의 모든 측면을 즉시보고 해결할 수있는 양전자 두뇌가있었습니다. 개발자를위한 질문은 너무 복잡해서 아무도 그것에 대해 생각하고 싶어하지 않기 때문에 많은 버그가 무시되고 수정되지 않습니다.

회사가 목록의 우선 순위를 공정하게 지정할 수 있습니까? 일부 고객이 다른 고객보다 더 중요합니까? 프로그래머가 다른 버그보다 하나의 버그를 선택하여 즐겨 찾기를 재생할 수 있습니까? 주어진 버그로 인해 얼마나 많은 피해가 발생할지 예측하기 어렵다는 것을 깨달았을 때 이것은 더 생각하기가 더 어렵습니다.

윤리적 딜레마 6 번 : 오용을 방지하기 위해 코딩하거나 타협 할 정도

원래의 Apple Web 카메라에는 렌즈가 꺼져있을 때 렌즈를 막는 물리적 셔터 인 영리한 기계적 추가 기능이 함께 제공되었습니다. 셔터와 스위치는 함께 연결되었습니다. 셔터를 직접 열지 않고는 카메라를 사용할 방법이 없었습니다.

일부 최신 웹캠에는 카메라가 활성화 될 때 불이 들어오는 LED가 함께 제공됩니다. 일반적으로 작동하지만 컴퓨터를 프로그래밍 한 사람은 코드에 카메라와 LED를 분리 할 수있는 위치가있을 수 있다는 것을 알고 있습니다. 그것이 발견되면 카메라는 감시 장치로 변할 수 있습니다.

엔지니어의 과제는 오용을 예상하고이를 방지하기위한 설계입니다. Apple 셔터는 어떻게 우아하게 할 수 있는지에 대한 분명하고 효과적인 예 중 하나입니다. SAT 속임수에 대한 책을 작업 할 때 계산기에 네트워킹 소프트웨어를 추가하는 한 해커를 만났습니다. 약간의 심의 끝에 그는 아이들이 Wi-Fi가있는 계산기를 몰래 시험에 들여 보낼 까봐 걱정했기 때문에 유선 프로토콜 만 지원하기로 결정했습니다. 유선 프로토콜 만 지원함으로써 그는 테스트에 참여하는 모든 사람이 이웃 컴퓨터에 연결해야한다는 것을 확인했습니다. 그는 무선 프로토콜을 건너 뛰는 것을 싫어했지만 남용의 위험이 너무 높다고 느꼈습니다.

윤리적 딜레마 7 : 데이터 요청으로부터 고객을 방어하는 방법

데이터를 수집하는 경우 조직은 언젠가 고객 서비스와 정부 서비스 사이에 갇히게 될 것입니다. 법인에 데이터를 제공하라는 요청이 점점 더 보편화되고 있으며, 점점 더 많은 소프트웨어 및 서비스 조직이 법률 이전에 고객의 개인 정보를 어느 정도까지 배반할지 고민하게됩니다. 이러한 요청을 면밀히 조사하고 자신의 변호사를 고용하여 그들이 진정으로 합법적인지 여부에 대해 이의를 제기 할 수도 있지만, 현실은 자금이 소진 된 후에도 법원이 적법성에 대해 논의 할 것입니다.

쉬운 해결책은 없습니다. 일부 기업은 고객에게 거짓말을하지 않고 사업을 그만두기로 선택합니다. 다른 사람들은 정부가 종종 금지하려고 시도하는 요청에 대해 더 공개적으로 노력하고 있습니다.

윤리적 딜레마 8 번 : 인터넷의 국제적 성격을 다루는 방법

인터넷은 모든 곳에서 실행되며 국경의 많은 전통적인 장벽을 피합니다. 이것은 고객 A와 B가 다른 국가에있을 때 법적 골칫거리가 될 수 있습니다. 서버 C와 D는 종종 완전히 다른 국가에 있기 때문에 시작에 불과합니다.

이것은 명백한 윤리적 문제로 이어집니다. 예를 들어 유럽은 개인 정보 유지에 대한 엄격한 법률을 가지고 있으며 개인 정보 침해를 윤리적 실패로 간주합니다. 다른 국가에서는 거래에 대한 방대한 기록을 유지하는 회사를 고집합니다. 고객이 다른 국가에있을 때 회사는 누구의 법률을 따라야합니까? 데이터가 다른 카운티에있는 경우 데이터가 국제선을 통해 전송되는 경우?

모든 법적 우발 상황에 대처하는 것은 헤라클레스가 될 수 있으며, 많은 조직은 분명히 모래에 머리를 파묻고 싶은 유혹을 받게됩니다.

윤리적 딜레마 9 번 : 오픈 소스에 얼마나 돌려 줄 것인가

누구나 오픈 소스가 무료라는 것을 알고 있습니다. 당신은 아무것도 지불하지 않으며 그것이 그것을 매우 훌륭하고 복잡하게 만듭니다. 그러나 모든 사람이 무료 코드를 사용할 때 발생하는 윤리적 문제를 고려하는 것은 아닙니다. 모든 오픈 소스 패키지는 라이선스와 함께 제공되며이를 따라야합니다.

일부 라이선스는 많은 희생이 필요하지 않습니다. Apache 라이선스 또는 MIT 라이선스와 같은 라이선스는 승인이 필요하며 그게 전부입니다. 그러나 GNU General Public License와 같은 다른 라이센스는 모든 개선 사항을 공유하도록 요청합니다.

오픈 소스 라이선스를 구문 분석하면 윤리적 문제가 발생할 수 있습니다. 대기업의 한 관리자는 "우리는 MySQL을 배포하지 않기 때문에 누구에게도 빚을지지 않습니다."라고 말했습니다. 그는 라이센스의 의무를 소프트웨어 재배포 행위에 묶는 조항을 수십 년 전에 작성했습니다. 이 회사는 웹 애플리케이션에 MySQL을 사용했기 때문에 포기하지 않고 가져갈 수 있다고 느꼈습니다.

윤리적 의무를 측정하는 간단한 방법은 없으며, 많은 프로그래머가 그 의미에 대해 논쟁하면서 많은 키 입력을 낭비했습니다. 하지만 사람들이 기부를 중단하면 전체 노력이 중단 될 것입니다. 좋은 소식은 모든 사람이 소프트웨어가 소프트웨어 사용과 호환되기를 원하기 때문에 기여하는 것이 모든 사람에게 가장 큰 이익이되는 경우가 많다는 것입니다.

윤리적 딜레마 10 번 : 모니터링이 실제로 필요한 정도

상사가 고객이 회사를 찢어 버리지 않도록하고 싶을 수도 있습니다. 일에 대한 보수를 받고 싶을 수도 있습니다. 정부에서 온 으스스한 사람이 악당을 잡으려면 백도어를 설치해야한다고 말했을 수도 있습니다. 모든 경우에서이 주장은 백도어가 슈퍼맨의 힘처럼 진실과 정의를 지원하는 데만 사용될 것이라는 보장으로 가득 차 있습니다. 정치적 적이나 불운 한 사람들에게는 사용되지 않습니다. 전제 정권에 팔리지 않을 것입니다.

그러나 악당들이 숨겨진 문을 발견하고 그것을 스스로 사용하는 방법을 알아 내면 어떨까요? 백도어가 비진리와 불의를 지원하는 데 사용된다면 어떨까요? 여러분의 코드는 스스로 윤리적 인 결정을 내릴 수 없습니다. 그게 당신의 일입니다.

윤리적 딜레마 11 번 : 코드가 실제로 얼마나 방탄해야 하는가

물론, 최소한의 계산, 간단한 데이터 구조 및 무차별 대입 접근 방식은 문제가 작은 경우 데모에서 잘 작동합니다. 사용자는 코드를 시험해보고 "이거 빨리 작동합니다."라고 말합니다. 몇 달 후 시스템에 충분한 데이터가로드되면 값싼 알고리즘의 약점이 나타나고 코드가 크롤링 속도가 느려집니다.