Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
좋은 디자이너, 나쁜 프로젝트매니저, 이상하...
Search
Suyeol Jeon
September 08, 2014
Business
0
100
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자
https://www.slideshare.net/devxoul/ss-14215375
Suyeol Jeon
September 08, 2014
Tweet
Share
More Decks by Suyeol Jeon
See All by Suyeol Jeon
성장하는 iOS 개발자 되기
devxoul
2
230
레거시 프로젝트에서 의존성 주입하기
devxoul
1
2.3k
Let's TDD
devxoul
0
70
Hello, ReactorKit 👋
devxoul
0
84
Build Funnels with Google BigQuery
devxoul
0
32
RxSwift 시작하기
devxoul
1
350
ReactorKit으로 단방향 반응형 앱 만들기
devxoul
0
130
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
devxoul
10
3.2k
Other Decks in Business
See All in Business
UIL広島駅前 利用検討者への事業所紹介
ymtyhka7o4o8
0
410
Digital Experience, Inc. - Company Deck
sprasiainc
0
17k
【エンジニア採用】IDOM Digital Drive会社説明資料
idomdigitaldrive
0
130
なぜ施策優先度を意思決定しなければならないのか? 経験から得た要因と対策
mkitahara01985
2
270
合議で決めたいわけではないけれど、 集合知で助けてほしい。_pmconf_2024
tomosooon
1
5.4k
Creating Creators in the age of Generative AI - In SIGGRAPH ASIA 2024
o_ob
0
120
仮説のマップ・ループ・リープ ~仮説思考のプロセスについて~
tumada
PRO
12
4.7k
「+ Joy」 初めは熱々だったはずなのに だんだん硬くて冷たくなっていく目標に 血を通わせる工夫_2024年度下期アップデート版
sasakendayo
0
270
署内デジタルインフォボードの開発
tokyo_metropolitan_gov_digital_hr
1
350
Go See!で見つけるプロダクト開発の突破口とその実践法
ta0o_o0821
1
200
いま、データに必要な解像度
hik0107
34
13k
株式会社ispec 会社紹介資料
emikamihara
0
5.9k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
521
39k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
A better future with KSS
kneath
238
17k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Adopting Sorbet at Scale
ufuk
73
9.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
The Invisible Side of Design
smashingmag
299
50k
Raft: Consensus for Rubyists
vanstee
137
6.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Transcript
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자 전수열
[email protected]
저는... SW Maestro 2기 스타트업 Joyfl 대표 디자이너 지망생이다가 플래시를
거쳐 현재 모바일 개발자
[email protected]
fb.me/devxoul
디자이너 프로젝트 매니저 개발자
보물지도를 차지하기 위한 싸움
하지만 프로젝트에서는...
One project. Three members. Winner takes none.
“싸우면서 크는거지 뭐”
맞습니다
하지만...
서로에 대한 이해를 바탕으로 의미있는 논쟁을 해라
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, Query PHP,
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번의 압승
사용자가 불편하다고 하면 불편한 것! 사용자는 갑 오브 갑 사용자는
슈퍼갑!!
싸우더라도 마지막에 웃을 수 있는 프로젝트를 하길
질문받습니다!