개발 현장에서 겸손한 태도로 묵묵히 자신이 맡은 일을 성실히 해내고 있는 우리네 개발자들……

허나 그렇게 기나긴 세월 산모가 뱃속 태아를 보듬듯 노심초사 야근을 밥 먹듯이 하며 프로젝트를 완료해놓고 보니 태어난 소프트웨어가 사용자에게는 거만한 레바아탄의 모습을 하고 있다면 어떻게 해야 하나요?

<하니와 소프트웨어에 대해 토킹어바우뜨하기>Talk about Software with hani라는 블로그를 운영하시며 자신만의 글쓰기를 통해 많은 생각거리를 주고 계신 신승환 님께서 그간 프로젝트를 진행하고 컨설팅하면서 느끼고 정리한 생각들을 한 권의 책으로 엮어 내셨습니다. 제목은 『겸손한 개발자가 만든 거만한 소프트웨어』입니다.

신승환 님은 2009년 오토에버시스템즈에서 근무하고 있으며, LG전자에서 제품 설계를 지원하는 시스템을 설계하고 컨설팅을 했습니다. 지은 책으로는 『도와주세요! 팀장이 됐어요』가 있으며, 번역서로는 『애자일 프랙티스』 외 다수가 있습니다. 블로그에 공부한 것과 생각한 것을 꾸준히 글로 남기시고 계십니다.

이 책은 그 태생적이고 구조적인 원인을 저자의 경험에서 나온 사례와 심플한 논조로 가볍게 파헤치고 있습니다. 또 이 거만한 소프트웨어의 탄생을 막아낼 실천적 대안까지 제시하고 있습니다. 일명 PAPER원칙입니다.

책에서 저자의 시선은 줄곧 ‘사람’이라는 씨줄에 놓여져 있고 연이어 ‘소통’이라는 날줄로 엮어진 촘촘한 맥락을 따라가고 있습니다. 프로젝트 과정을 겪으며 절절히 느꼈던 모든 문제의 중심에 사람이 있고 그와 마주하여 소통이 서 있는데, 사람간의 구체적인 맥락을 이해하고 해결하려는 소통의 노력 없이는 이런 문제를 넘을 수 없다는 것을 깨달았던 것일 겝니다.

저자는 이렇게 얘기합니다.

프로젝트의 핵심은 뭘까요? 사람에 따라서 의견이 분분하겠지만, 제가 생각하는 핵심은 ‘성공적인 의사소통’ 입니다. 고객이 무엇을 원하는지 확인하고, 고객의 요구사항을 정리해서 팀원들과 어떻게 만들지 상의하고, 제품으로 만드는 데 더 좋은 아이디어는 없는지 같이 토론하며, 그렇게 나온 결과를 또 사람들과 적극적으로 이야기하고, 제품으로 만들기 전에 고객에게 보여주며, 고객의 반성적 사고를 유도해서 우리가 제대로 된 것을 만드는 중인지 확인하는 일련의 작업. 이런 일련의 작업 속에서 가장 중요한 것은 바로 고객과 팀, 팀원과 팀원, 팀과 경영층 사이에 일어나는 의사소통입니다.

이 책에서 거만한 소프트웨어가 무엇인지 사례들을 알아보고 그 원인을 짚어보면서, 사람과 사람, 조직과 조직의 소통을 막는 구조적인 문제를 파헤쳐 나가는 저자 특유의 시원한 문법을 확인하실 수 있습니다. 저자가 제안하는 해법을 같이 고민해보는 좋은 기회가 되길 바랍니다.

아래에 현업의 프로젝트 리더에서 학부생, UX 디자이너에 이르기까지 많은 분이 원고를 미리 읽고 훌륭한 서평을 써주셨습니다. 좋은 서평임에도 표지 지면의 한계로 인해 써주신 글을 모두 싣지 못했습니다. 죄송한 마음으로 블로그를 통해서나마 전문을 싣습니다. 다시 한번 깊이 감사 드립니다.

추천하는 말

김준기 KAIST 학사과정

“지금 알고 있는 걸 그때도 알았더라면…….”

학부 3학년 때, 소프트웨어공학개론 수업을 들었습니다. 당시 수업에서 사용한 방법론은 바로 ‘폭포수 모델’이었죠. 하지만 아주 기본적인 변수 명부터 검사 로직에 이르기까지 팀원들 사이에서 서로의 생각을 동기화시키기 위해서는 엄청난 노력이 필요했고, 결국 수많은 밤을 새하얗게 불태우고 말았습니다.

“지금 알고 있는 걸 그때도 알았더라면…”하는 생각을 가끔 해봅니다. 생각의 동기화란 무형의 대상을 다루는 소프트웨어 개발에선 아주 중요한 부분이고, 그때 필요한 방법들을 알고 실천하는 것은 “협업에 참여하는 개발자로서 필수 요소입니다.

학생이지만 텍스트큐브(Textcube)라는 꽤 큰 규모의 오픈소스 프로젝트에 3년 넘게 참여하면서 모든 사용자의 요구를 반영하기란 결코 쉽지 않은 일임을 깨달았습니다. 텍스트큐브가 어느 날 bloatware라는 소릴 들었을 때, “결국 이런 결과가 나오는구나.” 하는 생각을 했죠. 수많은 기능들을 넣다 보니 겸손한 개발자가 만든 텍스트큐브지만 누군가에게는 거만한 소프트웨어가 되어버린 것입니다.

아쉽게도, 학교 수업에서 배우는 것만으로는 이런 어려움들을 직접 경험해보기가 쉽지 않습니다. 이 책을 읽으면서 제 또래 학생들도 간접 경험을 해봄과 동시에 과제로 나온 팀 프로젝트에 글쓴이가 제시하는 방법들을 직접 적용해본다면, 앞으로 만날 수많은 협업을 성공적으로 이끌 수 있으리라 생각합니다.

박일스크럼』의 역자, NC소프트

“내 자식같이 소중한 프로젝트의 성공 가능성이 높아질 것이다.”

수많은 게임 개발팀들이 새로운 게임을 만들기 위해 노력하고 있습니다. 그리고 그 숫자만큼이나 많은 게임들이 공개도 되지 못한 채로 접히게 됩니다. 제가 겪은 경우나 다른 분들의 얘기를 들어보면, 프로젝트가 접히는 가장 큰 이유는 기술력의 부족이 아니었습니다. 오히려 팀원들 간의 의사소통 부족이나 내부 갈등으로 인한 개발자들의 이직, 재미 요소의 검증 부재, 불편한 UI 같은 것들이 게임 프로젝트를 망치는 대표적인 이유였습니다.

『겸손한 개발자~』는 이전 책이었던 『도와주세요. 팀장이 됐어요』에서 한발 더 나아가 ‘어떻게 하면 프로젝트를 성공시킬 수 있을 것인가?’에 대한 실질적인 조언을 제공합니다. 책을 쭉 읽어본 후에 “우리 팀은 어떻게 더 좋아질 수 있을까?” “우리 프로젝트를 어떻게 더 개선할 수 있을까”를 고민해 본다면, 내 자식같이 소중한 프로젝트가 성공적으로 런칭할 가능성이 조금이나마 높아질 것입니다.

우리에게도 이런 내용의 책을 쓸 수 있는 저자가 있다는 것이 고맙습니다. 지금 코딩하는 데 바로 필요한 책은 아닙니다. 하지만 읽어둔다면 언젠가 어디선가 잘못될 위험을 줄여줄 수 있는 비타민 같은 책입니다. 앞으로도 자신의 경험을 잘 엮어서 알려주실 저자분들이 많이 나오길 기대합니다.

안영회 (주)아이티와이즈 컨설팅 SE그룹 컨설턴트, 한국스프링사용자모임(KSUG) 대표

“언젠가 나도 이런 책을 쓸 수 있기를 희망했던 것 같다”

‘IT’, ‘SI’, ‘전산’ 등등 나름대로 규정지어 불리는 이 바닥에 대해 이만큼 알찬 산문은 처음 본다. 다양한 소재의 공감할 만한 글이 가지런히 잘 정리되어 있다.

앞장을 차지하는 글은 산업 초기라 그러리라고 짐작하지만, 소비자가 아닌 공급자 주도적 혹은 기술 주도적인 애플리케이션 개발의 단점을 꼬집고 자연스럽게 바람직한 방향을 이야기하고 있다.

뒤이어, 소프트웨어 개발을 둘러싼 조직의 문제를 이야기한다. 뜨거운 감자인 보상 문제 그리고 당연하게 강요되는 초과 근무 문제를 다룬다. 후반부는 프로젝트 관리에서부터 요구사항을 도출하고, 팀 협업을 끌어내는 과정에 대하여 생생하게 쓰고 있다. 이 부분은 저자의 이전 저술인 『도와주세요! 팀장이 됐어요』에서 이야기한 내용이 발효 과정을 거쳐 나타난 듯하다.

여러분이 만일 사용자에게 불평을 품어봤거나 야근에 지친 개발자라면 이 책은 다른 시각으로 우리의 현실을 볼 기회를 제공한다. 여러분이 만일 개발자에게 어렵게(?) 무언가 요구를 해야 하는 위치에 있는 기획자이거나 현업 개발자는 왜 그렇게 꽉 막혔는지 이해할 수 없는 분이라면 이 책이 흥미로운 사실을 알려줄 것이다. 그리고 여러분이 우리나라가 IT 강국이라고 해서 프로그램도 잘 만들 것이라 기대하고 있다면 이 책은 담담하게 현실을 이야기해준다. 마지막으로 프로젝트에서 팀장이나 관리자 로 일하면서 조언이 필요한 분이라면 당장 이 책의 후반부를 훑어보라고 권해주고 싶다.

우리나라에도 이런 개발자 산문 하나쯤 필요하다고 느꼈는데, 저자가 선수를 쳐서 책을 쓸 필요가 없어졌다. 🙂

유석현 디자인피버 Digital Experience Division UX 팀장

“사용자의 경험을 예측하고 설계하고 방향성을 정립할 때 쓸 괜찮은 조언집이다.”

사용자의 경험을 예측하고 설계하고 방향성을 정립해야 하는 입장에서 보면 하나의 괜찮은 조언집이다.

난 소프트웨어 개발자가 아니고 사용자 경험(UX)을 설계하고 디자인하는 디자이너다.

처음 원고를 전달받을 때는 “이거 진짜 개발자들 이야기가 아닐까?”라고 생각했지만 한장 한장 원고를 넘기다보니, 실제로는 사용자 경험을 설계하고 만들어내는 사람들과 그런 조직 그리고 결과물에 대한 이야기였다. 사용자의 경험을 예측하고 설계하고 방향성을 정립해야 하는 입장에서 본다면 하나의 괜찮은 조언집이랄까. 단 한 줄의 소스코드도 없이, 포토샵 이미징 방법에 대한 이야기도 없이, 개발과 디자인과 결과물을 이야기 한다.

이 책은 소프트웨어를 만드는 개발자의 이야기를 골자로 하고 있다. 하지만, 실제로는 프로젝트를 수행하면서 겪는 많은 불필요한 과정들과 일상적으로는 이슈가 되지 못한다고 생각하지만 알고 보면 큰 이슈가 되는 문제에 대하여 친절하고도 쉬운 문체로 풀어놓고 있다. 일선의 개발자들뿐만 아니라 디자이너들 역시도 이 책을 읽어보기를 권한다.

그러나 사용자 경험(UX)이 대두되어 있는 지금의 업계 상황에서, 이 책은 더 이상 개발자나 디자이너만의 이야기가 아니다. 특히 경영자들의 시각에서 본다면 현재의 조직과 미래의 조직을 분석하고 설계하는 데에도 좋은 통찰을 줄 수 있을 거라 생각한다.

그렇다고 해서, 반드시 여기에 나와 있는 방법론을 따라야 한다는 이야기는 아니다. 조직의 현 상황과 다가올 미래의 상황에 맞게끔 리드미컬하게 최고의 소프트웨어와 사용자 경험(UX)을 설계하는 것이 좋다. 그것이 사용자 경험(UX)을 고려한 소프트웨어 만들기의 핵심적 가치다.

우리는 종종 주위의 지인들과 술을 마시거나 이야기를 하는 과정에서 좋은 생각(insight)을 얻는다. 이 책은 마치 경험 많은 선배 개발자/디자이너가 “이런 상황에서는 이렇게 하는 것이 어떨까?”라고 진지하면서도 기분 좋게 조언해주는 느낌이다. 원고를 받은 후, 퇴근하는 지하철에서 피식피식 웃으며, 때로는 집중해서 원고를 읽느라 6호선 이태원역을 지나친 적이 한두 번이 아니었다. 그만큼 이 책이 주는 사용자 경험은 즐겁다.

이만우 삼성전자 반도체 총괄팀 『도전! 임베디드 OS 만들기』의 저자

“개발자들이 자신의 의지와는 상관없이 왜 거만한 소프트웨어를 만들 수밖에 없는가를 편안한 문체로 이야기하듯 풀어낸 책이다.”

저자는 소프트웨어 개발 과정에서 소프트웨어가 ‘거만함으로 이어지는’ 여러 가지 문제에 대해 풍부한 경험과 통찰력으로 설명해 준다. 그리고 어떻게 하면 거만한 소프트웨어를 만들지 않게 프로젝트 팀을 이끌어야 하는지 설명한다. 자신의 프로젝트 진행에 대해 한 번이라도 진지한 고민을 해본 사람이라면 이 책을 읽어보고 그 해답을 얻길 바란다.

이준하 월간 마소「열이아빠의 RIA 이야기」의 필자

“어, 이렇게도 할 수 있겠구나! 하고 고개를 끄덕이게 된다.”

정말 오랜만에 책을 손에서 떼지 못하고 본 것 같다. 대형 프로젝트 경험이 없더라도 소프트웨어 개발에 참여해본 독자라면 어느 부분에서나 공감할 만한 상황들이 눈앞에 펼쳐진다. 마치 내 메신저 대화내용을 훔쳐본 것처럼 고민하고 있던 이야기들이 내 시선을 끌게 되고, ‘이거 뭐 다른 대안이 있을까’ 하는 호기심에 다음 장을 넘기게 된다.

왜 이런 일들이 끊임없이 나의 인생에 태클을 걸고 있는지, 수많은 밤샘의 결과가 사용자들에게는 왜 개떡 같은 결과로만 보이는지, 무엇이 발목을 잡고 있는지, 어떻게 변해야 하는지가 저자의 빡센 경험 속에 녹아있는 이야기들과 적절한 사례를 통해 드러난다. 바로 ‘어, 이렇게도 할 수 있겠구나! 하고 고개를 끄덕이게 된다. 사용자 경험이나 애자일과 같은 이야기가 외국 회사에나 있는 이야기라는 선입관을 가지고 있었다면, 이 책을 통해 내일부터라도 어떻게 실천할 수 있는지 만나보게 될 것이다.

최재훈 SK아이미디어 소프트웨어 개발자

“모두가 만족하는 소프트웨어를 개발하는 방법을 이야기한다.”

이 책은 누구나 한번쯤 겪었을 경험담부터 이야기한다. 그리고 개발자와 조직의 관점에서, 사용자 경험의 관점에서 원인을 분석하고 모두가 만족하는 소프트웨어를 개발하는 방법을 이야기한다. 분석이 반이고 해결책이 반이지만 자칫 지루해지기 쉬운 구성은 저자의 박식함과 재치로 보상 받는다. 한번쯤 들어봤을 이론들이 등장하지만, 그것을 완벽히 흡수해 재창조하여 새로운 가치를 부여하는 저자의 재능이 빛난다.

황인석 KAIST 전산학과 박사과정, 『자바스크립트 완벽 가이드』역자

“뛰어난 기술적 소양을 갖춘 공학도들에게 비타민과 같은 책이다.”

이 책은 얼핏 보기에 현직 개발자나 관리자를 위한 내용으로 단정하기 쉽다. 그러나 이 책의 메시지가 가장 절실한 독자층은 한창 자신을 연마중인 우리 공학도들일지 모른다.

이 책은 사람, 소통이라는 키워드를 던지고 있다. 우리 공학도들은 밤새 머리를 쥐어뜯으며 컴퓨터와 정확히 소통하려 노력한다. 이 과정을 통해 우리의 작품에 완벽함을 더하고 혼을 심는다. 하지만, 앞으로의 실전에선 훨씬 불완전하고 모호한 언어를 이용해 소통해야 하는 대상이 있다. 바로 우리가 함께 일할 동료들, 우리의 소프트웨어를 사용할 사용자들이다.

그들과의 효과적인 소통이 결핍된 소프트웨어는 그저 완고한 예술가의 이해하기 힘든 작품이 되어 사람 위에 군림하려 할지 모른다.

이 책의 저자가 선사하는 풍부한 사례와 재치 있는 비유를 통해 거만한 소프트웨어를 예방할 수 있는 실전 노하우를 찾아보자. 카페인과 콜레스테롤을 주식으로 삼아온 우리들에게 영양의 균형을 찾아줄 소중한 비타민이 될 것이라 믿는다.

지금 강컴, 예스24, 인터파크에서 예약판매하고 있습니다.

* 정오표