All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다.
RSS Feed
우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다.
히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다.
그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내놔도 뒤지지 않을만큼 뛰어나지만 골결정력 등 섬세한 고급 기술들이 부족하다고 생각했었다.
하지만 히딩크는 이를 전면 부정하고 고등학교 축구팀처럼 기초 체력 훈련에 집중했다. 주변의 반대가 심했지만 강행했다.
그리고 월드컵에서 그 결과를 보았다. 경기 후반 다른 나라 선수들이 지쳤을 때 우리 선수들은 한발 더 뛸 수 있었고 승리로 이어졌다.
우리나라 개발자들은 개인기들은 뛰어나다. 즉, 코딩을 잘하는 개발자도 많고 온갖 지식도 많이 안다.
솔직히 이 정도로 많이 아는 개발자들은 전세계적으로 찾아보기 어렵다. 그럼에도 세계적인 소프트웨어 회사가 우리나라에 없고, 세계적인 제품을 찾아보기 어려운 것은 기초 체력이 부족하기 때문이다.
개발자들이 많이 아는 지식은 혼자서 배우고 익힐 수 있는 것들이다. 이것은 노력하는 개발자라면 누구나 다 잘 한다.
하지만 기초 체력은 혼자서는 절~대로 배울 수 없는 것들이다. 대부분 잘 갖춰진 개발문화를 가진 SW회사에서 몇년씩 일하면서 자연스럽게 배울 수 있는 것들이다. 그렇게 쌓은 기초 체력을 갖춘 개발자들이 버글버글 해야 그들이 뭉쳐서 좋은 소프트웨어도 만들고 그중에서 세계적인 소프트웨어도 나올 수 있다.
그런 좋은 환경에서 배울 수 있는 기초 체력은 코딩도 아니고 Domain 지식도 아니다.
아래와 같은 것들이다.
- 소프트웨어 개발에 있어서의 개방의 문화
- 리뷰 문화
- 공유 문화
- 협업 문화
- 신뢰의 문화
- 효율적인 개발 프로세스
- 소스코드 관리 기법
- 이슈 관리 기법
- 빌드/릴리즈 기법
- 테스트
이런 것들이 몸에 베어 있어야 한다. 몸에 베이지 않고 지식으로만 알고 있는 것은 막상 시행하려고 할 때 제대로 실행하기 어렵다. 엉뚱한 방향으로 흘러가서 이상하게 되어 버린다.
또 기초 체력에 해당하는 것들은 비싼 툴을 쓰고 정교한 세계 최고의 방법론, 프로세스를 도입한다고 해서 나아지지 않는다. 오히려 방해가 되는 경우가 많다. 그런 비싼 툴과 정교한 프로세스를 그것을 필요로 하는 곳이 따로 있는데 맞지도 않는 것을 쓰게 되면 반감만 커지게 된다.
툴은 꼭 필요하지만 환경에 맞게 필요한 툴과 적절한 프로세스가 필요한 것이다. 그 기반하에서 문화가 꾸준히 쌓이게 된다.
이런 기초 체력이 뒷받침 되어야 다음과 같은 고급 역량이 생기기 마련이다.
단어만 놓고 보면 우리도 다 하는데라고 생각할지 모른다.
이는 태권도 10급이 태권도 9단에게 나도 태권도 할 줄 안다고 하는 것과 비슷하다.
Global 하게 경쟁 좀 하려면 4,5단은 되어야 하는데 우리나라에서 유단자 찾기 어려운 이유가 기초 체력을 먼저 갖추기 어려운 환경에서 일하기 때문에 이런 고급 기술은 닦을 시간도 없고 방법도 모르기 때문이다.
그래서 내가 중요하게 생각하는 것이 개발 환경을 먼저 바꿔 놓는 것이다.
기본적으로 이슈관리시스템, 소스코드관리시스템만 제대로 사용해도 반쯤은 바뀐 것이다.
이런 시스템들을 쓰면 우리가 눈치 채지 못하지만 여러가지 원칙, 프로세스를 저절로 배우게 된다. 수십년간 수많은 SW회사들의 성공하는 방법이 녹아 있는 것이 그런 시스템, 툴 들이다.
따라서 이들을 원칙 그대로 사용만 해도 많은 것을 얻게 된다. 기존의 방법과 다르다고 툴을 무시하고 또는 이상하게 변형하면 99.9% 잘못된 방향으로 가고 있는 것이다.
그리고 빌드, 테스트, 리뷰 등등을 하나씩 갖춰나가면 어느덧 꽤 효율적인 조직의 모습을 갖출 것이다.
이때 나타나는 조직의 모습은 다음과 같다.
- 회사의 모든 개발 이슈가 투명하게 Open 된다.
- 모든 업무의 커뮤니케이션이 원활하며 이런 것에 시간 낭비 하지 않는다.
- 모든 소스코드는 공개가 되어 있고, 협업이 원할하다.
- 숨어서 개발하는 개발자는 더이상 존재하지 않는다.
- 경영자와 관리자는 개발 진행 상황을 한눈에 파악하고, 각 개발자들의 업무 진행 상황을 쉽게 파악한다.
대부분은 이쯤에서 만족할 수 있을지도 모르겠다.
하지만 여기까지는 진짜 "기초 체력"이다.
국내 대회에서는 꽤 상위권에 오를 수 있다. 하지만 월드컵에 나가면 한 골 넣기도 어렵다.
이제 "고급 역량"이 필요할 때다.
분석/설계/기술전략 등의 "고급 역량"은 단기간에 배울 수도 없다. 그렇다고 혼자 방법과 길을 알아서 익힐 수도 없다. 그렇게는 너무나 오래 걸려서 은퇴할 때가 될 것이다.
"고급 역량"은 이미 "고급 역량"을 갖춘 선배, 동료들과 진짜 프로젝트를 수행하면서 몸으로 익히는 것이다.
어느정도 방법과 길을 아는데는 몇개월 안걸리지만 진짜 역량이 높아지는데는 5년, 10년이 걸리고 20년이 지나면 또 역량이 올라간다.
우리나라 많은 개발자들이 관리 쪽을 기웃거리다가 또 유지보수에 시달리다가 20년 쯤 지나면 이도 저도 아닌 상태와는 많이 다르다.
기초 체력을 익히는 첫걸음은 기초 체력이 부족하다는 것을 인정하는 것이다. 스스로를 인정하지 않으면 바뀔 수 없다. 이렇게 환경부터 하나씩 고쳐나가야 한다.
전규현
소프트웨어이야기
개발 입장에서는 영업은 할줄도 모르는게 어디서 주워들은것만 많아서 입만 놀린다고 무시할수밖에 없고
영업으로는 주워들은건 많아서 눈만 높아지고, 자기가 죄송하다고 하기에는 자기가 만든게 아니니 개발에게 떠넘기고.. 그게 가장 근본적인 문제가 아닐까 싶어요.
구차니님 오랫만입니다.
이 모든 것을 한마디로 얘기하면 전문성 부족입니다. 어떻게 보면 개발자도 포함해서 말입니다. ^^
좋은 글... 매번 잘 읽고 있습니다.
공감...
이제 막 개발계에 입문한 풋내기 신입니다.
경력자 로써의 개발실력을 쌓기전에 뭔가 올바른 개념을 잡아가면서
공부할수 있게 되는것같아 좋은글들 써주셔서 감사하게 생각합니다.
아무리 시간없어도 하루에 한번씩 1개의포스팅을 읽을 예정입니다.
앞으로도 잘 부탁드리겠습니다^^ 감사합니다.
안녕하세요. UYEONG님
읽는 속도에 따라잡히지 않으려면 저도 하루에 하나씩 포스트를 해야 하는 것 아닌지 모르겠습니다. ^^
공감 지수 100 입니다.
잘읽었습니다. 제품을 기획하고, 경쟁사 제품들을 리서치하여 공유하고...프로토타이핑 하여 내부 시연하고, 설계하고...개발(코딩)하고.. 통합테스트 여러번을 거치고.. 고객에게 데모 준비하려 밤새고.. 직접 데모하고.. PoC, BMT있으면 준비하며 밤새고..직접 수행하고..제안서 작성 도와야 되고...제품 팔리면 고객사에 볼모로 잡혀가고...욕먹고...버그리포팅 직접 등록하고 직접 해결 및 close처리하고...프로젝트 오픈에 맞춰서 같이 밤새주고..시간날때 코딩하고..
이런 생활 5년 넘었습니다. ㅎㅎㅎ