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

Preview:

DESCRIPTION

 

Citation preview

좋은 디자이너,

나쁜 프로젝트매니저,

이상한 개발자전수열

ceo@joyfl.net

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

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

ceo@joyfl.netfb.me/devxoul

디자이너프로젝트 매니저

개발자

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

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

One project. Three members. Winner takes none.

“싸우면서 크는거지 뭐”

맞습니다

하지만...

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

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

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

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

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

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

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

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

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

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

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

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

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

무조건 달라

마인드, 용어 등

프로젝트 매니저

마감

클라이언트기획서

을BM

돈팀원 달래기

사업계획서

개발자

맥주

Google치킨

버그잉여

마감

Ubuntu

잉여

잉여

잉여

잉여

잉여

잉여

잉여

잉여

디자이너

디자이너

존나 달라

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

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

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

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

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

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

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

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

Objective-C Java

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

이슬람도 먹고 힌두도 먹고

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

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

AIR, HTML5, Titanium : 하이브리드

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,...

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

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

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

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

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

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

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

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

설명해줄게요

잘 보세요

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

하나하나 뜯어봅시다

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

Nginx, Apache, Lighttpd 등

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

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

PHP, Django, Ruby on rails 등

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

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

MySQL, PostgreSQL, MongoDB, Redis 등

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

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

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

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

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

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

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

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

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

잘못된 커뮤니케이션의 예

이년이?

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

JOYFL에서 흔히 있던 일

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

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

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

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

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

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

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

의도한 것 - 네비게이션 바

현실 - 아이나비

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

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

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

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

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

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

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

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

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

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

질문받습니다!

Recommended