결론적으로 얘기하면 개발 조직 내에서 지식 공유가 제대로 이뤄져야 한다는 내용입니다.

제가 경험한 대부분의 개발팀은 코드에 대해서 얘기하는 경우가 거의 없습니다. 단지 납기일 지켜라, 사고 내지 마라, 들여쓰기 잘 해라 정도일 것입니다. 개발자A와 개발자B가 인수인계를 할 때에도 코드단위로 인수인계하는 것이 아니라, 어느 화면이 어느 파일이다 정도만 알려주면 인수인계 끝입니다.

코드를 샅샅이 취조하는 때가 있기는 합니다. 항상 문제가 터지고 난 다음이죠. 그 소스를 짠 개발자는 마음이 천근 만근입니다. 잘못 짠 소스로 인한 손해가 몇 억이다. 이런 식이죠.
해당 소스는 전문가 그룹이 속속들이 파헤칩니다. 인민 재판에서 자아비판식으로 잘못을 저지른 것에 대해 참회를 하게 됩니다. 누가 시켜서 그런 것도 아닙니다. 자신이 손댄 프로그램에 에고(감정이입)처리가 된 것이죠. 내가 짠 프로그램이 오동작했으니 내가 잘못한거야 같은 의식이죠.

물론 좋은 팀장님을 만났다면 윗선에서 커버를 해줄 것입니다. 더 큰 피해가 가지 않도록 말이죠.

이렇게 사고가 나야 소스를 열어본다면 그 팀의 개발자들은 방어적이고, 소극적으로 변합니다. 그리고 다른 사람의 소스가 잘못되어도 함구하고 있습니다. 점점 애플리케이션은 미궁으로 빠져들어가겠죠.

악순환을 선순환으로 바꾸는 방법은 코드의 공유라고 생각합니다. 코드 리뷰, 짝프로그래밍, 메일링 등 수단과 방법을 가리지 말고 함께 일하는 팀원들끼리 코드는 공유되어야 합니다. 그래야 사전에 버그도 찾고, 개선된 코드도 생각해 볼 수 있고, 남이 짠 소스 있는 줄도 모르고 또 만드는 수고도 덜 수 있구요.

답답한 현실이기도 합니다. 사고 터지면 모두 조용히 모니터 보면서 "휴~ 내 업무영역이 아니네, 빨리 수습되어야 할텐데" 하는 식의 문화가 더 이상 아니면 좋겠습니다.
사용자 삽입 이미지
image from: http://www.jc119.go.kr/home/?doc=bbs/gnuboard.php&bo_table=s2_photo&page=17&wr_id=247 

  1. 달룟 2008.08.20 20:06

    동료 개발자에게 소스코드 보여달라고 말했다가 완전 미운털 박히기 쉽상입니다.
    감추고 싶은 버그가 있었는지, 알려주고 싶지 않은 비법이 있었는지는 모르겠지만 참 답답합니다.

  2. iolo 2008.08.20 23:33

    남 얘기가 아니네요... 에휴... 난 도대체 전과 몇범인건지...

  3. 알 수 없는 사용자 2008.08.21 00:43

    정말 공감되네요 ㅠ

  4. Magicboy 2008.08.21 00:50

    사실 남이 자기 코드를 본다는거... 꽤 부담스럽죠..
    특히나 날림으로땜빵해놓고 테스트만 통과한 코드라면 더더욱 -_-;;;

  5. 이니셜W 2008.08.21 09:45

    완전 맞는 소리.
    게다가 요즘 개발자들 문제가 뻔히 있어도 시스템화를 시키려는 의지도 완전 없어요.

  6. ologist 2008.08.21 10:27

    장애나면 팀자체가 같이 해결을 해야죠~
    팀의 의미가 무언지 사람들은 잘 인지를 안하는게 더 문제입니다.

  7. pistos 2008.08.21 16:39

    시스템만큼 팀웍이 중요하죠,
    N모사는 팀웍따윈 필요없어 정책으로 가고 있어서 깝깝...

  8. Steven Yoo 2008.09.26 12:03

    현업에서는 이런 문제도 있군요. 언급해주셔서 감사합니다. 그런데 다른 사람 소스코드 못 보나요? 서로 관련된 업무를 하다보면 서로 소스 코드도 들여다보고 하지 않나요? 소스야 어차피 source repository에 있으니 내려받아서 볼 수 없나요? 잘 몰라서 물어봅니다. 제가 일하는 팀은 작은 팀이라 서로 잘안되면 상의도 하고 소스 코드도 가서 보고 이 부분 좀 수상한데 하고 얘기해주거든요. 그리고 테스터도 소스 코드도 종종 보는데요 (제가 하죠;)

    • kenu허광남 2008.09.26 16:16 신고

      팀이 커질수록 사각지대가 많아집니다. 그리고 코드의 공동소유는 업무 분장이라는 명목으로 의미가 퇴색되는 경우가 많습니다. 거기다 코드의 에고이즘까지 더해지면 남의 코드라는 생각이 진해집니다. 접근하기 힘들어지죠.

+ Recent posts