본문 바로가기

R&D/소프트웨어 개발 이야기

(16)
SW컨설턴트의 개발이야기, 열여섯번째.SW개발과 빨리빨리 문화의 저주(개발문화 시리즈3) 이번에 다룰 개발문화 이야기는 '빨리빨리 문화'다. 일을 빨리 하자는게 나쁜 건 아니다. 오히려 이런 '빨리빨리 문화' 덕분에 우리나라가 짧은 기간에 성장했을지도 모른다. 더 짧은 시간에 똑 같은 일을 해낼 수 있다는 것은 경쟁력이 있는 것이다. 우리는 그동안 많은 산업분야에서 '빨리빨리 문화'의 혜택을 입었고, 관련 노하우도 많다. 그런데, 이런 '빨리빨리 문화'가 소프트웨어 분야에서는 독이 되는 경우가 많다. 실제로 독이 되는 경우를 많이 보았다. 시제품은 빨리 만드는데 본제품을 완성하는데는 시간이 훨씬 오래 걸리며 품질도 떨어지고 시간이 흐를수록 유지보수가 무척 어려워져서 제품을 포기하는 경우도 흔하다. 상황을 수습하지 못해, 회사의 종말로 이어질 때도 있다. 유독 왜 소프트웨어 분야에서 '빨리빨리..
SW컨설턴트의 개발이야기, 열다섯번째.부실한 공유문화를 지배하는 개발자의 심리 (개발문화 시리즈2) 본격적으로 소프트웨어 개발 문화에 대해서 얘기해보자. 첫번째는 ‘공유의 문화’다. 회사마다 차이는 있지만 소프트웨어 회사에서 부실한 공유 문화는 많은 부작용의 원천이다. 여러 사람과 정보를 공유하는 것에 따른 장점은 여러가지다. 다양한 시각을 가진 이들의 의견이 반영되면서 프로젝트 리스크가 감소되는 건 물론 개발자는 자신이 해왔던 과거업무의 속박에서 벗어날 수 있다. 반대로 공유문화가 부실한 회사는 왜곡된 의사결정으로 프로젝트 리스크가 커지고, 아키텍쳐나 제품은 뒤죽박죽이 되는 경우가 많다. 개발자는 자신이 과거부터 해온 일들에 발목이 잡혀 고참이 되도 유지보수에 바쁘고 신참에게 일 시키기도 어렵다. 본인 스스로 고급개발자로 성장하기 어려운 구조라고 하겠다. 개발자가 수백명, 수천명인 회사나 개발자가 1..
SW컨설턴트의 개발이야기, 열네번째.왜 적은 인원으로 빨리 개발하나…개발문화의 비밀 (개발문화 시리즈 1) 우리나라에서 소프트웨어 개발이 3D 취급을 받는 이유는 여러가지다. 끝을 모를 야근과 낮은 대우 등도 포함되겠지만 좀더 근본적인 이유는 따로 있다. 낮은 생산성 때문이다. 소프트웨어를 개발해서 회사가 돈을 많이 벌고 세계적으로 성공하는 소프트웨어가 많이 나온다면 생산성의 핵심인 개발자에게 당연히 높은 대우를 해주게 마련이다. 하지만 우리나라에서는 크게 성공한 소프트웨어 회사가 많지 않다. 그리고 소프트웨어 회사의 수익률이 별로 높지 않기 때문에 소프트웨어 개발자에게 좋은 대우를 해줄 수 없다. 결국 이런 소프트웨어 개발에 대한 낮은 대우를 극복하기 위해서는 성공하는 소프트웨어, 성공하는 회사가 많이 나와야 한다. 그럼 성공하는 소프트웨어 회사와 그렇지 못한 회사를 가르는 결정적인 차이는 무엇일까? 판단의..
SW컨설턴트의 개발이야기, 열세번째.공짜 점심이 개발자를 행복하게 할까? 최근에 국내 유수의 소프트웨어 회사들의 구조조정 회오리를 보면 착찹한 생각이 든다. 척박한 우리나라 소프트웨어 환경에서 참신한 개발문화를 도입하고 새로운 모습을 보여주려고 했던 회사들이어서 더욱 안타깝다. 필자는 이런 현상의 결과와 겉모습만 말고 다른 시각에서 좀 더 근본적인 원인을 살펴보고자 한다. 3D 취급을 받고 있는 국내 소프트웨어 개발자들은 잘나가는 실리콘밸리의 소프트웨어 회사들과 높은 연봉을 받는 소프트웨어 개발자들이 부럽지 않을 수 없다. 종종 그런 회사들의 끝내주는 개발 환경이 부러움을 사곤 한다. 공짜 점심, 자유 출퇴근 제도, 공짜 커피, 편안한 사무실, 환상적인 휴게실/오락실/수영장, 선택 가능한 재택근무 등이 그것이다. 물론 회사마다 다르기는 하다. 우리도 개발자들에게 이런 공짜 점..
SW컨설턴트의 개발이야기, 열두번째.거의 다 만들었어요. "거의 다 만들어서 2주후에 개발이 끝나요" 이 말을 이해할 수 있는가? 우리 주변에서 소프트웨어를 개발할 때 흔히 들을 수 있는 말이다. 개발자들도 이렇게 얘기하고 관리자나 경영자도 대충 알아듣는다. 하지만 이런 대화는 여러 오해를 양산한다. 영업 담당자는 2주후면 고객에게 소프트웨어를 제공할 수 있는 것으로 착각하기도 하고, 경험이 좀 있는 관리자는 아직 충분히 안정적이지 않거나 테스트가 남아 있다는 것도 알기도 한다. 하지만 정확하게 언제 고객이 쓸 수 있는 제품이 나오는지는 알 수가 없다. 그래서 우리는 좀더 전문적으로 제대로된 용어를 사용해서 커뮤니케이션을 할 필요가 있다. 우선 개발 단계별로 정확한 용어를 사용하는 것이 필요하다. "개발"이라는 말은 너무나 모호하다. 사실 스펙을 쓰는 일부터 ..
SW컨설턴트의 개발이야기, 열한번째.개발자, 회사의 과거인가 미래인가. 개발자는 소프트웨어 회사의 가장 중요한 자산이면서 서로 상반된 2가지 가치를 가지고 있다. 첫 번째는 ‘과거의 가치’이고 두 번째는 ‘미래의 가치’이다. 나는 과거의 개발자일까? 미래의 개발자일까? 스스로 판단하기는 어려울 것이다. 동료나 경영진에게 내가 퇴사를 하면 어떻게 될까?라는 질문을 해보면 짐작할 수 있다. 내가 퇴사를 하면 과거에 개발해 놓은 제품들을 어떻게 하지?라는 생각이 가장 먼저 들면 ‘과거의 개발자’에 가깝다. 반대로 내가 퇴사를 하면 과거에 개발해 놓은 제품들은 문제가 없는데 미래에 개발할 제품은 누가 개발하지?라는 생각이 들면 ‘미래의 개발자’라고 볼 수 있다. 회사나 개발자 입장에서 권장되는 개발자 타입은 미래 가치를 많이 지닌 “미래의 개발자”이다. 미래의 개발자가 지금은 가치..
SW컨설턴트의 개발이야기, 열번째.1:10:100 rule 소프트웨어를 개발하는데 있어서 꼭 알아야 할 규칙이 하나 있다. 바로 "1:10:100 rule"이다. 성숙한 개발문화를 가지고 있는 회사는 전 직원들이 진정으로 그 의미를 알고 있고 실행하고 있다. 하지만 우리나라의 크고 작은 대부분의 소프트웨어 회사 임직원들은 그 의미를 모르거나 알고 있어도 단어의 의미로만 알고 있고 진정으로 깨우치고 있지는 못하다. 소프트웨어를 개발하면서 발생하는 많은 비효율과 문제들이 바로 여기서 출발하는 것이다. 그 1:10:100 rule을 설명한 그래프가 아래에 있다. 요구사항이 스펙을 작성하면서 바뀌면 "1"이라는 비용이 들지만 고객에게 전달된 다음에 바뀌면 "368"배의 비용이 들어간다. 요구사항이든 설계든 한단계 뒤에서 고치게 될 경우 2~5배의 비용이 들어가서 시간이..
SW컨설턴트의 개발이야기, 아홉번째.우리나라 소프트웨어 회사에는 Technical career path가 없다. 우리나라에서는 소프트웨어 개발자로 일을 하면서 부딪히는 큰 걸림돌이 있습니다. "Technical career path가 없다"는 겁니다. 이 말에 바로 무슨 뜻인지 팍 와 닿지 않는 사람은 우리나라의 소프트웨어 환경에 이미 익숙해지신 겁니다. 소프트웨어 개발자들은 일을 열심해도 위로 올라갈 데가 없는 경우가 대부분입니다. 그래서 팀장도 되고, 관리자도 되고 다른 직종으로 점점 옮겨가게 됩니다. 그러다 보면 기술과는 점점 멀어지게 됩니다. 뛰어난 기술자들의 보석과 같은 실력을 썩히는 거지요. 대부분의 소프트웨어 회사에서는 Technical Track과 Management Track를 구분해야 한다는 사실을 인식하지 못하고 있습니다. 두 Track은 완전히 다른 것이고 서로 잘 호환 되지도 않습니다. 지금..