소프트웨어 장인 - 어떻게 하면 더 나은 프로그래머가 될 수 있을까? #1
소프트웨어 장인 - 어떻게 하면 더 나은 프로그래머가 될 수 있을까? #3
소프트웨어 장인 - 어떻게 하면 더 나은 프로그래머가 될 수 있을까? #2
저자가 부르기 편해서 만든 용어인지, 그 쪽 업계에서 통용되는 용어인지는 모르겠지만 매우 재미있는 단어를 사용한다.
브라운 프로젝트 | 그린 필드 프로젝트 |
---|---|
레거시 코드가 가득한 프로젝트 | 백지 상태에서 시작하는 프로젝트 |
프리랜서를 할 때를 생각해 보면 당연히 브라운 프로젝트가 100% 이다. 이 때 나의 능력을 갑님에게 부각시키려고 레거시 코드를 깎아 내렸던 것을 기억한다. 일부러 깎아 내린 기억도 있지만, 자기 코드가 아니면 기본적으로 불편한 것이, 라때는 말야를 외치는 경력자들의 공통사항인 것 같다(자기 합리화!!!). 하지만 어느 날 ‘누가 이 따위로 코드를 짠거야!’라고 승질내고 있을 때, 도중에 나오는 본인이 작성한 코멘트를 보는 역사를 한번 쯤은 경험하게 된다. 그러면 없어지는 것은 아니지만 레거시 코드를 볼 때 매우 조심하고 있는 본인을 발견하게 될 것이다(경험치 획득).
개발자 용어로 비즈니스 담당에게 설명을 하면 알아 들을리가 없다. 물론 ‘나 프로야’라고 하는 이미지를 주기 위해서 엄청난 약어들과 전문 용어로 도출된 코멘트를 한번 쯤은 날릴 필요는 있다고 본다. 히자만 서로 간에 존중(리스펙~)이 전체가 된다면 최대한 이 쪽의 상황을 그림, 화이트보드 등등을 이용해서 그들의 용어로 이해시킬 필요가 있다. ‘말해도 알아 듣지를 못하고 엉뚱한 소리만 하쟎아’라고 판단이 된다면, 충분히 알아 듣도록 설명이나 예시가 부족했거나 내가 그럴 능력이 없거나(의외로 많다)이다.
또 누구나 실수를 감추고 싶어하는 것은 사람의 기본 심리일 것이다. ‘알려지기 전에 샤샤샥 아무도 모르게 고쳐야지’라는 생각이 당연히 든다. 하지만 이렇게 대충 넘기로 나면, 나중에 채득(?)되어 버려서 더 큰 실수를 하게 된다. 미리 알리고 그와 같은 실수가 반복되지 않도록 방지하는 방법에 대해서 논의를 해야 한다. 잠깐의 챙피함과 비난을 이겨내면(없다면 정말 훌륭한 조직이다), 이후에 돌이킬 수 없는 실수를 방지할 수 있다.
까탈스러운 고객이라도 그들의 요구사항을 충분히 공감하고 이해하고 있어야만, 내가 만든 제품을 쓰는 고객이 만족하는 모습을 볼 수 있다. 당장은 아니더라도 이 후에 다른 제품보다 우월함을 경험한 고객이 나를 인정하는 기적(?)같은 모습도 볼 수도 있다. 내가 만든 제품을 다수의 사용자 사용하면서 긍정적인 피드백을 하는 광경은 경험해 보지 않고는 설명할 길이 없다. 막말로 뽕맛이라고 한다.
이런 것은 그냥 만들어지지 않는다. 나의 열정과 시간을 투자했는데 버그가 가득해서 또는 고객이 원치 않는 전혀 다른 기능을 만들어 놓아서 고객으로 부터 불평 & 불만이 계속적으로 나온다면, 회사가 아니라 나도 절망하게 된다. ‘안녕…나는 이 지옥에서 탈출한다.’ 하는 새각을 실행해 옮길 것이다.