얼마전 실리콘밸리의 한 Startup company에서 CTO로 일하고 있는 오랜 친구가 한국에 놀러와서 같이 여행을 갔다.
Informix에서 소프트웨어 엔지니어로 시작해서 한 20년 정도 일한 중국인 친구다. 같이 일을 한 적도 있지만 최근 동향에 대해서 여러가지 정보를 들을 수 있었다.
시간이 많이 흐르고 새로운 테크놀로지는 많이 나왔지만 소프트웨어를 개발하는 방식은 바뀌 것이 거의 없었다.
그 핵심을 요약해보면 다음과 같다.
- 소프트웨어를 개발할 때 가장 중요한 것은 스펙이다.
- 스펙을 작성하는데 가장 노력을 많이 들이고 고급엔지니어가 투입된다.
- 전체 개발 기간 중에서 스펙을 작성하는 분석 기간이 가장 길다.
- 스펙을 작성할 때 마케팅이 아주 중요하게 참여를 하고 모든 관련자와 스펙을 여러차례 철처하게 리뷰한다.
- 스펙이 완성되면 스펙에 모든 관련자가 사인을 한다.
- 스펙이 바뀌는 경우는 매우 드물다.
- 예외적인 케이스에서만 스펙이 변경되고 스펙 변경시에는 프로세스를 따른다.
- 스펙을 바꾸면 개발자들이 어려워하고 프로젝트 기간이 늘어나기 때문에 다들 스펙을 바꾸면 안된다는 것을 잘 안다.
- Agile을 적용할 때도 스펙을 잘 작성한다. 대신 주기를 줄이고 빠르게 개발한다.
- 여러 사람이 개발을 나눠서 하기 위해서는 스펙을 잘 작성하고 컴포넌트를 잘 나눈다.
물론 한 개인의 의견이 실리콘밸린 전체 상황을 대변하는 것은 아니지만 다른 회사들도 크게 다르지 않을 것이다. 이러한 근본 원리는 10년전이나 크게 다르지 않다. Agile등의 새로운 기법들이 나와도 회사에 알맞게 적용을 할 뿐이고 근본은 바뀐 것이 하나도 없다.
한국 기업과도 일을 한 적이 있는데 대단한 불만을 토로하면서 다시는 한국 기업과는 일을 하지 않겠다고 한다.
한국 기업과 일을 할 때는 이러한 일들이 일어 났다고 한다.
- 요구사항을 문서로 달라고 하는데 주지 않고 몇마디로 설명만 해준다.
- 스펙을 작성해서 검토해 달라고 하는데 검토를 안해준다.
- 스펙을 완성해서 사인을 하라고 하는데 사인을 안한다.
- 스펙대로 다 만들었는데 UI를 보고 바꿔달라고 한다.
- 계약을 제대로 하지도 않는다.
대부분의 우리나라 소프트웨어 업체들의 부족한 부분도 10년 전이나 지금이나 크게 바뀌지 않았다. 분석 능력 등을 비롯한 기초역량이 부족한 것이다. 물론 기반과 경험이 부족한 상태에서 기초역량을 갖추는 것이 쉬운 일은 아니라는 것은 잘 알고 있다. 하지만 그 상태로 계속 발전해서 Global 경쟁에서 살아 남을 수 없다는 것도 알아야 한다.
우리를 현혹하는 신기한 기법보다 근본에 충실할 때다.