
겸손한 개발자가 만든 거만한 소프트웨어
‘개발업무’이외에도 업무와 관련된 커뮤니케이션 자체 대한 절실함이 느껴지는 하루 하루 입니다. 마침 좋은 기회(?)를 맞이하여 현재 칼퇴근의 신화(?)를 창조한 현 개발팀 이야기를 잠깐 해 볼까 합니다.
1. 조직과 조직간의 의사소통
- 회사내에 Feedback을 주는 사람(or 부서)이 거의 없습니다. 일정확인도 거의 없습니다.
- 업무 연락 및 관리 업무를 담당한 분들은 다들 자기 일에 바빠서 개발업무에 신경을 거의 쓰지 않으십니다.
이런 경우 겪어보셨는지요?(저..저도 처음입니다만) 사실 기획 업무를 맡으신 분과의 원활한 의사 소통이 프로젝트 성공의 상당히 중요한 요소라고 생각하는데 무척 안타까운 점이였습니다.
이런 회사 분위기를 바꿔보기 위해서 개발팀이 나서서 메일을 보내고 일을 진행하고 외부와 연락하는 모든 메일에 참조로 붙이고, 외주업체와의 협업시에는 반드시 기획팀을 통하여 연락을 하도록 건의하여 프로세스를 변경하였습니다. 기획팀은 귀찮아(???) 할 수도 있는 문제지만 예전에 0건이던 FeedBack이나 일정에 대해 물어보는 횟수가 1-2회씩이라도 늘어나고 서로 이야기 할 시간이 조금씩 이라도 늘어나고 있다는 것은 고무적인 일입니다.
아직은 서로가 부족하지만 시간이 지나면 서로간의 업무에 대한 범위, 장기적으로 프로세스에서 진행 방법등을 더 이야기 해 볼 수 있을 것 같습니다.( 다른 곳에서는 기획팀이나 영업/마케팅 하시는 분이 너무 괴롭혀서 힘들어 하시는 분들이 많으시던데… ^^ ) 서로간의 기본적인 상식선에서 이 문제는 해결을 본 것 같습니다.
2. 개발팀 내부의 의사소통 문제
- 버젼 관리/보안/구조화 같은 것은 찾아 볼 수 없는 JSP+Model1 Code 들로 된 사이트가 있습니다.
- 거기에 JSP 코드를 PHP 수준으로 사용하고 있습니다.(으악!)
사실 위에 나열한 기술적인 문제는 팀 내부의 소통의 문제는 아닙니다. 기존 개발팀들이 서서히 해체되고 현재의 팀이 꾸려지는 기나긴(자세한 내용은 생략해도 누구나 알수 있을 법한?) 과정중에 발생한 기술적인 화두들일 뿐입니다. 하지만 팀원(PM까지 전부 합쳐야 단 둘. ^^) 들이 저런 문제에 대하여 서로 다른 생각을 가지고 있다거나, 한사람만 인지하고 다른 사람이 인지하지 못하고 있다면 함께 일 해내가긴 참 힘들 것 같습니다.
다행히 개발자분은 기술적인 지식은 약간 부족하지만 문제 해결 능력이나 실제 업무 처리에 있어서(시간이 좀 걸리는 점 빼고는) 문제 될 점은 없습니다. 하지만 이 상태(1번에 내용을 포함하여..)로만 계속 간다면 회사 전체적인 관점에서 큰 문제다라는 인식을 서로 공유하게 되었습니다. 하여 어찌할까 고민하다. 입사 초에 개발자분과 이런저런 대화 나누던 중 ‘저는 질질 끄는 회의 말고 짧고 깔끔하게 하는 회의가 너무 좋아요. 뭔가 일하는 것 처럼 보이자나요? 여기선 아무도 그런걸 안하려고 해요.’ 라는 말이 기억이 나서. 그래. 그럼 우리 매일 회의하자!
기술적인 지식도 좀 쌓고, 원활한 의사소통을 위하여 매일 10-30분 정도 회의를 가집니다. 추후 일정, 오늘의 남은 업무,현재 작업의 진행사항이나 문제점, 개발과 관련된 전반적인 지식이나 새로운 기술들에 대한 것들로 회의를 가집니다. 회사 회의실의 화이트보드는 사실상 개발팀이 독점해서 사용할 만큼 빈번히 회의를 합니다. 많게는 6-7번씩 가질 때도 있고 적을 때는 1-2번으로 끝나는 날도 있습니다.
회의에서 주로 거론되는 내용이라고 해봐야 ‘오늘 뭐했나?’, ‘지금 어디까지 진행되었나?’, ‘이제 해야 할 것은 무엇인가?’, ‘이런이런식으로 문제를 해결하려는데 어떠냐?’, ‘이런이런거 있는데 한번 해볼까?’, ‘오늘 야근 할껀가?’, ‘점심(or 저녁)은 뭘 먹을 것인가?’, ‘아 우리회사 누구누구~’, ‘아 어제 어디 갔었는데 정말 좋더라’, ‘다음에 뽑을 개발자는 꼭 여직원으로!!’ 같은 것들뿐이지만 이 회의에는 독서와 경험에서 나온 몇가지 나름의 원칙이 있습니다.
- 형식을 갖춘 브리핑/보고서 같은건 일절 하지 않고 가볍고 편안한 분위기로 칠판에 쓱쓱~ 쉽게 그리고 간단하게만 메모하고 특별한 이슈가 발생하면 그때그때 보고하고 처리합니다.(귀찮으면 핸드폰 카메라로 찍어서 대충 메모 할 때도 있습니다..)
- 아무리 뛰어난 개발자라도 놓치는 부분이 있을 수 있습니다. 한 사람보다는 두 사람의 생각이 (대체로) 더 뛰어나다는 확신을 가져야 합니다.
- 아무리 바보같은 생각이나 이야기라도 서로 이야기 할 수 있어야 합니다. 그렇지 않으면 서로 배워나가기 힘듭니다.
- 회의시간은 절대 30분을 넘지 않아야 합니다.(넘을 것 같으면 잠시 쉬었다가 다른 일을 하다 다시 모입니다.)
사실 위의 몇가지 원칙은 코끼리를 춤추게 하라, 맥킨지는 일하는 방식이 다르다. 등의 책을 참고하여 나름 정한 원칙입니다. 지금까지는 아주 효과적이고 또 효율적으로 진행되고 있습니다.(서로 충분히 만족할 만한 성과를 보이고 있다는 의미입니다.) 일정보고도 꼬박꼬박 메일을 통해 공유되고 일이 터지면 스스로 야근(?)하는 개발팀인지라 타 부서에서의 압박이 거의 없긴 합니다.(사실 아무도 관심이 없는 걸지도 모릅니다.)
이제 회의 하는 문화(?)는 확실히 자리 잡았습니다. 여기에 버젼관리와 Wiki/BBS류의 도구를 도입하여 문서화만 적절하게 하면 개발팀 안에서의 의사소통(+정보 공유)에는 큰 문제가 없을 것 같습니다.(이건 순전히 제 생각일뿐..)
이제 1번의 문제가 점진적으로 해결되면 칼퇴근의 신화도 옛 말이 될 수도 있습니다. 새로운 개발팀원이 합류하면(부디 회사가 커져서 내년에는 여자 개발자분을 당당(?)하게 뽑을 수 있기를!!) 또 다른 방법의 의사소통을 고민해야 될 수도 있습니다. 그러나 입사초기에 급작스럽게 떨어진 사이트 런칭, 사이트 및 업무 파악, 새로운 체계 정립 등 짧은 시간에 많은 일들을 ‘함께’ 처리하고 개발팀이 자리잡는데 있어서 가장 큰 원동력은 개발팀 내부의 원할한 의사소통 이 아니였을까요?
ps. 두서없이 긴 글 읽어주셔서 감사합니다.
ps2. 사실상 의사소통이 없어서 정체되어 있던 곳에 와서 이렇게 우리는 의사소통 하자 라고 정한 것이기 때문에 주제에 맞는지는 모르겠지만 의사소통과 관련된 이야기는 한번 해보고 싶어서 이렇게 트랙백을 남깁니다.