"우리는 다르다"
"우리는 너무 바빠서 문서를 쓸 시간이 없다."
"우리는 고객이 요구사항을 너무 자주 바꿔서 스펙을 작성할 필요가 없다."
"우리가 개발하는 시스템의 업무는 너무 복잡해서 문서로 만들 수도 없고 개발자도 몇 년 일해야 제대로 일할 수 있다."
"우리 고객은 문제가 생기면 당장 고쳐주지 않으면 큰일 난다."
"우리의 기술은 너무 어려워서 설명할 수가 없다."
"우리 소스코드는 너무 중요해서 아무에게도 보여 줄 수 없다."
"우리 제품의 시장은 너무 경쟁이 치열해서 고객이 원하는 것은 다 들어 줘야 한다."
"우리 프로젝트는 항상 너무 촉박해서 제대로 된 프로세스를 밟을 수 없다."
"우리는 도저히 리뷰할 시간이 없다."
"우리는 프로젝트 기간이 항상 너무 짧아서 테스트는 대충하고 출시해야 한다."
"우리 시스템은 너무 복잡해서 설계자가 구현까지 하지 않을 수 없다."
"우리 시스템은 너무 복잡해서 개발자가 테스트를 해야 한다."
다들 가장 까다로운 고객을 가지고 있고, 너무 어려운 기술이고, 업무도 너무 복잡하고, 항상 시간이 없다라고 말합니다.
이 얘기는 거의 모든 SW회사들에게서 듣는 별로 특별할 것도 없는 얘기들입니다.
결국 SW 회사들의 근본은 별반 다를 것이 없습니다. 소프트웨어를 제대로 개발하기 위해서 거쳐야 할 프로세스, 문서 작성, 리뷰 등은 크게 차이가 없습니다. Detail한 부분은 서로 다를 수 있지만, 기본 원리는 같습니다. 하지만 자신의 회사는 대단한 도전을 하는 것과 같은 착각을 하고 있는 경우가 너무나 많습니다. 오히려 제대로 하고 있지 못하고 있기 때문에 환경이 더욱 열악하게 느껴지는 것을 알고 있지 못하는 경우가 더 많습니다.
세상에 시간이 너무 넉넉한 SW프로젝트는 거의 없습니다.
세상에 마음 착하게 문제 해결을 개발회사가 원하는 만큼 넉넉하게 기다려 주는 고객은 거의 없습니다.
대부분의 회사가 다루고 있는 기술은 크게 특출 날 것도 어려운 것도 별로 없습니다. 대단히 소수의 SW회사들만 그런 어려운 기술을 다루고 있습니다.
결국 현재의 문제를 자신의 부족함에서 찾지 않고 환경의 열악함으로 돌리는 것은 나아질 수 있는 기회를 잃어버리는 결과를 초래할 수도 있습니다.
정말 열심히 일하고 있는데, 개발은 점점 복잡해지고, 야근은 점점 늘어가고, 고객의 요구는 점점 까다로워 진다면 내부를 돌아봐야 합니다. 회사가 제대로 SW를 개발하고 있는 것인지 심각하게 고민해 봐야 합니다.