예전에 Visual Basic 6.0으로 프로그램을 만들 때 일입니다.
(정확히는 그 때 배운 언어가 저것뿐이었습니다.)
프로그래밍에 대해 거의 모르는 저로서는
인터넷 사이트 이곳저곳을 돌아다니며
소스나 팁, 힌트 등을 얻어 다녔습니다.
그러다 어떤 글을 보게 되었습니다.
"네가 만든 프로그램을 사용하는 사람을
정상인이 아닌 미친놈이라 생각하고 프로그램을 만들어라."
황당한 말이지만, 나름 일리가 있는 말이었습니다.
프로그래머는 자신이 생각하는 흐름에 맞춰 프로그램을 작성하지만
사용자는 그 흐름을 모르고 프로그램을 사용하기에
프로그래머가 예상하지 못한 문제를 만나게 됩니다.
그렇게 되면 사용자들은 불평합니다.
"프로그램이 이상하다!
프로그래머가 프로그램을 잘못 만들었다!"
(또 하나 언급한 것은 크래커에 대한 얘기도 있었습니다.
사용자 중에 크래커가 포함될 수 있으니
그 크래커가 프로그램을 변경해 사용할 수 있다는 내용이었습니다.)
그렇기에 프로그래머는
자신의 생각에 따라 움직이는 사용자도 있지만,
그렇지 않은 사용자도 있다는 것을 알고
'절대 일어나지 않을 거야.'라는 선입견을 버리고
최대한 꼼꼼하게 프로그램을 작성하라는 말이었습니다.
오늘 저 말이 새삼스럽게 생각났습니다.
도서관에서 사용하는 프로그램 중
자료의 대출반납을 전산화 프로그램이 있습니다.
그런데 허점이 몇 개보이더군요.
설정을 제대로 하지 않았는데 제멋대로 값이 설정되어
나중에는 접근조차 할 수 없는 데이터를 생성하거나
삭제 버튼이 없어 답답했는데,
알고 보니 등록이 무조건 덮어씌우는 옵션으로 되어있어
삭제가 따로 생성되지 않은 것입니다.
덕분에 자료를 다 날릴 뻔했습니다.
그 때 문득 저 말이 떠올랐습니다.
'이 프로그램을 만든 사람은 저 말을 알고 있을까?'
아마 알고 있지만 시간상 경제상
어쩔 수 없었다고 생각해봅니다.
이 일로 인해 깨달은 것이 있습니다.
지금까지 저는 그 말을 프로그래머 입장이 되어 생각했습니다.
제가 만들어 뿌린 프로그램을
저와는 다른 환경에서
저와는 다른 생각을 가지고 작동시켜
문제를 보게 된 사용자가 종종 있었습니다.
그런 사용자를 보면서
'다양한 환경에서
저런 생각으로 프로그램에 접근가능하구나.'라고 생각하지만
다르게는 그 사용자를 이상한 사람으로 생각했던 적이 많았습니다.
그런데 이번에는 제가 사용자의 입장이 되어 깨달았습니다.
즉, 제가 '미친 놈'이 된 것이지요.
제가 프로그래머에게 "왜 문제가 발생하냐?"라고 항의한다면
프로그래머는 "왜 설정을 제대로 하지 않았느냐?"라고
반문하며 저를 이상한 사람으로 생각할 수 있겠더군요.
(제가 만약 그 프로그래머였다면....)
즉, '사용자를 정상인으로 생각하지마라.'에 숨겨진 뜻인
방어적인 프로그래밍에 힘써야 한다는 생각 외에
문제점을 제시하는 사람을 이상한 사람이 아닌
나와 다른 환경, 나와 다른 생각을 가진 사람으로 생각하고
문제제시를 잘 받아들여야 한다는 생각도 같이 포함해서
기억해야 한다는 것을 깨달은 것입니다.
"사용자는 너와 다른 사람이다."
이렇게 기억하면 될까요?^^
PS
이 글을 적으면서 많은 생각이 떠올랐습니다.
◇ 프로그램을 만드는 것과 법을 만드는 것은 비슷하다.
◇ 정상인과 정상인이 아니라는 생각을
문화인류학 책에서 본 것과 연관시켜보자. (관련 글)
◇ 프로그램의 환경설정을 가려면
우리나라 것은 대체로 '도구 -> 환경설정'인데,
외국 것은 대체로 '편집 -> 환경설정'이다.
이 예도 어떻게 연관되지 않을까?
등 별의별 생각이 떠올랐습니다.
그래서 결론을 내리기가 상당히 힘들었습니다.
즉, 마무리를 하기 힘들었던 것이죠.
덕분에 결론이 조금 이상하게 되고 말았습니다.
그래서 이 글을 생각이 샘솟게 하는 글로 지정하고 싶네요.^^
- 선행을 하였는데 사고를 당한다면..... (23)2007/06/08
- 기사 : 사실을 전달하는 글 X, 기자의 생각을 적... (11)2007/05/26
- 이 기사, 누가 봤을까? 누가 썼을까? (12)2007/05/25
- 사용자를 정상인으로 생각하지마라. (4)2007/05/23
- 바칼로레아 5-2. 자유는 주어지는 것인가... (6)2007/05/21
- HTML 코드를 줄이는 것이 좋은 일인가? (6)2007/05/17
- 불만 vs 만족하지 못하더라도 (10)2007/05/15
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요
사용자를 정상인으로 생각하지마라...
여기저기 응용될만한 문구라고 생각되는군요...
/레무네아/
그래서 온갖 생각이 떠오른지도 모르겠습니다.^^
저도 실력은 없지만 부서내에서 MS Access로 간단한 DB App 만들어 사용하곤 했는데, 만든 걸 제가 사용할 땐 거의 작동상 에러가 없는데 다른 사람이 사용하면 에러가 곧잘 발생하더군요.
"사용자를 정상인으로 생각하지마라"
아마도 자신과 같은 수준으로 생각하지 말라는 의미가 아닐까 하네요^^
그래서 온갖 경우의 수를 고려 제품, 상품을 만들어내는 것 아니겠습니까? ^^.
/마래바/
저도 도서관에서 프로그램을 제공했는데,
제가 생각하지도 못한 곳에서 에러를 발생시키더군요.
그래서 몇 번의 교육(?)을 통해 그 기능만 사용하도록 했습니다.;;;;;
네.. 만드는 사람 수준으로 생각해버린다면
사용자는 문제 발생시 스스로 해결하는 사람이 되겠지요.
그런데 실제로는 그렇지 않으니 조심하라는 뜻인 듯싶습니다.
온갖 경우의 수를 생각해라.
어렵습니다.^^