How to implement your dream 20150427

39
How to implement your dream? "Move fast and break things. Unless you are breaking stuff, you are not moving fast enough.” Mark Zuckerberg.

Transcript of How to implement your dream 20150427

Page 1: How to implement your dream 20150427

How to implement your dream?

"Move fast and break things. Unless you are breaking stuff, you

are not moving fast enough.” Mark Zuckerberg.

Page 2: How to implement your dream 20150427

1. Intro

강의자 소개

주요 프로젝트:자막 공유 소셜 앱 Captionator 제작 2014-현재무료 USB 앱 드라이브에스(DriveS) 개발 2011-플랜츠 디펜스 for Kakao 게임 서버 개발 2013증강 현실(Augmented Reality) 국제표준화 위원 (W3C WebApplication WG)Mobile Gaming 국제표준화 위원 (OMA Game Services WG)Mobile Network Gaming Platform 개발 구축 운영 (SKT, 삼성전자, 포스브로)SK텔레콤 NATE 서비스 개발 구축 운영 PM모닝365.com (현 11번가 도서몰) 개발 구축 운영 팀장

경력:㈜Ant-Holdings CTO㈜테일즈앱 대표이사㈜엔소프트 공동 대표㈜엔토시스 사업총괄이사리얼네트웍스아시아퍼시픽 국내개발총괄삼성SDI 생산기술센터

수상 내역:TOP 5 선정 GMIC SV 실리콘벨리 앱오디션 (2012년 10월)마이크로소프트 MVP Award 수상 (2002 – Asia, 2003 – Global)

서강대학교 컴퓨터공학과 1996년 졸업

Page 3: How to implement your dream 20150427

1. Intro

창업자의 6 Critical Skills ?

• Writing (작문)• Selling (판매)• Management & Leadership (관리 & 리더쉽)• Design and UX (디자인 & User Experience)• Programming (프로그래밍)• (Increasingly) Data Analytics (데이터 분석)

Bill Gates

Drew Houston

MIT Computer Science

Mark Zuckerbergcomputer programmer

참조: http://kevindewalt.com/2013/08/04/what-entrepreneurs-need-to-know-about-coding/

Page 4: How to implement your dream 20150427

1. Intro

어떤 정도로 알아야 하는가 ?

Page 5: How to implement your dream 20150427

1. Intro

어떤 정도로 알아야 하는가 ?SKILLLEVEL

PROFICIENCY IMPLICATION

0 웹을 사용하지만 어떻게 동작하는지 모른다. You use the web but have no idea how it works Improve Skill

1 전에 개발자들과 일해 본 적이 있고 데이터베이스/데드라인/버그들에 대한 간단한 협업을 해본적이있다. 대학에서 프로그래밍 수업을 들은 적이 있지만 혼자서 무언가를 만드느라고 애쓴적이 없다.You’ve worked with programmers before and can participate in a basic business conversation about topics like databases/deadlines/bugs. You had a programming class in college once but never spent much time building anything yourself

Improve Skill

2 몇개의 작은 프로그래밍 프로젝트를 했고 기본적으로 어떻게 동작하는지 이해한다. 프로덕트 레벨의프로젝트를 해본적은 없다. 새로운 용어를 들었을 때 검색해서 의미를 이해할 수 있다.You’ve done a few small programming projects yourself and basically understand how everything works although you’ve never deployed production-level application. When you hear a new term you can look it up and understand what it means

Optimal

3 비교적 느리지만 기본적인 웹 어플리케이션을 구축해 본적이 있다. 당신의 개발 실력은 엘레강스하진 않지만, 스택오버플로우로 새로운 무언가를 찾아 본 적이 있다. 새로운 기술이 필요하면 배운다.You can – albeit slowly – create and deploy a basic data-driven web application using a popular framework like Rails or Django. Your code is far from elegant and you first turn to StackOverflowwhenever you try to do something new. You learn new skills and technologies as you need them

Optimial

4 프래랜서로 일할 수 있는 수준이며, 오픈소스 프로젝트에 참여해 본 적이 있다.You’re good enough to work as a freelancer building web applications for clients. You participate in open-source projects just to improve your skills

Optimal

5 유명한 프로젝트에 참여하여 일하기에 충분한 훌륭한 프로그래머이다. 동작하다는 것이 충분하지 않으며 엘레강스하고 스케일러블한 코드를 작성하는 것을 목표로 한다.You’re a great programmer and good enough to work for companies like Pivotal Labs. “It works” isn’t good enough – you pride yourself in creating elegant maintainable and scalable code

Hire at this Level

6 No time for programming – you’re too busy laying out the vision for what comes after node.js Hire at this Level

Page 6: How to implement your dream 20150427

1. Intro

어떤 정도로 알아야 하는가 ?

2-4 사이에 당신의 Skill Level이 존재한다면, 당신은 MVP(Minimum Viable Product)를 구성할 수 있으며, 마켓이 필요로 하는 게 무엇인지 발견할 수 있다.

스킬 레벨이 2보다 작을 경우, 개발자와 커뮤니케이션하기가 어려울 것이다.크리티컬 제품 설계의 Tradeoffs를 결정하기 어렵다. 결국 매우 느리게 의사결정이 이루어 진다.

프로그래밍 스킬이 없는 창업자의 경우, 성공한 케이스를 보면 많은 제품 경험을 가졌거나, 세일즈에 매우 집중한다.

Page 7: How to implement your dream 20150427

1. Intro

개발자란 ?

미국의 경우 개발자는 스타트업에 근무하는 모든 사람들이다.

고객의 요구사항을 파악하고, 그에 맞는 솔루션 아이디어를 제시하는 사람이 곧 개발자이다.

제시된 아이디어는 작은 유저 그룹에서 검증되어야 한다.리스크가 클수록 더 많은 검증 단계를 거칠 수 있다. (예: 페이스북 메신저)

기획자가 없는 미국은 창업가, 마케터, 디자이너, 코더 모두가 개발자이다.

CEO는 개발자 중의 한 사람이다. 코딩을 할 수도 안할 수도 있지만,지금 만들고 있는 것의 최초의 사용자이며, 무엇을 해결할 것인지를 누구보다도 먼저 알아야 한다.

Page 8: How to implement your dream 20150427

1. Intro

참석자 멘토링

• 현재 참석자의 개발 스킬에 대한 설문: 0~6까지 분포

• 각 참석자 별 상황에 맞추어 만들고자하는 서비스와 그 서비스에 대해 필요한 개발자스킬에 대해서 궁금한 분들을 위해 질의 응답.

Page 9: How to implement your dream 20150427

2. 잘된 제품 분석하기

잘된 제품 선택하기

• 1안: 발표자 선정 Instagram

• 기타안: 참석자의 의견을 받아서 선정

Page 10: How to implement your dream 20150427

2. 잘된 제품 분석하기

잘된 제품 선택하기

• 인스타그램이란? 가장 성공적인 소셜 사진 공유 서비스 (모바일 중심)

• http://www.businessinsider.com.au/instagram-grows-maus-to-150-million-2013-9

• http://www.forbes.com/sites/benjaminboxer/2014/03/06/why-media-companies-need-to-start-building-their-instagram-audiences-now/

Page 11: How to implement your dream 20150427

2. 잘된 제품 분석하기

Case: Instagram

• Reverse Engineering (리버스 엔지니어링) 이란? 잘된 서비스의 경험을 배운다.

• Lean Canvas (린 캔버스)

• Storyboard (스토리보드)

• Design(설계)

Page 12: How to implement your dream 20150427

2. 잘된 제품 분석하기 – Lean Canvas

The Lean Canvas | Instagram2014/ MM/ DD

Iteration #1

Cost Structure 비용구조 Revenue Streams 수익원

Problem 문제 Solution 솔루션

Key Metrics 핵심지표

Unique Value Propositi

on

고유의 가치 제안

Unfair Advantage

경쟁우위

Channels 채널

Customer Segments

고객군

- 사진을 공유하기 위해복잡하거나 비싼 툴로편집하기 싫다.- 심플하고 복잡하지 않은 서비스를 원함.-매번 무슨 의도를 가지고 촬영하는 게 아니라, 갑자기 찍고 싶거나, 순간적인 느낌으로 촬영을하고 싶을 때가 있다.- 페이스북이나 트위터에서는 못하지만, 불특정 다수에게 공유하고싶을 때가 있다.

- 사진을 스마트폰 앱으로 촬영하고 간단하게편집해서 공유하게 한다. (Click Distance ↓)- 잘찍거나 좋아하는 사람들을 Following해서감상한다.

- 초기에는 사진을 좋아하는 사람. 사진 커뮤니티의어얼리어답터

- 이후에 일반 유저

- 사진을 공유하는 가장쉽고 빠른 방법

- 내가 좋아하는 스타일의 사진을 매일 감상할 수 있다.

- 나도 프로페셔널 사진가가 된다.

A유치: 페북로그인, 이메일가입

A활성: 첫접속성공R유지: Following

R매출: 광고R추천: 페이스북으로 사진 공유를 통해 가입 유도

- 초기에는 사진 커뮤니티등 어얼리어답터 네트워크

- 초기 이후에 사진 블로거/페이스북/트위터

-

--

Keywords: why people like Instagram 참고도서 - 린 스타트업 : 실리콘밸리를 뒤흔든 IT 창업 가이드

Page 13: How to implement your dream 20150427

2. 잘된 제품 분석하기 – Storyboard

• App 내부는 블랙박스이며, 유저와의 Interaction을 녹화한다.

1. 인스타그램 실행

Page 14: How to implement your dream 20150427

2. 잘된 제품 분석하기 – Storyboard

• App 내부는 블랙박스이며, 유저와의 Interaction을 녹화한다.

2. 둘러보기 탭메뉴 선택

Page 15: How to implement your dream 20150427

2. 잘된 제품 분석하기 – Storyboard

• App 내부는 블랙박스이며, 유저와의 Interaction을 녹화한다.

2.1. 콘텐츠 하나 선택

Page 16: How to implement your dream 20150427

2. 잘된 제품 분석하기 – UML(Unified Modeling Language)

• 스토리보드에서 유저의 터치 하나하나가 설계의 Use Case 다이어그램의 하나가 된다.

• 사용툴: 마이크로소프트사의 비지오(Visio) 또는 오픈 소스 UML 도구 (starUml: 한국사람이 만든 것, ArgoUML, AmaterasUML: 개발툴인 이클립스 플러그인으로 제공됨)

• 손으로 그려도 상관없음.

Visio 툴 StarUML 툴

Page 17: How to implement your dream 20150427

2. 잘된 제품 분석하기 – UML: Use Cases

• 스토리보드의 내용을 Use Case로 나타낸 것

App

App

<<extend>>

Page 18: How to implement your dream 20150427

2. 잘된 제품 분석하기 – UML: Sequence Diagram

• Use Case 하나가 한 개 이상의 Sequence Diagram으로 나타난다.

• 개발을 모르는 창업자가 그릴 수 있는 Sequence Diagram은 다음과 같으며 스토리 보드의터치 이벤트 하나 하나가 각각 Sequence Diagram과 대응된다.

APP Main

App

App Main ( 1 )

Page 19: How to implement your dream 20150427

2. 잘된 제품 분석하기 – UML: Sequence Diagram

• Use Case 하나가 한 개 이상의 Sequence Diagram으로 나타난다.

• 개발을 아는 창업자 혹은 개발자가 그릴 수 있는 그림은 다음과 같다.

APP Main

App

App Main ( 1 )

Facebook

SDK

Login Check

Login

Content

Server

Database

Logic

Following

Page 20: How to implement your dream 20150427

2. 잘된 제품 분석하기 - UML

참석자 멘토링

• 인스타그램의 Sequence Diagram을 그릴 수 있는 수준으로 그려본다. (실습)

• 개별 멘토링을 하면서 동의하기에 따라서 케이스 바이 케이스로 전체를 대상으로 설명한다.

Page 21: How to implement your dream 20150427

3. 내 제품의 MVP 그리기

참석자 멘토링

• 자신 서비스에 대한 Lean Canvas 그려보기 (손 또는 파워포인트 가능)

• 개별 멘토링 (혹은 공개 멘토링)

Page 22: How to implement your dream 20150427

3. 내 제품의 MVP 그리기 – Lean Canvas #1

The Lean Canvas | 제품명2014/ MM/ DD

Iteration #1

Cost Structure 비용구조 Revenue Streams 수익원

Problem 문제 Solution 솔루션

Key Metrics 핵심지표

Unique Value Propositi

on

고유의 가치 제안

Unfair Advantage

경쟁우위

Channels 채널

Customer Segments

고객군

- ***- ***

- ***

- ***

A유치:

A활성: R유지:

R매출: R추천:

- ***

- ***

- ***- ***

Page 23: How to implement your dream 20150427

3. 내 제품의 MVP 그리기 – Lean Canvas #2 (여분)

The Lean Canvas | 제품명2014/ MM/ DD

Iteration #1

Cost Structure 비용구조 Revenue Streams 수익원

Problem 문제 Solution 솔루션

Key Metrics 핵심지표

Unique Value Propositi

on

고유의 가치 제안

Unfair Advantage

경쟁우위

Channels 채널

Customer Segments

고객군

- ***- ***

- ***

- ***

A유치:

A활성: R유지:

R매출: R추천:

- ***

- ***

- ***- ***

Page 24: How to implement your dream 20150427

3. 내 제품의 MVP 그리기 – Storyboard

참석자 멘토링

• 자신 서비스에 대한 Storyboard 제한 시간 내에 최대한 그려보기(손 혹은 파워포인트 가능)

• 개별 멘토링 (혹은 공개 멘토링)

Page 25: How to implement your dream 20150427

3. 내 제품의 설계 – UML

참석자 멘토링

• 자신 서비스에 대한 Storyboard 제한 시간 내에 최대한 그려보기 (손)

• 개별 멘토링 (혹은 공개 멘토링)

Page 26: How to implement your dream 20150427

APP Main

App

App Main ( 1 )

Facebook

SDK

Login Check

Login

Content

Server

Database

Logic

Following

4. 제품별 프로젝트의 예산과 일정 산출하기

Sequence Diagram을 기반으로 추출

• 상기 UML 설계를 통해 나오는 작업 내용은 다음과 같다.

• 개발 Activities• Client 개발

• Android 개발• AppMain 개발

• Facebook SDK 통합 (2d ~ 5d: 테스트 기간 고려됨)• Content Server 통신 모듈 (2d ~ 5d: 테스트 기간 고려됨)• Following 유저의 콘텐츠 목록 리스트 (2d: 테스트 기간 고려됨)

• 콘텐츠 상세 화면 개발• 로그인 개발• 둘러보기 개발• MY 화면 개발

• 서버 개발• Following 유저에 대한 콘텐츠 검색 쿼리 개발• Following 유저에 대한 콘텐츠 API 개발

• 디자인 (디자인 각각의 요소가 개발보다 먼저 나와야 함)• 기획은 같이 하는 것이며, 별도의 기획자는 필요 없음. (대표가 기획 매니저)

Page 27: How to implement your dream 20150427

4. 제품별 프로젝트의 예산과 일정 산출하기

ASANA 협업 툴로 일정 관리 하기

• www.asana.com 사용방법 강의

• 데스크탑 및 스마트폰 지원

• instagantt.com 을 통해 간트 챠트 지원됨.

Page 28: How to implement your dream 20150427

4. 제품별 프로젝트의 예산과 일정 산출하기

예산 산출 하기 (인력)

• MVP에서의 타겟 플랫폼은 안드로이드 또는 iOS 하나면 족하다. 초반부터 충분한 외부 투자자금이 투입되지 않는 한, 기회를 검증하기 위해서는 최소한의 개발로Maximum 유저 피드백을 받아야 한다.

• 서버를 통해서 공유되는 컨텐츠가 있다면 서버 개발은 반드시 필요하다.

• 보통은 네트워크 기반 스마트 컨텐츠의 경우 최소한 다음의 인력이 필요하다.• 스마트단말 개발자 (안드로이드1+)• 서버 개발자1+

• 기술력이 좋고 공동 창업자로써 CTO나 선임 개발자1명은 필요하다. (자신이 개발한다면 필요 없을 수도 있다)

Page 29: How to implement your dream 20150427

4. 제품별 프로젝트의 예산과 일정 산출하기

예산 산출 하기 (H/W, Server)

• 개발자 노트북 지급 (2년마다 노트북은 새버전으로 갈아 주어야 함)

• 별도 모니터 지급(노트북 외에 추가 모니터 1대~2대 지급)

• 디자이너 (디자이너용 모니터 필요, iMac 지급 or 그래픽카드가 좋은 Desktop 지원)

• 사무실 임대료, 인건비, 4대보험, 기타 일반 관리비

Page 30: How to implement your dream 20150427

4. 제품별 프로젝트의 예산과 일정 산출하기

예산 산출 하기 (H/W, Server)

• 서버 구성• IDC에 전용 서버 구성 (국내 서비스인 경우 – 네트워크 트래픽에서 저렴)• AWS 등 클라우드 서비스 고려 (글로벌 서비스인 경우)

Page 31: How to implement your dream 20150427

5. Q&A

참석자 멘토링

• 제품의 설계/일정/예산에 대한 질의 응답.

Page 32: How to implement your dream 20150427

6. 마무리

개발 환경 및 플랫폼

• 안드로이드 개발환경• 데스크탑 또는 노트북 (iOS, Windows 모두 개발 가능)• 이클립스 또는 안드로이드 스튜디오를 통해 개발 가능.• 에뮬레이터 환경 (Geny Motion을 통해 폰 테스트 가능)• 에뮬레이터에서는 통화, SMS, GPS 등의 테스트가 불가능하므로 실제 단말이 필

요 (SK텔레콤 상생센터에서 무료로 테스트 가능하나 미리 장소 및 단말을 예약해야 함)

• iOS 개발환경• 맥에서만 개발 가능• Xcode

• 서버 개발 환경 (서버 환경은 거의 무료)• Apache+Tomcat+MySQL(MariaDB)• Python+Django+MySQL• IIS+ASP.NET+MSSQL (최근 무료화)• 개발은 Eclipse 또는 Visual Studio

Page 33: How to implement your dream 20150427

6. 마무리

개발 방식

• 네이티브(Native) 앱 개발• 우리가 앱이라고 이야기 하는 안드로이드나 아이폰용 어플리케이션

• 모바일웹 개발• 모바일 브라우저에서 동작하는 웹페이지• 데스크탑 브라우저보다 화면이나 기능이 열악한 모바일 브라우저 상에서 동작

하는 웹 서비스를 개발하는 것임.• 설치할 필요없이 유저가 도메인을 입력하거나 링크를 타고 들어올 수 있으며, 전

용 앱 개발보다 비용이 절감된다. (단말 개발자가 필요없다)

• 웹앱 개발 (하이브리드 웹앱이라고도 함)• 일반 웹페이지는 GPS 등의 센서에 접근하지 못하므로, Hardware의 센서 값을 읽

어와서 웹페이지에 정보를 주고 받을 수 있게 하여 웹의 기능제약을 없엔 Hybrid 개발 방법

Page 34: How to implement your dream 20150427

6. 마무리

개발 방식의 차이: 웹/웹앱/앱

• 웹- Pros: 앱 업데이트를 할 필요가 없다. 서버에서만 업데이트하면 서비스가 바뀐다.- Cons: 페이지간 이동이 느리다. 사이트 URL을 모바일에서 입력하기 힘들다.

• 앱- Pros: 화면간 이동이 빠르다.- Cons: 앱업데이트시 유저들이 빠저나간다.

• 웹앱 (하이브리드)- Pros: 둘다의 장점을 취할 수 있다. (주요 화면 전화 빠름 + 앱업데이트를 줄임)- Cons: 둘다의 단점도 가질 수 있다. (업데이트 문제 + 페이지간 이동 느림)

• PC 애플리케이션의 진화를 살펴볼 필요 있다.PC애플리케이션은 초기에는 네이티브가 강세였으나, 현재는 대부분의 서비스들은웹으로 바뀌었다. 네이티브로 남은 부분은 오피스 제품군, 백신, 각종 뷰어, 에디터, 메일클라이언트, 게임, 브라우저, 비디오플레이어 정도이다.

Page 35: How to implement your dream 20150427

6. 마무리

개발툴

• 소스 관리• Subversion, CVS, Git

• 일정관리• Asana and Instagantt

• 설계• StarUML, AmaterasUML, Visio

• 단말 라이브러리• Flurry: 로그 분석• Crittercism: 크래쉬 관리

• 광고 플랫폼• Admob (일반 앱 서비스)• TabJoy (게임앱)

Page 36: How to implement your dream 20150427

6. 마무리

Flurry 분석 결과

DriveS Personas 프로파일링 결과

No 1: Social InfluencersNo 2: Casual & Social GamersNo 3: Business ProfessionalsNo 4: Sports FansNo 5: Music LoversNo 6: Entertainment EnthusiastsNo 7: Tech & Gadget EnthusiastsNo 8: Photo & Video Enthusiasts

나이는 25-34세가 32%로 가장 많음.남성이 3/4 ㅡㅡ:언어는 영어가 52.4%.

Page 37: How to implement your dream 20150427

6. 마무리

사용자 방문과 체류 시간 늘이기

Flurry 같은 툴을 사용하여, 유저가 들어와서 어떤 Activity를 하는지를 파악해야 한다.

• 유저가 사이트를 떠나는 마지막 페이지를 그룹핑하여 Count가 높은 순으로 원인을 파악한다.- 예를 들어, 특정 Link를 타고 들어올 때, 화면이 표시가 안된다던지, 휴대폰 인증을 받고 나

서 가입화면으로 다시 돌아오지 않는 경우가 10번에 2~3번 정도 된다던지... 고객이 왔다가 사이트 오류로 다시는 안들어오는 상황을 캐치한다.

• 유저의 형태별로 군을 나눈다. (수작업)- 로그인을 하는지 안하는지?- 구매액을 기준으로 그루핑해서 패턴을 나눈다. (분기별로 구매액 혹은 구매 단가별로 고객

의 패턴이 유사한지?)

• 예를 들어, 분기별로 1만원 정도의 유저군의 유저가 3만원 정도의 유저군으로 사용 패턴이 옮겨갔다면,

- 로그를 기반으로 Trigger point를 찾도록 노력한다.- 사용 로그로 도저히 알 수 없을 경우에는 해당 유저군에게 앙케이트 이벤트나 랜덤 이벤트

에 당첨되었다면서 전화나 오프라인 인터뷰를 요청한다.

• 기술적으로 의미가 있는 것보다는 더 많은 유저들이 요청하는 아이템을 만들어라.

Page 38: How to implement your dream 20150427

6. 마무리

참석자 멘토링

• 제품의 개발환경 및 플랫폼에 대한 질의 응답.

• 기타 전체적인 내용에 대한 질의 응답