79
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자 전수열 [email protected]

좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

  • Upload
    -

  • View
    39.641

  • Download
    6

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

좋은 디자이너,

나쁜 프로젝트매니저,

이상한 개발자전수열

[email protected]

Page 2: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

저는...SW Maestro 2기스타트업 Joyfl 대표

디자이너 지망생이다가플래시를 거쳐현재 모바일 개발자

[email protected]/devxoul

Page 3: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

디자이너프로젝트 매니저

개발자

Page 4: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

보물지도를 차지하기 위한 싸움

Page 5: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

하지만 프로젝트에서는...

Page 6: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

One project. Three members. Winner takes none.

Page 7: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“싸우면서 크는거지 뭐”

Page 8: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

맞습니다

Page 9: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

하지만...

Page 10: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

서로에 대한 이해를 바탕으로의미있는 논쟁을 해라

Page 11: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자
Page 12: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

이해(理解)하다[동사] 깨달아 알다. 또는 잘 알아서 받아들이다.

Page 13: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

한번 깨달아서 받아들여봅시다

Page 14: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

1. 넌 대체 뭐하는 놈이냐?

Page 15: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

프로젝트 매니저(PM)프로젝트의 전반적인 스케쥴 관리

팀원의 의견 조율고객의견 반영

Page 16: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

개발자아이디어 실현가능여부 판단

프로그래밍을 통한 아이디어 실현효율적인 구현방법에 대한 생각

Page 17: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

디자이너보이지 않는 아이디어를 눈에 보이게사용자경험 디자인도 하는 추세

사용자에게 가장 먼저 눈에 띄게 하는 역할

Page 18: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

개발자나 디자이너로 프로젝트 경험을 쌓고프로젝트 매니저가 되는 경우가 많음

Page 19: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

2. 그럼 대체 뭐가 다른거야?

Page 20: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

2. 그럼 대체 뭐가 다른거야?

무조건 달라

Page 21: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

마인드, 용어 등

Page 22: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

프로젝트 매니저

마감

클라이언트기획서

을BM

돈팀원 달래기

사업계획서

Page 23: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

개발자

맥주

Google치킨

버그잉여

마감

Ubuntu

잉여

잉여

잉여

잉여

잉여

잉여

잉여

잉여

Page 24: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

디자이너

Page 25: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

디자이너

존나 달라

Page 26: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

프로젝트 매니저와 디자이너가 알면 좋은모바일 개발자들의 용어

Page 27: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

1. 프로그래밍 언어와 플랫폼아이폰이면 아이폰이고 안드로이드면 안드로이드지

Objective-C는 뭐고 Java는 또 뭐야?

Page 28: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

플랫폼어떤 것들이 구동되는 환경

백화점 - 여러 가지 상점들이 모여있는 환경Android, iOS - 여러 가지 앱들이 구동되는 환경페이스북, 카카오톡 - 사람들이 네트워킹을 하는 환경

Page 29: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

힌두권에서는 돼지고기만 팔아야 하고,이슬람권에서는 소고기만 팔아야 함

Page 30: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

iOS에는 아이폰 앱만 올라가고,안드로이드에는 안드로이드 앱만 올라감

Page 31: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

돼지고기와 소고기는 만드는 방법이 다르다아이폰 앱과 안드로이드 앱은 만드는 방법이 다르다

Objective-C Java

Page 32: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

크로스플랫폼여러가지 플랫폼에서 구동될 수 있는 것

Page 33: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

이슬람도 먹고 힌두도 먹고

Page 34: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

Adobe AIR, HTML5, Titanium 등iOS에서도 돌아가고 안드로이드에서도 돌아가고

Page 35: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

네이티브(Native)와 하이브리드(Hybrid)Objective-C, Java : 네이티브

AIR, HTML5, Titanium : 하이브리드

Page 36: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

2. 서버와의 연동HTTP, HTTPS, JSON, XML, REST, QueryPHP, Django, Cassandra, Ruby on rails,

Nginx, Apache, Cache, API, Parsing,MySQL, NoSQL, RDB, OAuth, Session,

Memcached, Replication, Hadoop, HDFS,...

Page 37: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“뭐가 이리 복잡해? 그냥 서버에서 가져오면 되는거 아냐?”

Page 38: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“Nginx에 Django랑 MySQL 사용해서RESTful API를 만들어놨으니까

서버로 HTTP Request 보내면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 39: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“Nginx에 Django랑 MySQL 사용해서RESTful API를 만들어놨으니까

서버로 HTTP Request 보내면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

????????????????????????????????????????????????????????????????????????????????

Page 40: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

설명해줄게요

Page 41: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

잘 보세요

Page 42: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“Nginx에 Django랑 MySQL 사용해서RESTful API를 만들어놨으니까

서버로 HTTP Request 보내면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 43: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 Django랑 MySQL 사용해서RESTful API를 만들어놨으니까

서버로 HTTP Request 보내면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 44: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 MySQL 사용해서RESTful API를 만들어놨으니까

서버로 HTTP Request 보내면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 45: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서RESTful API를 만들어놨으니까

서버로 HTTP Request 보내면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 46: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서물어보기 편하게 만들어놨으니까

서버로 HTTP Request 보내면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 47: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서물어보기 편하게 만들어놨으니까

114로 전화걸면 쿼리에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 48: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서물어보기 편하게 만들어놨으니까

114로 전화걸면 질문에 맞게JSON이나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 49: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서물어보기 편하게 만들어놨으니까

114로 전화걸면 질문에 맞게말로 해주거나 XML 형식의 데이터로 뽑아줄거야.아참 캐시때문에 데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 50: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서물어보기 편하게 만들어놨으니까

114로 전화걸면 질문에 맞게말로 해주거나 문자로 보내줄거야.

아참 캐시때문에 데이터 바뀐거 확인 안될지도모르니까 그것도 참고해야 될거야.”

Page 51: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서물어보기 편하게 만들어놨으니까

114로 전화걸면 질문에 맞게말로 해주거나 문자로 보내줄거야.아참 전화번호부가 갱신되지 않아서데이터 바뀐거 확인 안될지도

모르니까 그것도 참고해야 될거야.”

Page 52: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“114에 일 잘하는 직원이랑 전화번호부 사용해서물어보기 편하게 만들어놨으니까

114로 전화걸면 질문에 맞게말로 해주거나 문자로 보내줄거야.아참 전화번호부가 갱신되지 않아서전화번호 바뀐거 확인 안될지도모르니까 그것도 참고해야 될거야.”

Page 53: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

하나하나 뜯어봅시다

Page 54: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

웹서버요청을 받아들여서 작업을 어떻게 처리할지 판단

Nginx, Apache, Lighttpd 등

24시간 114 센터고객들의 전화를 받아서 어떤 일을 할지 판단

Page 55: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

서버사이드 언어웹서버에서 받은 요청을 상황에 맞게 처리

PHP, Django, Ruby on rails 등

일 잘하는 직원고객이 물어본 전화번호를 찾아서 알려줌

Page 56: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

데이터베이스데이터들을 모아놓은 집합체

MySQL, PostgreSQL, MongoDB, Redis 등

전화번호부직원이 전화번호부에서 전화번호를 찾아봄

Page 57: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

JSON/XML데이터를 표기하는 방법

말로 할지 문자로 알려줄지같은 전화번호라도 말로 알려줘도 되고문자로 전화번호를 보내줘도 됨

Page 58: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

캐시자주 사용하는 데이터를 따로 저장

전화번호부가 갱신되지 않아서자주 사용되는 전화번호가 전화번호부에

적혀있는데 그 번호가 바뀌었는데도 전화번호부에는옛날 번호가 적혀있음

Page 59: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

한번에 이해하기보다는 여러번 들어보는게 중요

Page 60: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

언젠간 이러지 않아도 됩니다

Page 61: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

3. 어떻게 커뮤니케이션하지?

Page 62: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

잘못된 커뮤니케이션의 예

Page 63: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

이년이?

Page 64: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

1. 말하고자 하는 것을 정확하게개발자들은 확실하지 않으면 답답해서 미쳐버려요

Page 65: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

JOYFL에서 흔히 있던 일

“형 이런거 어때?”“어떤거?”

“어.. 잠시만.. 그 뭐지? 되게 많이 쓰는건데..”“그게 뭔데?”

“아 어떻게 설명해야될지 모르겠네”“어디에 쓰는건데?”

“아 그게 그냥 UI인데..”“???????????”

Page 66: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

이럴땐 차라리 그냥 그려서 보여주세요

Page 67: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

2. 용어에 대해 명확하게 알고 미리 약속해놓기

Page 68: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“네비게이션좀 디자인해볼래?”

Page 69: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

의도한 것 - 네비게이션 바

Page 70: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

현실 - 아이나비

Page 71: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

과장되긴 했지만 실제로 용어 이해의 차이때문에미스커뮤니케이션이 나는 경우가 굉장히 많음

Page 72: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

특히, 탭바나 네비게이션바와 같이 공용의 용어가 아니라해당 애플리케이션에만 있는 특정 UI에 대한 용어

Page 73: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

이야기를 할 때 이 부분을설명하기가 너무 어려워서WTF이라고 정의함

Page 74: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

3. 사용자들의 피드백을 부정하지 않기

Page 75: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

“형진아 우리 Joyfl말야 사람들이 자꾸 Joyfi라고 봐”“왜그러지??”

“메일이 자꾸 발송 안된다그러구얼마전에 기사날때도 Joyfi라고 나서 연락했어”

“아닌데 딱봐도 L인데...”“아니 그러니까 사람들이 i로 본다니까”

Page 76: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

결국 사용자검증, 가독성에서 2번의 압승

Page 77: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

사용자가 불편하다고 하면 불편한 것!사용자는 갑 오브 갑사용자는 슈퍼갑!!

Page 78: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

싸우더라도 마지막에 웃을 수 있는 프로젝트를 하길

Page 79: 좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자

질문받습니다!