본문 바로가기

R&D

(33)
SW컨설턴트의 개발이야기, 아홉번째.우리나라 소프트웨어 회사에는 Technical career path가 없다. 우리나라에서는 소프트웨어 개발자로 일을 하면서 부딪히는 큰 걸림돌이 있습니다. "Technical career path가 없다"는 겁니다. 이 말에 바로 무슨 뜻인지 팍 와 닿지 않는 사람은 우리나라의 소프트웨어 환경에 이미 익숙해지신 겁니다. 소프트웨어 개발자들은 일을 열심해도 위로 올라갈 데가 없는 경우가 대부분입니다. 그래서 팀장도 되고, 관리자도 되고 다른 직종으로 점점 옮겨가게 됩니다. 그러다 보면 기술과는 점점 멀어지게 됩니다. 뛰어난 기술자들의 보석과 같은 실력을 썩히는 거지요. 대부분의 소프트웨어 회사에서는 Technical Track과 Management Track를 구분해야 한다는 사실을 인식하지 못하고 있습니다. 두 Track은 완전히 다른 것이고 서로 잘 호환 되지도 않습니다. 지금..
SW컨설턴트의 개발이야기, 여덟번째.고객중심의 서비스 마인드가 소프트웨어 산업을 망친다. 우리나라의 Customer Service(A/S) 정신은 정말로 환타스틱합니다. TV가 고장나서 전화하면 수리기사가 바로 달려와서 고쳐주고 갑니다. 핸드폰이 고장나서 서비스센터에 가면 바로 고쳐줍니다. 뭐든지 바로바로 해결이 되죠. 하지만 미국에서는 좀 다릅니다. 노트북이 고장나면 바로 해결이 안됩니다. 서비스센터에 맡겨도 서비스센터는 단순히 포장만해서 수리공장으로 보내는 경우가 대부분이고 오래 걸리면 한달이 걸리기도 하고 재수 좋으면 그보다는 빨리 받아 볼 수 있죠. 미국은 땅덩어리가 워낙 커서 가 도시마다 전문서비스기사를 둘 수도 없습니다. 부른다고 쪼르륵 달려갈 수도 없습니다. 비행기타고 몇시간 날아가서 차 랜트해서 또 한참 가야지만 고객을 만날 수 있거든요. 또 고객이 비행기타고 핸드폰 수리하러 ..
SW컨설턴트의 개발이야기, 일곱번째.기존 소프트웨어를 버리고 언제 새로 만들어야 할까? = Windows Vista가 나온지 얼마 되지도 않은 시점에서 Windows7이 나온다고 하더나 이제는 Windows8이 출시될 것이라는(지금은 출시되었습니다.) 얘기가 떠돌고 있습니다. 아이폰4도 출시된지 알마 안된 시점에서 아이폰5가 출시될 것이란 얘기가 나왔습니다. 어쩔 때는 이것이 진짜인지 그냥 루머인지 구분이 안되기도 합니다. 소프트웨어 개발을 제대로 이해하고 있는 사람들이라면 Windows7이 출시됨과 동시에 또는 이미 그 이전에 Windows8은 시작이 되었다는 것을 알 수 있습니다. 소프트웨어는 끊이 없이 업그레이드가 되어야 합니다. 그러다보면 새로운 요구를 더이상 담을 수 없는 시점이 오게 됩니다. 그래서 소프트웨어의 아키텍쳐도 끊이 없이 발전하게 됩니다. 지금의 소프트웨어가 새로운 요..
SW컨설턴트의 개발이야기, 여섯번째.왜 나만의 방법이 실패하는지? (NIH 신드롬) NIH(Not invented here) 신드롬이란? 카츠와 알렌(Katz & Allen)은 기업연구에서 “선진 기업의 연구조직은 흔히 자신들이 직접 개발하지 않은 기술이나 연구 성과에 대해 배타적 성향으로 보인다”고 주장하며 이러한 현상을 NIH 신드롬이라고 정의했다. 소프트웨어를 개발하는데 있어서도 NIH신드롬과 유사한 현상이 많이 발생합니다. 개발하는데 필요한 라이브러리나 개발 방법, 개발툴들을 모두 입맛에 맞게 직접 만들어서 쓰는 경우를 말하는 겁니다. 우리나라의 개발자들이나 소프트웨어 회사들은 특히나 더 자신만의 방법들을 선호하는 경향이 있는 것으로 생각됩니다. 여러가지가 이유가 있겠지만 몇가지만 나열해보면 다음과 같습니다. 라이브러리를 구매하는 비용을 비싸다고 생각한다. 특히나 회사에서 개발에..
SW컨설턴트의 개발이야기, 다섯번째.매일 불난 호떡집 같은 회사 (중요한 일 vs. 시급한 일) 필자가 컨설팅을 진행했던 수많은 회사들 중에서 80% 이상은 불난 호떡집처럼 매일 불끄느라고 정신이 없습니다. 너무 바빠서 새로운 기술을 연구할 시간도 없다고 한다. 프로젝트를 진행할 때도 가장 빠른 방법으로 문서도 작성하지 않고 가장 뛰어난 개발자가 바로 코딩부터 한다고 한다. 고객들은 기다려주지 않기 때문에 요구하자마자 바로 며칠 안에 제품에 기능을 반영해야 한다고 한다. 제품에 버그가 발견되면 하루 이틀 안에 버그를 수정해줘야 한다. 그렇지 않으면 고객들이 엄청나게 컴플레인을 한다. 사소한 버그 수정도 빨리 해야 하기 때문에 신입 개발자들에게는 시킬 수가 없다. 고참 개발자가 2시간이면 고칠 것을 신입 개발자를 시키면 2일이 걸릴 뿐더러 고참 개발자가 신입 개발자에게 일을 시키고 검토해주는데 2시간..
SW컨설턴트의 개발이야기, 네번째. Google을 이끄는 힘 아이디어 내면 "네가 한번 만들어봐" 소프트웨어 업계만큼 아이디어가 넘치는 곳도 찾기 어렵습니다. Google이 탄생하게 만든 힘도 아이디어이고, Google이 지속 성장하여 지금이 Google이 된 힘도 아이디어입니다. Google에서는 업무시간의 20%는 새로운 아이디어를 생각하거나 준비하는데 사용할 수 있고 좋은 아이디어만 있다면 얼마든지 시도해 볼 수 있습니다. Google이 풍족하기 때문에 그렇게 할 수 있다고 말하는 사람들도 있지만, 이는 닭이 먼저냐? 달걀이 먼저냐?의 이슈입니다. 소프트웨어 업계에 종사하고 있는 사람이라면 항상 새로운 아이디어에 대해서 고민하기 마련입니다. 하지만, 좋은 아이디어를 내면 "네가 한번 만들어봐"라고 하는 경우가 많습니다. 또는 "뜬구름 잡고 있네"라고 하는 경..
SW컨설턴트의 개발이야기, 세번째. 지식을 공유하는 자리' 내부 세미나' 소프트웨어를 개발하는 회사라면 당연히 갖추고 있어야 할 개발 문화는 여러가지가 있지요. Peer Review, Sharing, 규칙 준수 ... 이 중에서 좋은 문화 중의 하나가 일상화된 내부세미나입니다. 유수의 소프트웨어 회사들을 보면 회사에 늘상 세미나 공지가 있습니다. 누구나 세미나를 진행할 수 있고, 대부분 직원들이 관심을 가질 만한 주제들이고, 누구나 부담없이 참여를 합니다. 오다가다 들려서 보기도 하고, 관심이 많으면 준비를 해와서 발표자와 토론도 하기도 하기도 합니다. 누가 시켜서 의무적으로 하는 세미나는 아니지요. 그러한 과정에서 발표자에게도 지식을 더욱 깊고 굳건히 할 수 있는 기회가 되고, 참가자는 새로운 지식을 쉽게 익힐 수 있는 기회가 되고, 회사는 항상 연구하고 새로운 기술을 추구..
SW컨설턴트의 개발이야기, 두번째. 신입 개발자가 들어오면 어떻게 하시나요? 신입 개발자가 들어오면 어떻게 하시나요? 회사에서 소프트웨어를 개발하기 위해서는 많은 것을 알아야 함에도 불구하고 딱히 가르칠게 별로 없는 경우를 많이 보았습니다. 체계적인 교육 방법도 마땅치 않고요. 어떻게 신인 개발자를 가르치고 있는지 제가 아는대로 한번 나열을 해보죠. - 멘토(사수)를 지정해서 맨투맨으로 이거 저거 생각나는 대로 알려준다. - 회사에 문서는 정말로 많다. 책꽂이로 한 벽 가득이다. 그 중에서 뭘 보라고해야 할지 잘 모르겠다. - 제품에 관한 변변한 문서가 하나도 없다. 있다 하더라도 부실하거나 옛날 버전이다. 그래서 말로 아는대로 설명해준다. -개발하는 제품의 메뉴얼을 보여주고 제품의 기능을 익히게 한다. -일단 일을 시키고 본다. 물어보는 것이 있으면 그때 그때 알려준다. -소스..
SW컨설턴트의 개발이야기, 첫번째. 닭이 먼저일까? 달걀이 먼저일까? 소프트웨어 공학은 가르칠 수 없다고 합니다. 단지, 시행착오를 통해서 배우던지, 경험자에게 배우는 방법 밖에 없다고 합니다. 그래서 소프트웨어를 잘 개발하는 방법을 배우는 가장 좋은 방법은 잘 되어 있는 소프트웨어 회사에 들어가서 배우는 것입니다. 잘 되어 있는 회사에서 소프트웨어를 개발하다 보면 자연스럽게 몸에 익히게 되는 겁니다. 소프트웨어 개발이 전체적으로 어떻게 돌아가는지 자연스럽게 몸에 익히게 되며, 각 기능 조직은 어떻게 구분이 되며, 개발에 꼭 필요한 기반 시스템은 어떤 것들이 있으며 어떻게 사용하는지 배우게 됩니다. 따로 공부한다는 생각으로 배우는 것이 아니며 자연스럽게 몸에 익게 됩니다. 그런데 우리의 문제는 여기에 있습니다. 잘 되어 있는 소프트웨어 회사가 별로 없다는 겁니다. 제 컨설..
제이보스(JBoss) 보호되어 있는 글입니다.