여러모로 심난하여 글을 못쓰다가 간만에 가볍게 하나 끄적여본다.
몇 달 전까진 Android 2.5 로 나올걸로 기대했던 Froyo.. 드디어 세상에 그 모습을 공개했다.
몇 달 전 소식으로 이번 릴리스는 성능 최적화에 주안점을 두었다고 하였고.. 또 버전도 2.5가 아닌 2.2 라서 큰 기대는 하지 않았었다. 하지만 소개 동영상을 보니 2.5라 불렀어도 전혀 무리가 없어 보인다.
위 프리젠테이션의 가장 큰 특징은.. 대놓고 애플을 적대하기 시작했다는 것이 아닐까 싶다. 판매량과 지원 세력, 기술적 완성도 등 대부분의 영역에서 이제 애플과 나란히 할 수 있다는 자신감이 엿보인다. 아이폰 발표 당시만 해도 끈끈한 우군이었는데, 어느새 가장 큰 경쟁자게 되어버렸다. 애플 입장에서는 뜻하지 않은 악재라 괴씸하기도 하겠지만 (Android 만 없었다면 아직까지 딱히 경쟁상대가 없었을 것이다), 소비자 입장에서는 대등한 경쟁자가 하나쯤 있어주는 게 좋다.
여전히 걱정스러운 점은 (과거 MS 가 그러했듯) 자유와 포용이 꼭 좋은 것만은 아니란 것이다. 아직까지는 분위기가 좋지만, 이 분위기를 계속 이어가는 것은 구글이 풀어가야할 가장 큰 숙제 중 하나이다. 종종 공격의 대상이 되는 안드로이드의 폐쉐성(흔히 알려진 것 만큼 자유도가 높지 않다.), 그 폐쉐성을 잘 유지하고 조정하는 것이 중요하며, 이번 Froyo 에서 선보인 어플리케이션 데이터 백업 같은 기술적 뒷받침이 계속되어야 할 것이다.
마지막으로.. ‘이제 UX 디자이너만 잘 뽑으면 되지 않을까’ 하는 생각은 여전하다. 여전히 엔지니어적 느낌이 강하게 배어 나는 UI.. 곳곳에 눈에 띄는 일관성 부족이 빨리 개선되었으면 한다.
최근 Apple 이 HTC 를 상대로 20여개의 특허 소송을 내어 세상이 시끄럽다.
애플이 어련히 생각 많이 해서 결정했겠지만.. 애플의 속내에 대한 내 짐작을 간략히 적어본다. ^^
특허 소송이 다 비슷하다.
애플이 아무리 창조적이라고 해도, 가장 후발업체 중 하나이면서 특허 소송에서 일방적으로 승소할 가능성은 높지 않을 않으리라 믿는다. HTC 등 대상 업체에서도 애플이 사용한 자사 특허들 조사해서 역공할 것이 뻔하다.
유리한 결론이 나면 좋은 것이고..
적어도 일방적으로 밀릴 가능성은 크지 않아 보인다. 갯수로는 밀릴 지 몰라도, 굵직한 특허들을 보유하고 있어서 가치로는 비등할 것이다.
혹 불리한 결과가 나더라도 충분한 자금력이 뒷받침하고 있다. 쌓여만 가는 현금 주체 못하고 어떻게 쓸 지 고민하고 있는 처지니까… ^^
첫 대상으로 HTC 를 고른 이유는..
1. 구글 견제용. 현재로썬 애플과 가장 비슷한 특성을 가지면서 경쟁력을 갖춘 유일(?)한 플랫폼이다. 플랫폼 자체뿐 아니라 음악, 동영상, 전자책, 지도 등 서비스 영역에서도 상당부분 충돌이 예상된다.
2. 소비자 팬 기반이 약한 외국업체이다. 예를 들어, 모토롤라에 다이렉트로 소송걸면 엄청 큰 시장인 북미에서 여론이 급격히 안좋아질 우려가 크다.
3. HTC 는 SW 플랫폼을 직접 만들지 않는 업체이므로, 관련 대응 능력이 상대적으로 약할 가능성 크다. 승리 case 를 만들어서 정당성 확보한 후, 다른 업체에 소송 거는 것이 확실히 유리할 것이다.
구글다운 발상의 Nexus One 홍보이다.
차례로, Nexus One 의 제작 과정을 주로 하드웨어에 포커싱해서 보여주고 있다. 이름있는 거대 폰 제조사들은 이와 별반 차이 없는 과정을 통해 폰을 제조할 것이지만, 일반인에게는 생소한 현장의 모습을 멋전 앵글에 담아 전문적이고 신뢰할 수 있다는 이미지를 심어주는 듯 하다.
테스팅 과정에서의 추락(tumble) 실험이 인상적이고, 의외로 아직 사람의 손이 많이 간다는 생각이 들었다.
Nexus One: The Story – Episode 1: Concept & Design
Nexus One: The Story – Episode 2: Display & 3D
Nexus One: The Story – Episode 3: Testing
Nexus One: The Story – Episode 4: Manufacturing
우리는 창의력과 혁신을 강조하는 시대에 살고 있다. 소프트웨어 개발도 당연히 그 중심에 서 있다. 하지만 우리의 소프트웨어 개발 문화는 창의력을 심히 제한하는 방식으로 굳어져 있다.
일반적으로 우수한 편에 속하는 지적 능력을 가지고 있고, 새로운 것을 만들어내는 것을 즐기는 소프트웨어 개발자들. 그들은 회사에서 어떤 대우를 받고 있나. 조직이 조금만 커져도 기획은 별도의 부서에서 진행하고, 소프트웨어 개발은 몇몇 관리자들이 이끌게 된다. 소프트웨어 개발자들은 창의력을 발휘하기 보다는 시키는 일만 열심히 해야 하는 위치에 놓이게 된다. 코드를 찍어내고 타의에의해 변경된 요구사항들 때문에 수정/테스트를 반복하는 나날을 보내며 발언권은 점점 작아진다.
기술 개발을 중시하는 몇몇 소수 기업을 제외하고는 대부분(대기업)의 윗사람들은 아직까지 소프트웨어 개발자들을 단순 노동자 취급하고 있다. 이를 빗대어 나는 ‘소프트웨어 제조업’ 에 종사하고 있다고 얘기하곤 한다.
반면, 개발자들의 능력을 믿고 그들에게 스스로 혁신을 일으킬 수 있도록 지원해주는 대표적인 기업들로 Google, Apple, Rally Software 등을 들 수 있다.
Google 은 20% 제도로 유명하다[1]. 자신에게 주어진 시간 중 20% 정도를 주업무가 아닌 다른 일에 할애하도록 권장하는 제도로, 다양한 형태로 응용 가능하다. 매일매일 20%의 시간을 다른 일에 투자하는 것은 대부분의 경우는 현실적이지 않다. 프로젝트 마감이 코앞인데 다른 일에 정신 팔기도 힘들고, 하루 1~2시간씩 해서는 진도도 나가지 않기 때문이다. 대신 그들은 1주일에 하루, 1달에 1주, 혹은 6개월에 1달, workaholic 이라면 주말을 이용 등등.. 자유롭게 변형해서 일한다. 과제가 바쁠때는 열심히 그 일에 매달렸다가 한가할 타임에 그동안 못 쓴 20%를 쓰는 식이다.
20%의 시간에는 어떤 일을 할까? 이것도 아주 자유롭다. 전혀 새로운 과제를 수행할 수도 있고, 관심있는 다른 팀 과제를 지원할 수도 있고, 자신의 주 과제를 진행하면서 불편했던 부분을 자동화하거나 유용한 유틸리티를 만들거나, 최적화/리펙토링을 할 수도 있고, gmail/chrome browser 등에 유용한 플러그인을 만들어넣을 수도 있다. 공부를 할 수도 있다.
이렇게 해서 나온 결과들은 팀의 개발 생산성을 향상시키고, 제품의 품질을 좋게하고, 새로운 것을 배우게 만들고, 운이 좋으면 구글의 미래를 이끌어갈 제품으로 거듭날 수도 있다. Gmail, Google News, Google Talk, Orkut, Google Sky [2], Go programming language [3] 등은 모두 20% 시간에 시작된 프로젝트들이다.
Apple 의 경우 1년에 1달 가량 자신이 원하는 일을 할 수 있게 해준다지만.. 자세한 내용은 잘 알려지지 않았다[4].
마지막으로 Rally 의 경우 8주의 개발 사이클 중 마지막 1주는 회사의 미션과 관련된 일이라면 어떤 것이든 할 수 있는 권한이 주어진다[5]. 기간이 일정하게 주어져 있기 때문에 융통성이 조금 부족하지 않을까 우려되긴 하지만 한 숨을 돌리며 자신들의 과거를 뒤돌아볼 수 있다는 점만으로도 확실한 장점이 될 것이다.
다시 암울한 우리의 이야기로 돌아와보자.
나는 현 회사의 윗사람으로부터 ‘관지자가 할 일은 개발자가 놀지 않게 하는 것’ 이란 얘기를 들었다. 여기서 논다는 것은 ‘주업무와 직접적으로 관련 없는 모든 일’을 지칭한다. 내게는 ‘공장 가동을 멈추지 말 것’ 정도로 들렸다. 공식적인 주업무 외에는 회사에 기여하지 못하는 것으로 여겨기기 때문에 일거리를 만들어서라도 주지 않으면 능력 없는 관리자가 되는 것이다.
개발자 입장에서도 마찬가지다. 좋은 아이디어가 있더라도 side job 은 업적으로 인정받기 어렵다. 놀고 있는 것으로 받아들여지므로 드러내놓고 할 수도 없다. 결국 몰래 하거나 개인 시간을 희생해서 짬짬이 하게 되고, 인정받지 못하기 때문에 의욕이 생길리 만무하다.
고급 인력인 개발자들의 좋은 두뇌를 활용하지 못하고, 반대로 창의성을 저하시키는 이런 문화는 하루 빨리 고쳐져야 한다. 말로만 소프트웨어가 중요하다고 하지 말고, 소프트웨어 개발의 특성과 개발자들을 이해하려는 노력이 절실하다.
두서 없지만 이 글은 이쯤에서 마무리하기로 하고, 유사 주제로 작성하고 있는 글이 있으니 그 쪽에서 정리를 시도해보기로 하겠다. ^^
간만에 멋진 강의[1]를 하나 듣게 되어서 공유한다.
구글의 중국 연구소장인 Kai-Fu Lee 가 중국에서의 Google 의 전략에 대해 소개하는 동영상으로, 미국과는 너무 다른 중국 시장의 특징, 그 안에서 살아남기 위한 적응과 차별화.. 하지만 절대 변하지 않는 성공 철학 등을 이야기한다. 수많은 좋은 이야기들 중 한 슬라이드를 밝췌해보았다.
2007-2008 +Demonstrate growth :
Before 7006 (오타 아님 ^^ 동영상을 보면 이유를 알 수 있다.)
위 각각의 항목들에 대한 자세한 내용들이 모두 다뤄지니 강의를 꼭 들어보길 적극 추천한다.
번외로.. 강의를 들어보면 중국의 문화가 한국과 상당히 유사함을 알 수 있는데, 구글 코리아 사람들도 (아직 보지 못했다면) 한 번씩 봐둘만한 자료라 생각된다.
Noop 에 이어 구글이 또 하나의 프로그래밍 언어를 소개했다. Go 라는 이름의 언어로, 벌써 제법 성숙한 상태라, 과거 Turbo C 나 초창기 UltraEdit 로 Java 코딩하던 추억을 떠올리면 충분히 직접 사용해볼 수 있는 수준이다.
Go 언어는 크게 두 가지 관점에서 아주 마음에 든다.
현재의 것에 계속해서 군더더기를 붙여 나가다 보면 점차 비대해져 관리를 어렵게 하고 혁신을 가로막는다. 때문에 종종 처읍부터 다시 시작하는 것이 필요하다.
번외로.. 구글이나 애플과 같은 회사가 이런 일을 참 잘하는데, 최근 40살 된 e-mail 을 대체하겠다며 큰 기대를 받고 있는 Google Wave 나 이미 성숙할 대로 성숙한 핸드폰의 개념을 바꿔버린 iPhone 같은 것이 좋은 예이다.
덕분에 더 이상 필요 없거나 폐해가 더 큰 기능들을 과감히 없애 날렵해짐과 동시에 병렬 프로그래밍과 같이 새시대에 필요한 기능들을 실장하고 있다.
내가 가장 혐오하는 프로그래밍 언어인 C++. C++ 는 기능 확장이 아니라 축소를 먼저 해야 한다고 내가 몇 년 전부터 얘기하고 다녔는지 모른다. 물론 Go 가 C++ 의 직접적인 축소판은 아니지만, 같은 C 계열 (호환이 아니라 파생의 의미로) 언어로써 정말 최소한부터 다시 시작하는 언어이다. 홈페이지에서 언급한 몇몇 설계상의 결정 사항들은 정말 내 가슴을 후련하게 해준다. 포인터 연산, exception, assertion, 오버로딩 등에 대한 설명은 나의 그간 경험에 비춰 특히 공감이 된다. 수많은 개발자들.. 아무리 설명을 해줘도 계속 교체되고, 새로온 사람들에게 또 설명하고.. 그러다 지쳐 포기했던 기억이.. ^^
Go 가 잘 발전해서 C++ 의 영향력이 감소하는데 한 몫 해주길 바래본다.
소프트웨어 플랫폼 경쟁에 있어 우리 나라 기업들은 도저히 상대가 안되는게.. 애플이나 구글같은 회사는 핵심 소프트웨어 개발 역량이 정말 대단하다. 우리처럼 API 겉만 감싸는 수준이 아니라, 필요하면 언어 자체를 수정하거나(최근 GCD 를 위해 C 언어를 확장함) 심지어 만들어버리기까지 한다(Go, Objective-C). 애플은 LLVM/CLang 이라는 GCC 대체 프로젝트를 진행해 큰 성취를 보이고 있고, 구글 가상 머신을 뜯어 고쳤다(Dalvik VM). 소프트웨어 설계 자체도 참 대단하다. 이미 25년의 OS 개발 경험을 축적하고 있는 애플의 OS X 는 전신인 NextStep 시절부터 소프트웨어 설계의 바이블 격인 Design Patterns 책 저술에 지대한 영향을 미쳤다. 현재의 플랫폼도 깊이 들여다보면 ‘우와!’ 하는 감탄사가 절로 나오는 멋진 구조를 어렵지 않게 찾아볼 수 있다.
핵심 기술이 없으면 오픈 소스/커뮤니티에라도 적극 참여해 그들의 노하우를 최대한 빨리 흡수하며 기반을 쌓는 것이 큰 도움이 된다. 모토롤라의 이번 Droid 출시가 좋은 예이다. 작년, 큰 위기를 느낀 모토롤라는 진행중이던 프로젝트들을 대다수 취소하고 회사 전체를 환골탈퇴하는 모험을 감행했다. 덕분에 신규 제품이 나오지 않아 시장 점유율을 급격하게 떨어졌지만, 구글과의 밀접한 협력으로 Android 2.0 폰을 타 기업들보다 몇 개월 앞서 출시할 수 있었다. 결과는 더 지켜봐야겠지만, 구글과의 돈독한 관계뿐 아니라, Android 시장에서 적어도 당분간은 타 업체들을 선도할 수 있는 충분한 노하우를 얻었을 것이다.
허나 안타깝게도 우리 나라 기업들은 이런 방향으로의 가시적인 움직임은 보이질 않는다. 티맥스 윈도우나 삼성 바다의 예에서 보듯이, 오히려 독자적인 플랫폼을 시도하고 있다. 아직은 실체가 드러나지 않아 확언할 수는 없지만, 중학생들에게 ACM 이나 IEEE 논문을 쓰라는 격으로 보인다. 유사하거나 오히려 더 참신한 아이디어가 나올 수는 있으나, 그 깊이와 완성도는 비교할 수 없을 것이다. 유수의 석학들과 경쟁해 진정 그들을 뛰어 넘고자 한다면, 조급함을 억누르고 차근히 기초를 닦는 인내의 기간이 필요하다.