소프트웨어엔지니어의 윤리강령

1.
정치와 무관한 과학기술이 존재할 수 있을까? 과학적 진실로 무장한 전문가들이 진실로 진실을 이야기할까? 이와 관련한 중요한 사건을 지난 10년동안 겪었습니다. 황우석박사의 논문조작사건과 천안함침물 사건입니다. 황우석사건은 BRIC을 통하여 과학계 참여자들이 상호검증과 자정능력이 있음을 보여주었습니다. 반면 천안함 침몰사건은 권력에 침묵한 과학계의 현실을 보여줍니다. 재미 과학자(화학공학)인 김광섭박사님이 화공학회때 발표할 논문이 취소당한 것을 볼 때 천암함 사건은 아직도 토론조차 허락하지 않는 모습입니다.

나는 지난 4월말 한국화학공학회의 연례 봄 학술대회에서 천안함 사건에 관해 강연할 예정이었다. 그건 화공학회의 초청이었고 학술적인 논문을 발표하는 자리였다. 논문은 천안함이 1번 어뢰에 의해 침몰했는지 여부를 규명할 가장 중요한 증거인 흡착물을 이해하는 데 반드시 필요한 버블온도의 계산에 초점을 맞췄다. 그러나 강연은 취소됐고 논문은 발표되지 못했다. 그리고 6월 23일치 <한겨레>는 내 논문의 내용과 논문 발표가 취소된 경위를 전했다. 그러자 학회는 6월 25일 해명서를 통해 화공학회가 외압에 의해 내 발표를 취소했다는 취지의 이 보도를 반박했다. 필자의 논문 발표를 취소한 것은 학회의 정상적인 활동이며, 취소의 이유는 발표 내용이 정치적으로 이용될 가능성이 있었기 때문이라는 것이다.
정치적 이유로 천안함 관련 논문 발표 취소?중에서

다른 사건이지만 정치와 기술이 만난 사건이 있었습니다. 진보당 투표부정와 관련한 보고서논란입니다. 재투표시스템의 장애때문에 재투표가 중단되는 사태와 맞물려 논란이 증폭하였습니다. 시작은 2차 진상조사에 참여하였던 김인성씨가 진상보고서와 관련한 의견을 블로그에 올리면서 시작하였습니다.

통합진보당 비상대책위원회에서는 저희 보고서를 제외한 상태로 공식 보고서를 채택했습니다. 이후 저희 보고서에 관해 설명할 기회를 주겠다고 연락이 왔으나 모든 정파가 합의한 공식 절차가 아니라서 거부했습니다. 통합진보당은 지금이라도 저희들이 작성한 보고서가 어떤 의미인지를 청취해야 할 것입니다.

여태까지의 당 내외의 반응으로 보아 모든 당파가 이 보고서의 의미를 이해하지 못하고 있는 것으로 판단됩니다. 현재 통합진보당의 실제 웹 서버의 로그 전체를 조사하고 데이터베이스 로그와 비교 분석한 것은 저희들뿐입니다. 저희들도 의혹에 대한 증거자료를 찾은 것은 밤샘 조사를 계속한 지 5일째 되는 날이었습니다. 무슨 일이 있었는지는 로그에 적나라하게 기록되어 있었고 그것을 본 저희들은 경악할 수 밖에 없었습니다.
통합진보당 재선거 사태에 대하여중에서

이것은 진상보고서와 관련한 입장입니다. 덧붙여 장애가 발생한 재투표시스템과 관련한 의견을 개진합니다.

3. 새 선거 시스템 관련

저희들이 지난 비례대표 선거 시스템을 분석한 결과 매우 안정적이고 신뢰성 있는 시스템임을 확인하였습니다. 여기에 밝힐 수는 없지만 정상적인 절차에 의해 사용될 것을 가정하고 프로그램을 하였으나 범죄자에게 악용된 일부 기능에 대한 보안성 강화 이외에는 특별한 문제점을 찾을 수 없는 매우 우수한 시스템이었습니다.

때문에 저희들은 이 시스템으로 통합진보당 지도부경선을 치룰 것을 권고했습니다. 문제는 사람에게 있으므로 중요한 작업을 할 때 두 명 이상의 당직자 감시하에 진행하면 될 것이라고 조언했습니다. 하지만 통합진보당에서는 기존 시스템에 대한 불신으로 저희들의 조언을 귀담아 듣지 않았습니다.

하지만 저희들은 새로운 선거 시스템을 확인 한 후에 분명히 문제가 발생할 것이라고 강력히 권고하지 않을 수 없었습니다. 이 선거 시스템은 주로 초중고등학교에 납품된 것입니다. 물론 이 제품은 그런 사용 환경에서 최선의 제품일 수 있지만 저희 판단으로는 동시에 대량의 사용자가 몰리는 정당의 투표 시스템으로는 검증되지 않았기 때문에 분명히 문제가 생길 것이라고 경고했습니다.

두가지 의견은 (구)당권파와 혁신파사이의 권력투쟁에 미묘하게 영향을 줍니다. 당권파는 김인성씨의 의견을 자신들의 정당성을 강조하는 논거로 이용하였습니다.그래서 민중의 소리는 이정희대표와 인터뷰할 때 이런 표현을 사용합니다.

사태의 진상이라는 점에서 이제 어느 정도 알려질 것은 모두 알려진 것 같습니다. 2차 진상조사 특위의 외주를 받아 시스템의 로그를 분석했던 김인성 교수는 이번 사태에 대해 ‘피해자와 가해자가 뒤바뀐 뺑소니 사건’이라고도 했지요.

또한 재투표시스템에 대한 평가는 이를 선정한 혁신파의 무능력을 공격하는 근거로 사용합니다. 기술을 정치적으로 제기하고 다시 기술을 공격하는 모양새를 보이면서 당사자인 우일소프트가 입장을 내놓습니다.

둘째 같은 맥락에서의 김인성씨라는 분이 우일소프트 제품에 대하여 평가한 내용에 대한 입장

황당하고 어처구니 없는 일입니다. 타인과 타사가 수 많은 세월 동안 공을 들인 기술의 수준과 적합성을 감히 평가한다는 전문가라는 분이 이런 글을 올려둔걸 오늘에야 알게 되었습니다. 저는 이런 전문가가 있다는 사실도 몰랐고 좀 놀랍습니다. 보통의 상식적인 기술자라면 자신이 알고 있는 것이 다일까라는 생각에 왠만해선 기술을 평가한다는 입장이 무척 조심스럽고, 우선 좀 두렵겠죠. 그러나 그러한 일을 어쩔 수 없이 행할 때에는 충분한 기술적 근거와 편협적이지 않는 시각을 갖는 것이 기술자의 양심이요 기본적 덕목이라고 생각합니다.

재투표중단의 책임이 소프트웨어에 있는지 하드웨어에 있는지를 놓고 업체간의 갈등으로 나아갑니다. 민중의 소리와 인터뷰한 스마일서브 대표는 다음과 같이 말합니다.

“정치논리를 함부로 기계에 들이대면 대형사고가 난다. 이번 사태는 결국 불신에서 나왔다. 기존 시스템이 아무리 불신이 있어도 그래도 그게 제일 안정적인 거다. 정치논리 가지고 함부로 시스템을 바꾸는 게 아니다. 항상 제일 오래 만진 게 제일 좋은 거다.

소프트웨어는 동네에서 사는 소파세트 같은 공산품이 아니다. 엔지니어가 날밤 새면서 고생해서 만들고, 또 문제 생기면 계속 수정하면서 판올림을 하는 거다. 마이크로소프트도 MS 윈도우 써보면 알겠지만 맨날 버그 업데이트 됐다고 나오지 않나.

이번 사태 원인은 아마도 프로그램 버그일 확률이 제일 높다고 본다. 새로운 시스템을 도입했으면 실제 오류 검증도 하고 충분한 기간이 필요한데, 준비 기간이 너무 짧았다. 거기에 오류가 나도 서버를 봉인해서 접근도 못했다고 하지 않았나. 결국은 정치 논리가 망친 거다.”

그는 또 “프로그램을 안정화시키는 작업은 정말 힘든 일”이라며 “정치 논리로 접근해 이를 망가뜨리는 것은 엔지니어들이 그 일을 하면서 쏟아부운 땀방울, 온갖 노력을 무시하는 거다. 그만큼 응당의 책임을 져야 할 것”이라고 강한 어조로 비판했다.
“통합진보당 투표중단이 서버 탓? 월세집 부부싸움하는데 집주인 탓해”중에서

2.
김인성씨, 우일소프트, 스마일서브의 이야기를 읽어보면 공통된 점이 있습니다.

“열심히 일하는 엔지니어를 욕하지 말고 기술적 근거를 가지고 이야기하라”

황우석사태때 BRIC이 보여준 조사능력, 선관위 디도스공격을 둘러싼 나꼼수지지자들의 기술적 검증능력과 달리 말만 앞서 논쟁이었습니다. 아마도 사실을 공개하지 않고 그들만의 전쟁이 되었습니다. 다시 돌아보면 사회적으로 중요한 쟁점이었을까요? 저는 아니었다고 생각합니다. 당내 정치를 위하여 기술을 이용한 것이 아닌가 하는 의구심을 가집니다.

엔지니어도 정치적 인간이고 정치적 활동을 하는 것이 당연하지만 정치와 관련한 일을 할 때 윤리적 기준은 있지않을까 찾아보았습니다. 마치 의사들이 히포크라테스 선서를 하는 것과 같습니다. 당연히 한국과학기술인들이 그런 것을 만들리 없고 해외 자료를 찾아 보았습니다. 전기전자공학회의 윤리강령이 있으니까 소프트웨어 엔지니어도 있을 것이라 판단했죠. 역시나 있습니다.Software Engineering Code of Ethics and Professional Practice입니다. 요약본의 번역은 ACM/IEEE 윤리규정 Principles에 있더군요.

S/W Engineer 는 소프트웨어 시스템을 개발하는 과정 중에서 남에게 이득 혹은 피해를 주거나, 주도록 하게 할 수 있다. 따라서 S/ W Engineer 와 윤리적으로 책임이 있는 관계와 그 관계 속에서 으뜸 가는 책무를 가려내야 한다. 이 원칙이 S/ W Engineer의 업무로 영향 받는 사람이 누구인가를 포괄적으로 생각할 수 있기를 바란다.

공공의 이익이 윤리규정의 핵심이다.윤리적 결정을 도출하는 윤리적 알고리즘이 아니다.교육적 기능이 있다.

1. PUBLIC
– Software engineers shall act consistently with the public interest.
S/W Engineer는 공공의 이익에 조화되게 행동 해라

2. CLIENT AND EMPLOYER
– Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest.
S/W Engineer는 공공의 이익에 조화되는 상황에서는 고객과 고용주의 이익을 극대화하는 방향으로 일하라.

3. PRODUCT
– Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
S/W Engineer는 자기가 만든 제품의 제작과 수정에 있어서 가능한 최고 수준의 직업 적 기준에 부합되도록 하라.

4. JUDGMENT
– Software engineers shall maintain integrity and independence in their professional judgment.
S/W Engineer는 직업적 판단에 있어서 성실성과 독립성을 유지하라.

5. MANAGEMENT
– Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
관리자와 지도자급 S/W Engineer는 소프트웨어를 개발하고 유지하는데 있어서 윤리적으로 접근하여야 하며 또 이를 장려하여야 한다.

6. PROFESSION
– Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
S/W Engineer는 공공의 이익에 조화되는 한 S/W Engineer들이 전문집단으로서 성실성과 신망을 얻는데 노력하라.

7. COLLEAGUES
– Software engineers shall be fair to and supportive of their colleagues.
S/W Engineer는 동료들에게 공평하고 잘 도와 주어라.

8. SELF
– Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
S/W Engineer는 실무 전문지식의 획득을 위하여 평생교육에 참여하고 업무를 수행하는데 있어서 윤리적으로 접근하는 것을 장려하라

앞서 언급한 사건과 관련해서 “‘공공의 이익’에 따라 ‘성실성과 독립성’을 유지하라”라는 표현이 눈에 들어옵니다.

IBM은 Developerworks에 소소프트웨어 개발과 윤리(한글)라는 글까지 올려놓았네요. IT기술이 점점 중요해집니다. 소프트웨어엔지니어의 윤리의식도 그만큼 높아져야 합니다.

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.