Facebook의 개발 문화와 국내 SW 개발 문화

페이스북의 개발 문화가 외부인의 블로그를 통해 일부 알려졌다. 구글에서 많은 인재들이 빠져나와 대부분 페이스북으로 옮겨갔고, 주된 동기가 더 많은 연봉이 아니라 더 나은 성취감이었다고 알려져, 빠르게 빌드하고 새로운 도전을 끊임없이 하는 인재들을 어떻게 관리하는지가 궁금하던 차였는데, 블로그의 내용은 기대를 저버리지 않고 꽤나 독특한 (예상치 못한) 그들의 문화를 보여준다. 원 블로그는 다음에서 읽을 수 있다. How Facebook Ships Code « FrameThink http://framethink.wordpress.com/2011/01/... I’m fascinated by the way Facebook operates.  It’s a very unique environment, not easily replicated (nor would their system work for all companies, even if they tried).  These are notes gathered from talking with many friends at Facebook about how the company develops and releases software. 번역하기보다는 관심 있게 본 부분만 일부 요약하면 다음과 같다. 페이스북의 기업 문화는 철저하게 엔지니어 중심 문화이다. 이것은 주커버그도 심지어 회계 담당자도 프로그래머를 뽑은 적이 있으며 분석하고 새로운 것을 빠르게 빌딩하는 문화에 익숙하지 않으면 페이스북에서는 어떤 역할도 맡기 어려움을 내포하고 있다. 페이스북의 문화는 매우 tight하면서도 목적 중심적이고 엄격한 책임이 따르는 독특한 엔지니어 중심 문화이다. 1. 개발 과정에서 Product Manager의 권한은 미약하고, 오히려 개발자들이 자기 프로젝트에 관심을 가지도록 하기 위해 개발자들을 설득, 로비하는 일이 잦다. 2. 모든 엔지니어는 입사 후 4주~6주 과정의 부트 캠프를 거친다. 부트 ...

소셜, 모바일, 창의, 혁신 관련 중심으로 지난 Tweet들 정리 (2011.1.9~2011.1.29)

일전에 작성한 프로그램이 있어 쉽게 트윗 정리를 했습니다. 20일 새에 꽤 많은 트윗을 했네요. 일에 좀더 몰입하면 트윗도 잠시 중단해야 할텐데.. 아직은 기획 중이라. SW관리의 척도로 무조건 일정단축인 기업과 철저하게 퍼포먼스 중심인 기업 그 결과는 크게 다르다. 전자는 개발자를 수동적인 존재로 만들고 후자는 기간과 질 모두에 대해 관리를 한다. 권한있는 관리자가 깊숙히 개발에 개입되어 있어야 후자가 가능. (2011/1/29) “@biz: Freedom of expression is an essential human right. http://t.co/TmHFbDi” 트위터 창업자 중 한명인 비즈 스톤의 블로그. 트윗을 언론으로 생각하는 그의 뜻에 경의. (2011/1/29) 창의적 혁신 기업이라 할 애플도 페북도 내부 분위기는 휴양지가 아니라 치열한 전장이다. 창의가 잡념 속에서 우연히 얻어질 확률이 희박하기 때문이다. (2011/1/29) 창의적 문제 해결을 위한 8단계 스텝. Creative Problem Solving (CPS) Basics http://t.co/YFzezy5 (2011/1/28) 스티브 잡스의 성공 비법을 분석한 CNNMoney 기사. How Steve Jobs gets things done http://t.co/xvYcfII (2011/1/28) MS의 수익이 아직은 애플의 수익을 앞서고 있음. MS는 윈도우 부분 수익이 좀 줄긴 했지만 오피스와 키넥트 포함 엔터테인먼트에서 큰 수익. 온라인에선 큰 적자. 에릭슈미츠가 구글의 최대 위협이라고 할만큼 연구개발 파워도 여전히 대단. (2011/1/28) 창의를 위한 명상과 같은 메커니즘의 유용함을 부정하는 것이 아님. 오히려 계속된 생각의 집중에서 벗어나 마음의 고요를 얻는 휴식을 의식적으로 가지는 것도 좋은 창의의 습관. (2011/1/28) 창의가 휴식 속에서 떠오르는 완전히 새로운 아이디어라고 생각하는 경향이 있는데 그렇지 않다. 계속된 생각 속에서 비...

스티브 잡스와 창의적 혁신

잡스, 아직 인생은 진행형인데 스티브 잡스가 인생의 황금기에 다시 병과 싸움을 시작했다. 그가 관여해온 제품과 회사들. 애플, 매킨토시, 넥스트스텝, 픽사, 아이팟, 아이폰, 아이패드. 애플이 본격적으로 창조적 혁신의 궤도에 올라 거의 매년 단절적인 혁신 제품을 선보이면서 최고 IT 기업으로 추앙받는 시기에 개인적으로나 IT의 역사에서나 큰 안타까움이다. 스티브 잡스는 IT 기술과 개인의 관계를 잇는 연결점들을 발굴하고 이를 문화적 충격이자 매력으로 상품화하는 독특한 능력을 가지고 있다. 엔지니어의 창조에 대한 탐구적 고집과 예술가의 인간 중심 심미능력을 함께 갖춘 사람이 아닌가 싶다. 애플은 본격적으로 IT업계의 3M처럼 끊임없는 창의적 혁신에 대한 도전이 내재화된 문화를 갖추고 결과물들을 쏟아내고 있다. 아이폰5는 근본부터 다시 시작한 제품이 될 것이란 얘기가 들린다. 스마트폰 시장을 장악하다시피한 애플이 왜 방어적인 진화를 택하지 않고 또다른 도발에 매달리는가? 기존의 관념으로는 이해하기 힘든 부분이다. 일부 애호가들을 제외하면 잦은 도발은 새로움을 귀찮아하는 다수에게 불편함일뿐이기 때문이다. 이런 점에서 애플은 시장 점유 35%가 한계인 회사일 수도 있다. 혁신의 범주 혁신은 주로 시장 관점에서 기존 시장을 파괴하느냐 여부에 따라 파괴형 혁신과 유지형 혁신으로 크게 분류한다. 파괴형 혁신(disruptive innovation) 모델은 기존 시장을 허물고 새로운 시장을 만든다는 점에서 나온 용어. 유지형 혁신(sustaining innovation) 모델은 기존 시장을 허물지 않는다. 또, 혁신의 기술 관점에서 단절형 혁신(discontinuous innovation, transformational innovation)과 진화형 혁신(continuous innovation, evolutionary innovation)을 나누기도 한다. 시장 관점과 기술 단절성 여부는 서로 다른 속성이지만 흔히 파괴형 혁신은 단절형 혁신...

소셜, 모바일, 창의, 혁신 관련 중심으로 지난 Tweet들 정리 (2010.12.3~2011.1.9)

지난 트윗들을 정리하고 Twitter의 API들을 테스트해볼 겸 간단하게 자바로 URL 호출 후 파싱하는 코드를 작성해보았습니다. 좀더 프로토타입 코드를 빨리 해보려는 노력을 하고 있는데, 맘처럼 잘 되지 않네요. 개인의 타임라인 정보만 가져오면 되기 때문에 다음 트위터 API 문서를 참고했습니다. GET statuses/user_timeline 인증이 필요없기 때문에 다른 라이브러리를 사용할 필요가 없었는데 1시간에 150회 이상 호출을 허용하지 않는 트래픽 제한을 두고 있더군요. 이 API는 기본값으로 20개의 최근 트윗을 리턴하고, page 값을 조정하여 최대 3200개의 트윗을 가져올 수 있습니다. 3200개 제한이 넘어가면 트위터에 저장된 글도 검색하기 어려울 것 같은데요. 가치 있는 정보라면 트윗들을 주기적으로 다른 곳에 옮겨둘 필요가 있을 것 같습니다. 트위터 계정을 만든지 2년 가까이 되어가는데 여태까지의 트윗이 3800여개 정도이더군요. 다음은 12월 3일부터 오늘까지의 트윗 중 소셜, 모바일, 창의, 혁신 관련을 필터링한 것입니다. 앞으로 GPL 기반 무료 앱이나 어플을 앱스토어나 맥앱스토어에 올릴 때 문제가 발생할 듯. LGPL은 무방함. 애플은 법률 자문을 구하는 듯하더니 몇 달 안가 결국 앱스토어에서 삭제하는 쪽을 택했음. (2011/1/9) VLC player 앱을 앱스토어에서 내린 사건은 애플 앱스토어를 싫어하는 한 오픈소스 개발자의 소송에서 발생. GPL로 만든 아이폰 앱을 DRM 변환을 해서 배포하면 GPL 위반이 되는지는 애매함. 개인적 판단은 그렇지 않다. (2011/1/9) 위키릭스 관련하여 미 DOJ가 트위터에 개인정보 요청한 것에서 온라인 개인정보 보호의 한계를 볼 수 있다. 구글, 트위터, 페이스북과 같이 개인 정보를 온라인 업체에 맡기는 게 매우 불쾌해진다. 보안적, 정치적으로 허술한 국내 포털은 말할것도 없고. (2011/1/9) 웹 2.0 서밋 2010에서 마크 주커버그와의 대담을 한글...

어떻게 생각을 조직해야 할까 - 창의적 생각을 위한 툴 구상

창의적으로 생각하기 위한 가장 좋은 툴은 무엇일까? 툴이 생각을 대신해줄 수는 없지만, 여러 번 지적했듯이 사람의 뇌는 순차성과 우연성 두 가지 특성을 모두 가지고 있다. 왼쪽 뇌가 주로 순차적이고 논리적이며, 분석적으로 생각을 한다면, 오른쪽 뇌는 병렬적이며, 우연적이고, 비약적인 생각을 한다. 현재 주어진 조건 하에서 가장 좋은 결론을 내리기 위해서는 지식들을 정리하고 추상화하여 살아있는 멘털 이미지를 만드는 논리적 작업이 매우 중요한 역할을 한다. 논리적 작업에는 인과 관계에 대해 끊임없이 회의하는 "Why" 자문이 매우 중요하다. 하지만, 현재 조건 하에서 좋은 해답을 낼 수 없을 때에는 새로운 발상이 필요하다. 새로운 발상을 위해 언뜻 상관없어 보이는 아이디어를 조합도 하고, 연상도 하고, 또 추론과 연상을 결합하기도 한다. 연상과 조합의 근거가 되는 사고들은 우연한 계기로 갑자기 머리속에서 떠오르는 생각에서 다시 시작한 분석과 논리 사고가 답을 끌어내기도 하고, 인위적으로 관련이 없어 보이는 정보를 제시하며 다른 비약의 단초를 빨리 끌어내려고 하기도 한다.( "옆으로 생각하는 (lateral thinking) 훈련이 창조적 혁신을 추동할 수 있을까" 참고) 창의적 사고를 돕기 위해서는 생각에 대한 기록이 필요하다. 바로 메모장 기능이다. 휴대성이 좋은 스마트폰의 메모 앱들은 순간적인 생각의 기록에 매우 유용하다. 또다른 하나는 생각들을 정리하고 꼬리에 꼬리를 무는 방식으로 생각의 가지를 키워나가는 생각 나무 형태인 mind map 기능이다. 무료이고 오픈소스 솔루션인 freemind 는 기능의 단순함과 편리함 덕분에 매우 많이 사용되는 mind map 프로그램이다. 메모는 생각을 기록하고 마인드맵은 생각을 조직화한다. 이것만으로는 창의적 사고에 큰 도움이 되지는 않는다. 생각을 대신해줄 순 없지만 생각을 도와줄 수 있는 방법은 없을까? 준비 중인 작은 Startup 회사, Da...

맥북에서 느끼는 Steve Jobs의 개인 컴퓨터 Metaphor(은유 체계)

이미지
지난 6월부터 맥북프로를 구입하여 사용하고 있으니 이제 반년쯤 되었다. 구매 동기는 아이폰앱 개발이긴 했는데 실제로 개발하진 않았고, 구입 직후에 정든 회사 퇴직을 결정하여 결국 퇴직 후 사용하기 위한 개인 노트북이 되어버렸다. 국내에서 맥을 사용하는 것은 MS조차 버린 액티브X가 지배하는 국내 웹 환경을 고려하면 큰 모험이다. 하지만, 개인적으로 그런 복잡한 사이트들을 전혀 사용하지 않아서 별 문제될 건 없었다. 맥OS X의 만족도는 100점은 아니다. 맥OS X의 만족도에 대해 얘기를 하자면 솔직히 아주 높은 편은 아니다. MS 윈도우에 익숙해있다가 맥에 적응하는 게 처음엔 조금 불편한 부분도 있었지만, 안정성 부분도 몇 주에 한번 정도는 전원을 눌러줘야 하는 사태가 발생한다. 주로 플래시 플러그인이 문제를 일으키는 것 같긴 하지만, 어쨌든 애플리케이션에 의해 운영체제가 중지되는 건 이해하기 어려운 일이다. 다만, MS 윈도우에 비해 최대절전모드가 매우 안정적이고 빠르다는 점은 놀라웠다. 이건 아이폰에도 그대로 적용된 기능. 많이 사용하는 애플리케이션이 Safari 브라우저, Emacs 에디터, 그리고 Xcode 개발툴, iTunes(음악과 iTunes U 동영상) 정도인데다가 그나마 아이폰으로 인해 트위터나 페이스북, iTunes 같은 경우도 많은 시간을 맥이 아닌 아이폰에서 사용하기 때문에 맥북의 활용도는 브라우징, 개발, 오피스 사용한 문서 작성이 핵심이다. 오랫동안 MS 윈도우에 익숙해져있었기 때문에 MS 윈도우와의 차이는 매우 특별하게 느껴지는데 제일 처음 느끼는 건 터치패드이다. 아이폰이 등장하면서 멀티터치가 익숙해졌지만, 오랫동안 마우스에 익숙해있던 사람들에게 마우스가 아닌 멀티 터치를 통해 컴퓨팅 입력을 한다는 건 첨 느끼기엔 매우 불편한 것이다. 처음엔 스크롤을 어떻게 하는지 몰라 엄청 당황하고 불편했었다. 브라우저의 스크롤바를 찾아 일일이 터치로 드래깅하려니.. 손가락을 두 개로 하면 인식을 다르게 한다는 생각을 하...

창의적 혁신에서 개발은 단순 분업될 수 없다.

우리 나라가 소프트웨어에서 많이 뒤처져있고, 엔지니어 수도 많지 않은 것이 현실이다. 성공한 소프트웨어 솔루션이 거의 없다 보니 새로 소프트웨어를 하겠다는 엔지니어들도 많지 않은 탓이라고 할까. 현재 우리 나라에서 소프트웨어나 서비스를 준비하는 사람들은 보통 이런 순서로 한다. 1. 서비스 아이디어가 있다. 2. 세부 구상을 마친다. 3. 개발자를 구해 개발시킨다. 4. 런칭한다. 소프트웨어 개발 아웃소싱도 한때 유행했었다. 이게 뭐가 잘못되었나 하고 생각하는 사람들도 많을 것이다. 잘못된 것은 개발자의 수동성이다. 개발자들은 용역을 수행할 뿐이다. 그 과정에서 더 나은 수준의 서비스, 제품을 고민하지 않는다. SI는 대부분 어떤 하한 기준(계약 기준)을 충족하면 된다. 여기에서 별다른 혁신이 중요하지 않다. 하한을 높이기 위해 프로세스를 강제하고 준수 여부를 모니터링하면 된다. 하지만, 창의적 혁신은 차별적인 핵심 기능을 가지고 경쟁 우위를 지켜나가는 소프트웨어나 서비스에서 일어난다. 특정 영역에서 상한을 무한히 높여가는 속에서, 혹은 새로운 영역으로 침투해가는 속에서 소프트웨어와 서비스의 경쟁력이 생기는 것이다. SI는 용역에 대한 댓가를 수익으로 하는 모델이며, 소프트웨어와 서비스는 솔루션과 서비스 가입자에 비례하여 수익이 없을수도, 폭발할수도 있는 모험적 수익 모델이다. 지금 소셜이니 모바일이니 하며 많은 사람들이 시장을 기웃거리고 있다. 몇몇 뛰어든 startup들도 있다. 하지만, 상한의 경계를 없애고 영역을 바꾸는 사업을 하는 것은 극히 드물고, "이것 해보자. 개발해라" 하는 식의 접근을 하는 경우가 대부분이다. 이 부분 시장은 대부분 모험적 수익 모델을 따라 형성된다. 무한 혁신하지 않으면 안되는 영역이며 경쟁 범위가 인터넷 본성을 따라 글로벌화 수준이 점점 더 높아지고 있다. 그나마 개발자 구하기가 어렵다는 불평들이다. 용역에 익숙한 개발자들조차 품귀 현상이다. 하지만 개발비를 좀 많이...