회사소개 서비스소개 사례소개 인재채용 약도,연락처 방명록   블로그코리아
작성자
utsman

A군은 초보 프로그래머랍니다.
A
군이 개발자가 되고 나서, 첫 프로젝트를 할 때였어요
몇 개월을 고생해서 개발을 마치고, 고객에게 시연을 하는 날이었죠.

"A
.. 이건 우리가 얘기한 기능이 아닌 것 같은데요."
시연을 끝내자마자, 고객이 들려준 첫마디였대요.

'A
, 정말 수고했어요' 이건 A군이 듣게 되리라 생각했던 말이었대요.
예상과 전혀 다른 실망에 겨운 얘기가 나오자, A군은 정말 당황스러웠겠죠?

데모를 사용하여 자주 피드백을 받으라.

시간이 지난다고 사람(고객)의 마음이나, 기대는 굳지 않는다. 고객의 생각과 기대는 원하는 내용을 말한 후에도 계속 진화한다.

고객은 요구사항을 제시한 후에 여러분에게 구현을 요청한 기능을 사용하는데 더 좋은
방법을 계속 생각해낸다.

초기 요구사항을 받아서 그 내용을 구현하는데 그치면, 제품을 인도할 때 결코 고객의 요구사항을 만족시킬 수 없다. 그 사이에 요구가 바뀌기 때문이다.

고객의 요구를 받을 때와 개발한 내용을 보여줄 때의 시간 간격이 클수록 고객의 기대에서 더 멀어진다.

규칙적이고 일정한 간격으로 고객을 만나 지금까지 끝낸 특징과 기능을 보여줘라.

- 애자일 프랙티스 실천 가이드 중에서..


개발을 진행했던 3개월 동안, 정말 열정이라는 보이지도 않는 것 하나만 믿고, 무작정 매달렸던 A군이었기에, 다들 휴가를 떠나던 7,8,9 월에 밥 먹듯이 날밤을 새고, 주말에도 쉬어본 적이 없었던 A군이었기에 더욱 더 고객의 터져 나오는 불만에 더욱 가슴 아파했어요.

책에서 봤던 기술들, 하루가 멀다 하고 튀어나오는 신기술들.. 각종 기술들을 쓸 줄 알아야 멋진 개발자가 될 거라고 A군은 믿었죠. 그래서 시키지도 않은 기능들과, 새로운 기술들을 기본적인 이해도 하지 못한 채 마구 집어넣었다고 고백하더군요.

개발을 진행할수록, 추가했던 기능에서 자꾸만 버그가 났대요. 신 기술은 신 지식을 필요로 했기에,
눈앞에서 버그를 보면서도, 잡을 수가 없었더라 는 거죠. 어떻게 잡아야 할 줄을 몰랐던 거예요.

A군이 하루 종일 구글을 뒤져가며, 버그를 수정하고 또 수정을 하면서 시간은 자꾸만 흘러갔어요.
일정은 자꾸만 뒤쳐져 버린 거죠.


낭비를 제거하라

낭비는 제품에 가치를 부가하지 못하는 모든 것을 일컫는데, 이때 가치란 고객이 인지하는 것을 말한다.

만약 생산라인에서 당장 필요한 것보다 더 많이 만들고 있다면 그것도 낭비다. 개발자가 당장 필요한 기능보다 많이 코딩 한다면 그것도 낭비다. 제품 개발에서 가장 이상적인 것은 고객이 원하는 바를 알아내고 정확하게 그들이 원하는 것을 개발, 생산해서 거의 즉시 전달해주는 것이다.

무엇이든지 고객의 필요를 빨리 만족시키지 못하게 방해하는 것은 모두 낭비 요소다.

향후 사용될 것에 대비하여 약간의 가외 기능을 시스템에 넣는 게 좋은 생각인 것처럼 보인다. 개발자들은 어떻게 작동하는지 보고 싶어 새로운 기능을 추가하기도 하는데, 이것은 위험을 야기할 수도 있으며 심각한 낭비다. 코드의 한 줄 한 줄은 시스템의 복잡도를 높이고 잠재적인 결함 요소를 가진다. 추가 코드는 사용되지 않고 사장될 가능성이 훨씬 높다. , 아무런 역할을 하지 않는다는 것이다. 만약 지금 그 코드가 필요하지 않는데, 시스템에 넣는 것은 낭비다. 넣고 싶은 유혹에 저항하라.

- 린 소프트웨어 개발(메리 포펜딕 지음) 중에서..


실망감만 안겨준 시연은 실패로 끝나버렸고, 그 결과로 고객의 요구사항을 다시 받아야 했어요. 다시 몇 주를 고생해서 대부분의 기능을 수정해야 했던 것은 당연한 결과겠죠?

이미 몸은 지칠 대로 지쳐있었고, 처음의 열정은 부담스런 부정과, 자괴감으로 변해서 A군을 끊임없이 괴롭히는 것 같았어요. 이제는, 될 대로 되라는 식으로 마구 코딩을 하게 되어버린 A군이랍니다.
나쁜 냄새를 풍기는 코드들을 보고도, 나중에 수정하자고 하며 방치하게 되었고, 하나 둘 쌓여가기 시작했어요. 결국엔 제대로 수정하기 조차 엄두도 안 나는 상태가 되어버렸죠.

우리의 A군은 교회에 다녀본 적도 없었는데도, 기도를 하기 시작했다고 주변인들이 얘기해주더군요.
'
제발 고객이 발견하지 못하게 해주세요' 라고 빌기라도 한 걸까요?


깨진 유리창의 법칙

우선 치안이 비교적 허술한 골목을 고르고, 거기에 보존 상태가 동일한 두 대의 자동차를
보닛을 열어놓은 채로 1주일간 방치해 두었다. 다만 그 중 한대는 보닛만 열어놓고, 다른 한 대는 고의적으로 창문을 조금 깬 상태로 놓았다.

약간의 차이만이 있었을 뿐인데, 1주일 후, 두 자동차에는 확연한 차이가 나타났다. 보닛만 열어둔 자동차는 1주일간 특별히 그 어떤 변화도 일어나지 않았다. 하지만 보닛을 열어 놓고 차의 유리창을 깬 상태로 놓아둔 자동차는 그 상태로 방치된 지 겨우 10분만에 배터리가 없어지고 연이어 타이어도 전부 없어졌다. 그리고 계속해서 낙서나 투기, 파괴가 일어났고 1주일 후에는 완전히 고철 상태가 될 정도로 파손되고 말았던 것이다.

- 필립 짐바르도 교수에 의해 실행된 실험


악몽 같던 시간들이 흐르고, 결국엔 고객의 승인을 받아 프로젝트가 종료되었죠.

A
군은 또 다른 개발 프로젝트로 바쁜 일정을 보내며, 그 날들에 대한 기억들을 추억으로 간직한 채 살고 있답니다.

가끔씩 A군은 투덜거립니다.
그때, 고객과 긴밀하게 얘기했더라면, 좀더 신중하게 코딩을 했더라면, 좀더 테스트를 많이 했더라면 어땠을까? 하고 말이죠.

같은 실수를 반복하는 저를 볼 때마다, A군의 이야기를 떠올리곤 합니다.


실패하는 법을 배우라

즉흥 연주가 잘 안되는 것은 연주자가 잘못된 음이 튀어나왔는데 뭘 해야 할지 모를 때다.
밴드를 뒤로 하고 관중 앞에서 연주할 때 듣기 싫은 소리가 나면 아마추어는 뼛속까지 얼어버린다. 심지어 대가들도 틀린 음정을 연주한다. 하지만 대가들은 청중이 모든 것이 의도적이라고 느끼게 하여 실수를 만회한다.

우리는 모두 일을 하다 어리석은 실수를 할 것이다. 그것은 지극히 인간적 모습이다.
다만 실수를 했을 때, 고객에게 어떻게 대하느냐의 차이가 신뢰를 쌓는(또는 부수는) 결정적인 요인이 될 수 있다.

실수를 잘 처리하면 더 열성적인 고객으로 만들 수 있다. 일하다 실수를 할 때 이를 기억하고 고객을 대하라.

- 사랑하지 않으면 떠나라(차드 파울러 지음) 중에서.



by utsman