소프트웨어 공학의 진실

소프트웨어 공학 관련 책을 읽다보면 ‘이런 멋진 아이디어가 있다니!’라면서 감탄하게 됩니다. 제가 팀의 관리자이고, ‘조엘 온 소프트웨어’를 읽고 감동 받은 상태라고 해보겠습니다. 저라면 이런 상황에서 어떻게 행동할까요. 약간 극단적인 방향으로 상상해 보겠습니다. 새로운 것을 알게 된 저는 그 가능성에 흥분하게 됩니다. 그리고 다음날 팀을 소집하여 ‘조엘 온 소프트웨어’에 대한 이야기를 시작합니다. 팀원들은 어리둥절한 표정으로 제 얼굴을 쳐다보지만, 흥분한 나머지 주위 반응에 세심하게 대처하지 못합니다. 그리고 ‘조엘 테스트’의 12가지 항목을 즉시 도입하자고 주장합니다. 우리 회사는 ‘조엘 테스트’에서 기껏 3점만을 받았을 뿐이고, 12점을 받기 위해 조치가 필요하다고 역설합니다.

똑똑한 여러분이라면 이쯤에서 눈치채셨을 것입니다. 이런 상황을 접하기란 어렵지 않습니다. 새로운 플랫폼과 방법론을 팔려는 회사가 넘쳐나니, 이에 혹하는 관리자가 있기 마련입니다. 더구나 이런 관리자는 새로운 기술이나 방법론 도입에 신중을 기하지 못하고, 모든 것을 한번에 이룩하려고 조급해 합니다. 아시겠지만 이런 식의 ‘덮어놓고 받아들이기’는 아떤 도전도 거부하는 무기력한 태도만큼이나 재앙을 불러옵니다. KMS 등이 유행할 당시에 이를 도입했던 많은 회사들이 1,2,년 후에야 자신들의 실수를 깨달았습니다.

저만큼 신기술과 새로운 것에 매료되는 사람도 많지 않습니다. 하지만 저는 항상 주변의 실수를 지켜보며 한가지만은 절대 잊어서는 안된다고 다짐합니다. 업무를 완성하는 것은 사람입니다. ‘피플웨어 (Peopleware)’에서 지적하듯 대부분의 경우에 새로운 것을 갑자기 도입하려는 시도는 복잡한 문제를 쉽게 해결해보려는 무책임한 태도에 지나지 않습니다. 우선은 사람부터 챙겨야겠습니다. 신기술이나 방법론의 도입은 팀의 공감대를 끌어낸 후에 하나씩 도입해야 합니다.

제목은 거창하게 지었는데, 쓰다보니 원래 목적과는 약간 다른 글이 되어버렸습니다.

  oh oh

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu