제목 한번 걸죽 하다.
저자 소개
지은이 데이비드S. 플랫(David S. Platt)
데이비드 플랫은 'Rolling Thunder Computing(www.rollthunder.com)'을 운영하며 교육, 컨설팅 사업을 하고 있다. 일찍이 프로그래머로서 20여 년의 경험을 가지고 있을 뿐만 아니라, 하버드대학 익스텐션 스쿨을 비롯한 전 세계 많은 대학과 회사에서 인기 있는 강사로 소프트웨어 개발에 대해 강의하고 있다.
또한 [The Microsoft Platform Ahead], [Introducing Microsoft .Net/Third Edition] 그리고 [Understanding COM+]와 같은 책을 집필하였을 뿐만 아니라 각종 저널 매체나 신문에 많은 글을 기고하고 있다.
2002년에 마이크로소프트는 그를 'Software Legend'로 임명하였다. 지금은 메사퓨세츠에 살고 있다.
가격 : 14,000원
책 내용
개요
요즘 소프트웨어는 개떡 같습니다. 다리 좋게 말할 방도가 없습니다. 악성 프로그램이 인터넷 회선을 통해 우리의 침실까지 숨어드어오는 것을 막지 못할 정도로 안전하지 않습니다. 가장 필요한 시점에 오동작해서 몇 시간 또는 며칠 동안 했던 작업을 모두 날려 버려 복구할 수도 없게 만들 정도로 신뢰할 수 없습니다. 그리고 가장 단순한 작업을 할 때도 머리를 쥐어 뜯으며 고민을 해야 할 정도로 사용하기 어렵습니다.
별로 새로운 이야기도 아닙니다. 그렇지 않습니까? 노란 색과 검은 색으로 된 책 시리즈가 여러분에 믿게 하려고 했던 것과는 반대로 , 여러분은 바보가 아닙니다. 여러분이 항상 생각했던 대로 요즘 소프트웨어는 정말 개떡 같습니다. 그렇기 때문에 이 책의 제목을 보고 웃었을 것입니다. 그리고 그건 의식적인 웃음이 아니었을 것입니다. 그렇지 않습니까? 책의 제목을 보고는 "음, 재미있군. 내가 웃게 될 것 같군." 하지는 않았을 거란 말입니다. 그보다는, 냄새가 대뇌피질을 통과해 동물적 본능이 잠재된 중뇌까지 파고드는 것처럼 책 제목이 여러분의 신경계를 자극해 무의식 중에 웃음을 터뜨렸을 것입니다. 다시 생각하기 시작했을 때 아마 여러분은 "음, 훌륭하군! 마침내 이 친구(조리 있고, 제대로 된 자격을 갖추고 있고, 잘생겼을 뿐 아니라 품위까지 있는)가 평소 내가 생각하고 있던 것을 책에다 썼군." 하고 생각할지도 모르겠습니다. 정말 그렇습니다. 이 책은 어떻게 이런 상황까지 오게 됐는지, 그리고 여러분이 이런 상황을 바꾸기 위해 무엇을 할 수 있는지를 기술적 전문용어를 쓰지 않은 쉬운 언어로 설명합니다. "이런 젠장, 사야겠군! 사서 친구들에게도 돌려야겠군." 훌륭한 생각입니다. 여러분은 바보가 아니라고 제가 말했죠?
15년 전, 아니 10년 전만 하더라도 보통 사람들은 일상생활에서 소프트웨어를 사용하지 않았습니다. 제 부모님은 손녀에게 이메일로 생일축하 카드를 보내지도 않았고, 제가 사진 이미지를 메일로 보내 주리라 기대하지도 않았습니다. 종이로 된 기록부에 예금 계좌를 결산했고, 예쁜 그림이 그려진 종이 달력에 펜으로 글씨를 써가며 일저을 관리했습니다. 정기적으로 소프트웨어를 사용했던 몇 안 되는 사람들도 보통은 업무의 일부로 사용했을 뿐입니다. 비행기표를 예매하기 위해 항공예약 시스템을 사용했던 여행사 직원처럼 말입니다. 이런 사람들은 고가의 독점적 하드웨어와 많은 교육, 지속적 지원이 필요하고 다른 목적으로는 거의 사용할 수 없는 소규모의 맞춤형 애플리케이션을 사용했습니다. 웹은 곱슬머리 학자들이나 사용하던 괴팍한 것이었습니다. 대부분의 사람들은 웹에서 음악을 훔치거나 지저분한 그림을 다운받기는 커녕 웹이란 것이 존재하는지조차도 몰랐습니다.
그런데 상황이 완전히 바뀌어 버렸습니다. 그것도 거의 하룻밤 사이에(사회적 기간으로 봤을 때) 그리고 우리가 눈치채지 못하는사이에 말입니다. 제 부모님은 이제 예금 계좌 관리를 위해 금융 소프트웨어 패키지를 사용합니다. 청구서 비용을 온라인으로 결제하기 때문에 우표를 걱정할 필요도 없고, 자동으로 전자 예금을 보여주고 수표도 정산해 주기 때문에 은행에 갈 필요도 없습니다. 손녀 사진을 메일로 받는 것뿐 아니라 라이브 스트리밍 비디오를 보고 싶어하기도 합니다. 일반 가정집에서는 한 달에 40달러 정도늬 비용으로 초고속 인터넷에 무제한 접근 할 수 있을 정도로 가격이 내려갔습니다. 이제 웹은 너무도 널리 퍼져서 펜실베니아 주는 자동차 번호판에서 'The Keystone State'란 모토를 없애고 대신 주의 웹주소를 넣었습니다. 플로리다 주는 한술 더 떠서 주의 슬로건은 그대로 둔 채 주 이름을 넣는 부분에 My-Florida.com이란 웹 주소를 넣었습니다. 그리고 한때는 매우 비싸고 복잡한 장비를 통해서만 접근할 수 있었던 정보에 일반인들이 값싸고 쉽게 접근할 수 있게 됨에 따라 여행사 직원의 전문성도 사라져 버렸습니다.
우리는 소프트웨어의 바다에서 살고 있지만, 대부분은 소프트웨어가 어떻게 세상에 나오는지 또는 소프트웨어가 왜 그런 식으로 동작하는지에 대해 아무 생각이 없습니다. 그저 우리가 그걸 별로 좋아하지 안흔다는 것만 알 뿐입니다. 누구나 비행기 이륙이 활주로에서 몇 시간씩 지연되거나 짐이 엉뚱한 곳으로 배달되는 것과 같은 공항에서의 난처한 경험담이 있듯이, 소프트웨어를 사용하다 난처한 상황에 처했던 이야기도 몇 가지씩 있을 겁니다. 작업 문서를 명시적으로 저장해야 한다는 사실을 알지 못한 채 프로그램으로 열심히 작업을 했는데, 그 망할 프로그램이 갑자기 뻗어버려 하루 종일 작업했던 것을 몽땅 잃어버린 적이 있을 겁니다. 화면에 뿌려지는 무작위의 비트 패턴은 꼭 우리에게 엿이나 먹으라고 놀리는 것 같습니다. 개인용 컴퓨터가 타임(TIME)지 1982년 '올해의 인물'로 선정된 이후 그 명성은 내리막길로 걷고 있습니다. '퇴화'란 만화는 대부분의 사용자가 느끼는 감정을 아주 잘 표현하고 있습니다.
소프트웨어는 개떡 같을 필요도 없고 그래서도 안 되지만, 현실은 다릅니다. 그렇게 된 이유 중 하나는 다른 산업분야의 설계자와 달리 소프트웨어를 개발하는 프로그래머와 설계자, 관리자들이 그들의 고객을 충분히 이해하지 못한다는 것입니다. 그들이 만들어낸 제품이 개떡 같은 이유는 특정한 부분을 어떻게 해야 할지를 몰라서가 아니라, 뭘 해야 할지를 몰라서 그런 것입니다. 그들은 고객(혹자는 희생자라고 부르는)과 단절되어 있는데 그 사실을 깨닫지 못하고 있습니다. 바로 이 고객이 있기 때문에 월급을 받을 수 있는 것인데 말입니다. 그들은 종종 엉뚱한 문제를 푸는가 하면, 자신들을 제외한 어느 누구도 신경 쓰지 않는 기능을 추가하면서, 그 과정에서 모든 사용자에게 손해를 끼칩니다. 그들이 고객을 제대로 이해한다면, 좀 다르게 더 잘 만들 수 있을 것입니다.
한 가지 예로 워드나 엑셀과 같은 마이크로소프트 오피스 애플리케이션에서 사용자는 메뉴 바(파일, 편집, 도움말 들이 있는)를 평소 위치인 윈도우의 맨 윗부분에서 윈도우의 가장자리로 옮기거나 심지어 문서 위에 떠있게 할 수도 있습니다. 저는 이 기능을 쓰는 사람을 만나지도 들어보지도 못했습니다. 심지어 제가 아는 오피스 팀에 있는 친구들조차도 쓰지 않는 기능입니다. 그렇다면 왜 이런 기능이 프로그램에 손해를 끼칠까요? 여러 가지 이유가 있습니다. 저는 종종 파일 메뉴를 선택하기 위해 마우스를 이동하다가 조금 지나쳐 잘못 클릭하는 바람에(보통은 커피를 지나치게 마셨거나 해서) 메뉴 바를 잘못 드래그해 엉뚱한 위치에 놓고는 합니다. 저는 하던 일을 멈추고 메뉴 바를 다시 드래그해서 툴바 위의 윈래 있어야 할 곳에 위치시킨 다음, 이런 쓰잘머리 없는 기능을 만든 꼴통들에게 욕을 퍼붓는데 30초 가량을 허비합니다. 별로 대단한 것 같지 않지만, 하루에 두번 10억 명의 사용자가 이런 일을 당한다면 대략 매일 27명의 전체 인생과 맞먹는 시간이 낭비되는 것과 마찬가지입니다. 이 쓸데없는 기능을 프로그램에서 완전히 제거해 이런 어처구니 없는 일로 시간을 낭비하거나 집중을 흐트리는 일이 없어진다면, 저뿐만 아니라 대부분의 사용자 또한 좀더 생산적이 될 것입니다. 게다가 이 기능을 제공하기 위한 추가적인 프로그래밍 명령(프로그래머들이'코드'라 부르는)은 오류나 보안 취약성이 있을 확률을 높입니다. 기계 장치에 움직이는 부품이 많을수록 고장이 쉽게 나는 것처럼 말입니다. 만약 마이크로소프트가 이 바보 같은 기능을 설계, 작성, 테스트, 디버깅, 문서화 그리고 기술지원하는데 쓰는 돈을 다 태워버리거나 아니면 저에게 준다면(이게 더 좋겠네요) 세상이 휠씬 좋아질 것입니다. 무엇보다도 나쁜 것은, 프로그램이 잘 안 죽게 하거나 죽더라도 작업 내용을 잃어버리지 않게 하는 등 대부분의 사용자가 실제로 중요하게 생각하는 것에 사용할 수 있었고 또 사용해야 하는 개발 리소스가 쓸데없는 비생산적인 기능에 낭비된다는 것입니다. 비생산적 기능에 리소스를 낭비할 대표적인 예가 마이크로소프트 오피스 길잡이로 말도 하고 춤도 추고 짜증도 나게 합니다.(1997년에 추가되었다가 열화와 같은 성원에 힘입어 2002년에 비활성화되었습니다.)
현재도 소프트웨어는 개떡 같지만 우리가 거부할 때까지는 계속 그럴 것입니다. 자동차의 경우도 고객이 안전성(에어백과 ABS)과, 신뢰성(더 좋은 기술로 고장 최소화), 사용성(CD 플레이어와 컵 홀더)을 요구하면서, 이런 기준을 만족하는 차를 구입하고 그렇지 못한 차를 무시하기 시작하자 개선되었습니다. 제 어머니는 항상 "네게 더 좋은 생각이 없다면 불평하지 마라."고 하셨습니다. 저는 더 나은 생각을 많이 가지고 있고, 현재의 소프트웨어 설계 결정에서의 멍청함을 지적하면서 이런 생각을 여러분과 나눌 것입니다. 이 책이 방법을 설명하는 책(how-to book)은 아니지만, 나쁜 프로그램 설계로 인한 가장 끔찍한 효과를 와화하는 트릭을 공개할 것입니다. 예를 들면, 문서를 윈도우의 휴지통으로 보낼 때 나타나는 확인 대화상자("~!항목을 휴지통에 버리시겠습니까? 정말로? 정말, 정말, 정말로?")를 끄는 방법과 같은 것들 말입니다. 더욱 중요한 것은 이 책이 소프트웨어 산업에 우리의 목소리를 전달해 소프트웨어가 좀더 나아지도록 하기 위해 여러분과 제가 무엇을 해야 하는지 설명한다는 것입니다. 오피스 길잡이에 대해서는 그게 통했습니다. 그렇지 않습니까? 동시에 저는 소프트웨어를 개발하는 것이 물리적 객체(발등에 떨어뜨릴 수 있는)를 만드는 것과 상당히 다르다는 것을 말해야겠습니다. 가령 나무로 탁자를 만든다면, 나무 고유의 속성으로 인해 설계가 제한됩니다. 예를 들면, 나무를 용접할 수는 없지만 나사못으로 조일 수 있고 아무렇게나 휘지 않을 정도의 두께로 얇게 만들 수 있습니다. 그러나 소프트웨어에는 이런 본질적인 제약조건이 없습니다. 소프트웨어는 거의 무한정 마음대로 만들 수 있습니다. 프레드릭 브룩스(Frederick Brooks)가 소프트웨어 공학의 고전인[The Mythical Man-Month]에서 언급했듯이(저는 최근의 가속화된 프로젝트 일정을 고려해 'The Mystical Geek-Week'로 제목을 바꿀 것을 제안했습니다.) 프로그래머의 작업은 '거의 순수하게 생각에 관한 것'입니다. 저는 항상 연기를 병 속에 우겨 넣는 것으로 프로그래밍을 묘사합니다. 따라서 저는 어떤 것이 본질적으로 프로그램에서 하기 어려운 것인지(예를 들면 전기가 갑자기 튈 때도 살아남게 하거나 새 프로그램이 이전 버전과 호환되도록 하는 것)어떤 것이 멍청한 설계자의 의한 얼빠진 설계 결정인지 설명할 것입니다.
저는 하버드 대학의 익스텐ㅁ션 스쿨과 전 세계 기업에서 소프트웨어 개발을 가르칩니다. 저는 많은 저널과 뉴스레터에 기고했을 뿐 아니라 프로그래머와 개발 관리자를 위한 9권의 책을 썼습니다. 이런 불리한 조건에도 불구하고 저는 제 글이 건조하지 않을 것이라고 약속합니다. 저는 전문 용어를 쓰지 않기 위해 최선을 다했습니다. 예를 들면, 여러분은 이 책에서 기가바이트(gigabyte)란 단어를 찾을 수 없을 것입니다. 대신 '디스크 공간의 1/4 분량' (이 글을 쓸 당시에는 거의 비슷했습니다)과 같은 식으로 말할 것입니다. 이 책은 저의 다른 책에 비해 놀라울 정도로 쓰기 위웠습니다. 스포츠 기자였던 레드 스미스(Red Smith.)는 "글쓰는 것은 쉽다. 그저 혈과을 열고 피를 흘리면 된다."고 말하기를 좋아 했습니다. 여러분이 이미 눈치챘기를 바라지만, 저는 여기서 제기한 문제에 열정을 느낍니다. 제가 가르치는 학생들에게 "윈도우XP는 가격에 비해 쓸만한 제품입니다. 윈도우 98은 지옥에 처넣는데 들이는 힘조차 아까울 정도의 허섭스레기입니다."라고 투덜거리면, 학생들은 놀라서 종종 이렇게 말합니다. "빙빙 돌려서 말씀하지 마시고, 솔직한 느낌을 알려주세요." 여기에 저는 다음과 같이 대답합니다. "만약 여러분이 내가 본 대로 말한 것을 가지고 고소한다면 혐의대로 유죄임을 인정하겠습니다." 이 책은 단순히 여러분에게 설명만 하는 책이 아닙니다. 이 정신 나간 전무가들이 제정신을 찾게 해달라는 저의 울부짖음입니다. 이 책을 읽고 난 다음 여러분 의견을 제게 알려주시기 바랍니다.
결론
이 책을 보면서 많은 반성을 한것은 사실이다. 하지만 책 중반에 가면 갈수록 같은 이야기만 하는 것을 보면서 정말 작가는 괴짜 프로그래머가 싫었나 보다. ㅋㅋ 앞으로 사용자를 관점에서 프로그램을 하도록 노력해야 겠다.
'독서' 카테고리의 다른 글
조엘 온 소프트웨어 유쾌한 오프라인 블로그 (0) | 2014.07.23 |
---|---|
[책 소개]회복탄력성 (0) | 2014.06.24 |