레이블이 스마트폰인 게시물을 표시합니다. 모든 게시물 표시
레이블이 스마트폰인 게시물을 표시합니다. 모든 게시물 표시

2010년 2월 9일 화요일

스마트폰 앱스토어가 진짜 대박이 아닌 이유

요즘 스마트폰이 IT 이슈의 정점에 있어서 스마트폰 관련 글을 계속 올리게 됩니다.
개발자의 한사람으로서 스마트폰의 급속한 확대는 좋은 징조임이 분명합니다. 하지만 종종 스마트폰 어플리케이션을 만들어서 앱스토어에 올리면 쉽게 대박을 맞을 수 있을 것 같은 기사들이 눈에 띕니다.


물론 거품을 경고하는 기사들이 많은 것은 사실이지만 좋은 것만 보인다고 대박 기사가 더 눈에 들어오는 것은 사실입니다. 개발자들은 "실패담은 내 이야기는 아닐거야"라고 자신에게는 관대한 판단을 내기는 것이 일반적입니다.

이런 종류의 기사들을 읽어보면 전문가들이 말을 인용하는 칼럼형식의 기사는 좀 나은데 기자들이 직접 작성하는 누구나 혼자서 쉽게 소프트웨어를 개발해서 성공할 수 있다는 식의 기사가 많습니다. 그래서 현 상황을 좀 냉정하게 바라보고자 합니다.

긍정적인 측면

확실히 앱스토어가 개발자들에게는 기회의 땅입니다. 어플리케이션을 만들기만 하면 바로 전세계 소비자와 바로 만날 수 있는 기회를 제공했습니다. 마케팅을 얼마나 잘하느냐는 다른 이슈이지만, 어마어마한 마케팅 비용을 들이지 않고도 일단 소비자와 접할 수 있다는 것은 엄청난 기회입니다. 정말 좋은 소프트웨어가 마케팅 비용이 없어서 사라지는 것을 막을 수 있습니다.

또한 스마트폰 앱 시장은 계속 커지고 있고 잠재 고객은 점점 늘어가고 있습니다. 
That's it.

부정적인 측명

기회는 균등합니다. 나에게 기회인 것은 전세계 모든 개발자들에게 동일한 기회입니다. 초창기를 제외하고는 소비자와 쉽게 자신의 어플리케이션을 보여줄 수 있는 것이 그리 매력적인 조건이 아닐 겁니다. 정말 좋은 소프트웨어가 아니면 이 장점이 큰 장점이 아닙니다. 또한 스마트폰 앱 시장이 점점 커지면서 메이저 소프트웨어 업체들이 뛰어들 준비를 하고 있습니다. 기존의 시장과 별반 다를바 없는 치열한 전투장이 될 겁니다.

시장은 그렇다 치고, 개발자 입장에서 바라보도록 하죠.

스마트폰이라고 해서 소프트웨어를 개발하기 더 쉬워진 것은 아닙니다. 잘 만들어진 Framework를 보면 개발이 더 쉬운 것처럼 착시현상을 일으키기도 하지만, 이것이 소프트웨어 개발 전체 프로세스에 미치는 영향은 5%도 되지 않습니다. OOP 컨셉이 없는 개발자들은 오히려 뒤죽박죽을 만들어 버리기 일쑤입니다. SDK를 이용한 코딩보다도 스펙을 제대로 정하고 설계를 하고 테스트를 하는게 비중이 더 높습니다. 이는 기존의 다른 소프트웨어를 개발하는 것과 별단 다르지 않습니다. 즉, 기존에 소프트웨어를 잘 개발하던 개발자나 회사가 이또한 잘 할겁니다.

스마트폰 앱이라고 해서 한번 만들고 끝나는 것이 아닙니다. 일반적으로 소프트웨어는 유지보수 비용이 개발비용의 2~5배 정도 들어간다고 합니다. 그래서 한번 만들어놓은 앱을 꾸준히 유지보수를 해야 하는데, 개인이 이를 감당하기에는 어려움이 있을 수 밖에 없습니다. 진짜 전업으로 매달려야 합니다. 또한 버그 관리, 소스관리, 스펙 관리가 그렇게 쉽지 않습니다. 기존의 소프트웨어 회사들도 크나 작으나 이들을 잘 해내지 못하는 것이 현실입니다. 그렇다고 혼자 개발을 한다고 이 이슈가 사라지지 않습니다. 진짜 혼자 다 해야 합니다.

또, 어쩌다 꽤 인기있는 앱을 만들어서 중박정도를 했다고 해도 꾸준히 매출을 유지하기 위해서 업그레이드와 새로운 제품을 계속 만들어내야 합니다. 앱 개발이 전업이 되었다는 얘기는 꾸준히 수익을 창출해야 한다는 얘기입니다. 회사라면 크나 작으나 나름 각 분야의 전문가들이 힘을 합쳐서 일하기 때문에 진짜 자신이 잘하는 분야에 집중할 수 있어서 꾸준히 발전해 나가는 것이 혼자 북치고 장구치고 하는 것보다는 유리합니다. 자칫하면 수주대토(守株待兎)가 될 수 있습니다.

소프트웨어 개발이라는 것의 대부분은 팀으로 일을 했을 때 더 잘 할 수 있는 것들인데, 혼자서 한다는 것은 한계에 부딪히게 됩니다.  아이디어의 한계, 기술의 한계가 그겁니다. 물론 혼자 일하는 것을 좋아하는 개발자들중에서는 팀웍을 이뤄서 제대로 일하는 방법을 모르기 때문인 경우도 있습니다. 어떠한 경우라도 혼자서 1인회사를 해나가는 것은 쉽지 않은 결정입니다.

이미 소프트웨어 개발에 상당한 공력을 가지고 있는 개발자 몇명을 제외하고는 아무리 좋은 아이디어로 좋은 앱을 개발했다고 하더라도 혼자 개발하는 것은 스스로의 성장에도 지장을 줄 수 있습니다. 물론 이런 시도는 도전의식과 비즈니스 경험을 쌓을 수 있어도 소프트웨어 개발자로서의 경험은 상대적으로 놓치게 됩니다. 자칫 평생 혼자 개발해야 편한 개발자가 될 수도 있습니다. 실패에서 얻는 것도 있지만 잃는 것도 크다는 것을 명심해야 합니다.

소프트웨어 개발자로서 사회에 첫발을 디뎠다면 아무리 대학때 소프트웨어를 좀 개발해 봤어도 조직에서 팀을 이뤄서 개발하는 방법과 그 문화를 어느정도 익히는 것이 필요합니다. 물론 좋은 환경의 소프트웨어 회사라야 하겠죠. 그리고 나서도 확신이 선다면 시도해볼 수 있는 도전이라고 생각은 합니다. 하지만 결코 기존의 소프트웨어 환경에 비하여 성공확률이 더 높아졌다고 생각해서는 안됩니다. 이또한 노력하는 사람에게 더 많은 기회를 제공할 겁니다. 자신의 성공확률에서 바뀐 것은 아무것도 없습니다.

이 상황을 너무 부풀려서도 너무 축소해서도 안됩니다. 확실히 기회가 생긴 것은 맞습니다. 하지만 냉철한 가슴으로 생각하고 도전해야 합니다. 또, 이를 이용해서 부추기는 선정적인 기사는 좀 줄어야 하겠습니다.

2010년 1월 23일 토요일

삼성이 바다를 출시해서는 안되는 이유

일전에 삼성이 왜 소프트웨어를 잘 개발하지 못하는지에 대한 글을 쓴적이 있습니다.

2010/01/05 - [소프트웨어이야기] - 삼성은 왜 소프트웨어를 잘 만들지 못할까?

개인적인 생각이지만 바다의 정식 출시가 임박할수록 점점 걱정스러워지고 있습니다.
일단 이글은 삼성을 비난하려고 작성한 글이 아닙니다. 삼성이 잘되어야 하는 이유를 잘 알고 있는 한 사람으로서 현재 상황에 대한 소프트웨어 공학적인 우려를 말하고자 하는 사견임을 밝혀둡니다.

일단 삼성이 왜 바다를 출시하고 싶어 했는지 그 마음은 충분히 이해를 합니다. 기존에 피처폰에서 삼성은 눈부신 성과를 거두었고, 10여년전만해도 경외의 대상이던 여러 Global 회사를 추월하고 이제 Nokia만 앞에 보이는 상황입니다. 이 과정에서 너무 큰 자신감을 가지게 된게 아닌가 생각되는 군요.

삼성의 대단한 저력과 성과는 인정합니다. 하지만 삼성이 이렇게 핸드폰 분야에서 성공한 이유를 제대로 알아야 합니다. 하드웨어 제조 능력과 탁월한 마케팅 능력이 있었던 것이지 소프트웨어를 잘 만들어서는 절대로 아니라고 봅니다. 삼성에게 자신들의 시장을 내준 Global 회사들이 소프트웨어를 제대로 만드는 능력이 삼성보다 부족해서 삼성에게 진 것이 아닐겁니다. 그런데 이런 결과가 삼성에게 소프트웨어에 대한 자신감까지 불어 넣어 준 것이 아닌가 생각이 듭니다.

기존 피처폰에서는 소프트웨어 개발 능력 부족이 사업을 성공하는데 결정적인 요소로 작용하지 않았다고 봅니다. 소프트웨어 개발력의 부족함은 인력과 자금으로 보충하고 소프트웨어 개발자들의 헌신적인 야근으로 어떤 글로벌 회사들도 불가능했던 초단기간에 새로운 모델의 핸드폰을 만들어서 출시를 해왔습니다. 이러다보니 경영층에서는 개발팀의 소프트웨어 개발 능력을 대단히 높게 과대평가 했을지도 모릅니다. 어떤 회사보다 빨리 개발을 해내기 때문에 소프트웨어를 잘 이해하지 못하는 경영자들은 착각하기 충분하다고 봅니다. 하지만 이러한 무리한 개발이 계속 되면서 소프트웨어를 잘 개발할 수 있는 역량을 닦을 기회조차 박탈당했기 때문에 현재 삼성이 가지고 있는 소프트웨어 개발 능력은 삼성의 위상에 걸맞지 않에 뒤처져 있다고 생각합니다.

삼성의 소프트웨어 개발능력은 삼성이 제쳤던 핸드폰 회사들이나 애플, 구글과는 비교도 할 수 없을만큼 떨어진다고 봅니다. 부정하고 싶겠지만 긍정적인 증거는 별로 없는 것이 현실입니다. 그동안 소프트웨어에 얼마나 투자를 해왔을까요? 소프트웨어를 잘 아는 경영자를 등용하고 믿어주고 밀어줬나요? 제가 알기로는 그렇지 않지 않습니다.

스마트폰은 기존에 삼성이 크게 성공시킨 피처폰과는 다릅니다. 피처폰 처럼 몇날 며칠 개발자들이 코피 쏟아가면서 개발하면 되는게 아닙니다. 게다가 스마트폰 OS(Platform)의 개발은 몇차원 더 높은 개발입니다. 정말 소프트웨어를 잘 만드는 회사가 아니면 제대로 만들수가 없습니다. 이런 종류의 소프트웨어를 개발할 때 가장 깊게 고려해야 하는 요소는 눈에 보이는 기능이 아닙니다. 수많은 비기능 요소가 훨씬 중요합니다. 앞으로 바다를 통해서 전세계 수많은 개발자들이 소프트웨어를 개발을 해야 합니다. 이때 발생하는 모든 요소를 고려해야 합니다. 전세계 개발자들이 삼성 개발자들처럼 밤새며 개발하게 만들 건가요? 하나의 Application을 만드는 것과는 차원이 다른 얘기입니다. 물론 고려야 했겠지만, 현재 삼성의 위상에 걸맛게 모든 사람들이 기대하는 바를 충족실킬 만큼 소프트웨어 개발 능력은 갖추고 있지 않기 때문에 출시후 겪게 수많은 문제들이 눈에 보이는 듯합니다.

능력의 한계를 알아야 합니다. 능력을 훨씬 뛰어넘는 무모한 도전은 대단한 도약 아니면 엄청난 실패를 가져옵니다. 삼성은 그동안 이러한 한계를 많이 뛰어 넘어왔습니다. 하지만 소프트웨어 분야에 있어서 만은 엄청난 실패가 기다리고 있는 듯합니다. 바다의 도전은 기존과는 다른 도전입니다. 소프트웨어에 있어서 능력이 안되는 것은 안되는 겁니다. 진정한 소프트웨어 개발역량을 갖추려면 소프트웨어 분야에 제대로 투자해서 10년은 걸릴 겁니다. 그래도 조직내의 복잡한 역학관계 때문에 어려울 겁니다.

사실 저는 바다는 출시를 포기하는 것이 삼성에 더 이익이라고 생각합니다. 일단 출시를 해 놓으면 되돌릴 수가 없습니다. 이제부터 돈은 돈대로 들어가고 욕먹을 시간일 될 것입니다. 유지보수는 끝없이 들어갈겁니다. 아기는 한번 낳으면 다시 엄마 뱃속으로 들어가라고 할 수 없습니다. 그리고 바다의 유지보수는 삼성만의 이슈가 아닙니다. 이를 기반으로 소프트웨어를 개발한 전세계 개발자들과 관련됩니다. 삐끗하면 핸드폰 하나 망치는게 아닙니다. 그 파급효과가 얼마나 큰지 지금 상상할 수 있어야 합니다.

정말 바다가 순항을 하면서 칭송을 받는 상황이 발생한다면 삼성은 나 뿐만아니라 어느 누구도 모르는 끝내주는 소프트웨어 개발팀을 수백명 양성을 해왔고 이들이 바다를 개발했다는 것인데 이런 기적같은 일이 벌어지겠습니까? 지금도 바다가 큰 성공을 거두기를 기대하고는 있지만, 그리 희망적으로 생각되지 않습니다.

차라리 안드로이드폰을 더 잘 만들기 위해 투자하는 것이 더 좋은 선택이라고 생각합니다. 사실 이것도 쉽지는 않습니다. 기존 피처폰 만드는 마인드로 또 밤세워가며 Copy & paste가 난무하는 개발을 한다면 별로 나아질 것이 없습니다. 그렇지만 바다에 투자할 막대한 노력을 현실성있는 안드로이드폰 개발에 투자를 하는 것이 좋을 겁니다. 

이미 삼성은 스마트폰 분야에서 상대적으로 뒤쳐지기 시작했다고 봅니다. 만약에 바다가 크게 실패한다면 그동안 이룩해 놓은 휴대폰 분야에서 삼성의 브랜드에 크게 타격을 줄지도 모릅니다. 

삼성은 그동안 수차례 엄청난 변화를 통해서 세계 제1의 IT회사가 되었습니다. 앞으로 한단계 더 점프를 하려면 소프트웨어 분야를 손놓고는 어렵습니다. 어렵더라도 내부에서 여러 방해에 부딛히더라도 소프트웨어에 투자를 해야 합니다. 비싼 툴 사주고 복잡한 프로세스 만드는 것이 소프트웨어에 대한 투자가 아닙니다. 애플, 구글 또는 실리콘밸리의 작은 소프트웨어 회사들이 어떻게 소프트웨어를 개발하는지 보십시오. 기존 조직에서 안된다면 소프트웨어 분야는 새로운 조직에서 새로운 경영자와 때묻지 않은 새로운 개발자들로 새로 시작해서 Global 경쟁력을 갖춘 소프트웨어 조직으로 키우는 것도 한 방법일 겁니다. 
정말 소프트웨어 분야는 잘 될 가능성이 없다면 그냥 하드웨어 분야에서 더 큰 성공을 거두는 것이 좋겠네요. 지금의 삼성처럼요. 

이미 "바다"의 출시가 기정 사실이라면 "바다"의 "순항"을 간절히 기원합니다.