블로그 이미지

Journey into the inside

지식으로 완력을 이겨야 하고, 신앙으로 지식을 이겨야 하며, 사랑으로 신앙을 이겨야 한다. -우치무라 간료 (사랑의 샘가에서...) - by 정영준


소프트웨어 누가 이렇게 개떡같이 만든거야 : 소프트웨어의 사용성에 대한 고찰

우리가 살고 있는 현대의 많은 분야들이 고도의 전문화가 이루어져 다른 전공을 가지고 있는 사람들이 이해하기에는 점점 어려워지고 있다. 그 중에서도 공학분야의 복잡성은 해당 분야를 전공하는 사람들도 따라가기 어려울 만큼 빠르게 고도화 되어가고 있다.
 
세상을 편리하게 만들기 위하여 고안된 기술들이 도리어 사람들이 더 많은것을 배우고 생각해야만 누릴수 있도록 강요하고 있으며, 지나치게 고도화된 기술들은 공학자나 엔지니어로 하여금 그 기술을 구현하는것에 집중하게 만들고 결국 극소수의 사람만을 위한 제품이 되어 해당 제품을 사용하기 위해서는 탁월한 지식을 요구하게 된다.

저자는 이렇게 구현에 집중된 소프트웨어를 개떡같은 소프트웨어라고 지칭하며, 프로그래머들이 시장경제의 중요한 요소인 수요와 공급의 원칙에 대한 이해가 부족하다고 주장한다. 사용자는 컴퓨터가 어떻게 동작하는지보다 그들의 업무와 생활을 어떻게 더욱 편리하게 해주는지에만 관심이 있고 그런 소프트웨어를 사용하기 원하는데 개발자들이 실력이 부족하거나 개념이 없어서 사용자들에게 현실과 동떨어진 소프트웨어를 개발하여서 사용을 강요하고 있다는것이다. 이런 주장을 데이비드 S 플렛(저자)은 프로그래머이자 컨설턴트로 사용자의 입장을 대변하여 때로는 욕설까지 퍼부어가면서 프로그래머를 뒷담화 하는 내용들로 재미있게 구성하였다.

개발자를 위한 개발자에 의한 개발자의 소프트웨어는 빠르고 정확하게 작동할지는 모르겠지만, 이책에서 강조하듯이 그들에게 먹고 살 돈을 주는 사용자들에게는 너무 어려운 것이다. 그런 의미에서 나도 사용자의 입장에서 소프트웨어를 평가하지 못하는 경향이 있는데, 신제품의 기능이 너무 탁월해 보여서 침이 마르도록 칭찬을 하는데 대뜸 돌아온 말은 "그거 쓰기 편해" 였다. 나는 탁월한 기능구현 자체에 대하여 감탄하며 이야기 하고 있지만, 실제 사용자가 되어야할 그들의 머리속에는 사용 편의성이 모든 기준의 핵심이였던 것이다.

소프트웨어의 문제점은 거기서 부터 출발한다. 완벽하게 버그없이 작동하는 탁월한 기능의 소프트웨어 모든 개발자들은 그런 소프트웨어를 개발하기를 꿈꾸며, 실제로 그런 소프트웨어를 구성하는 코드집합을 보면서 개발자의 완벽한 사고와 상상력, 순발력에 경탄하기도하고, 그런 소프트웨어를 개발하지 못하는 자신은 혹시 멍청한 개발자가 아닐까 안절부절한다. 그렇게 그들은 그런 코드를 꿈꾸고 소프트웨어를 만들고 싶어한다. 그들에게는 사용성을 생각할 여유는 전혀 없으며 기술적인 세부사항이나 구현을 완벽하게 구현한 코드를 만들어내기만 해도 감지덕지다.

사실 이런 현실은 개발자 한두 사람의 문제라기 보다는 소프트웨어산업이 아직 성숙하지 못한데서 나오는 과도기적 현상이라고 이해해야 옳다고 본다. 프로젝트 메니저와 기획자의 기능구현의 복잡도를 무시한 마케팅적 일정수립이나, 기능설계에 대한 이해가 부족한 설계자, 자신이 정말 원하는 기능이나 현재 필요한 기능에 대한 이해가 전혀 없는 사용자들의 요구사항이 실력이 부족한 개발자들과 어우러져 개떡같은 소프트웨어와 웹사이트를 양산하고 있는것이 현실이기 때문이다.

소프트웨어산업은 2차산업과 같이 공장에서 제품을 생산하는것 처럼 눈에 보이는 제품을 만들어서 기능을 테스트 하기도 불가능하고, 단가를 매기기도 어렵고 생산일정을 조절하기도 어렵다. 이것은 기존에 우리가 사용하던 도구를 만드는것과는 다른 사고방식으로 접근해야함을 의미한다. 산업혁명이 1차산업에서 2차산업으로 우리의 사고방식의 전환을 요구했다면, 2차산업에서 3차산업으로의 발전에도 그것이상의 의식편화가 필요함을 의식하고 주도적으로 변화를 추구해야 할 것이다. 이것은 탁월한 개발팀이 모두 해결 할 수 있는 한두분야에 국한된 문제가 아니라 산업 전반적인 인식의 문제이며 환경의 변화가 수반되어야 한다.

사실 내가 보기에 최근의 소프트웨어는 개떡같지 않다. 개발자들의 실력이 차이가 있고 구현에만 치우쳐 사용성이 떨어지는 소프트웨어들도 있지만 현실을 바라보면 그런 소프트웨어들도 오랜 사고와 노력의 결과물로서 나름의 최선의 구현을 한 제품들이며, 실제 제품을 개발하면서 찰스 페졸스 같이 구현이나 단순한 알고리즘의 퍼포먼스의 극한적 최적화를 꿈꾸며 코딩을 아름다운 예술작업에 비유하는 개발자들이 있으면, 해당 기술을 보다 문화와 사회적인 언어로 해석하여 사용자들에게 접근가능하도록 구성하는 기획자와 인터페이스 설계자가 필요한 것이다. 그리고 그런 사람들이 유기적으로 대화하며 일할 수 있는 여건과 사용자들의 요구사항을 명확하게인식 할 수 있는 사회적 시스템도 필요할 것이다.

성급하게 특정부류의 사람들을 비판하기 보다는 조금씩 성장해 나가며 산업 발전의 보이지 않는 엔진으로 인류 발전과 윤택한 삶에 기여하고 있는 소프트웨어 공학에 애정어린 조언과 지속적인 관심을 가질때 더 좋은 소프트웨어가 개발될 것이다.


이올린에 북마크하기(0) 이올린에 추천하기(0)
Comment 0 Trackback 0

Trackback : http://cristov.tistory.com/trackback/70 관련글 쓰기

Top

prev 1 ... 30 31 32 33 34 35 36 37 38 ... 101 next