Wednesday, May 20, 2015

[lesson: PM] after reading "Memories Reloaded: 프로덕트 매니저 (PM) 의 자질 - 1"

Memories Reloaded: 프로덕트 매니저 (PM) 의 자질 - 1: 가끔 커리어 패스로 프로덕트 매니저 (PM) 쪽을 하고 싶다는 분들로부터 프로덕트 매니저는 어떤 일을 하는지에 대한 질문을 받는다. 나보다 프로덕트 매니저로써 훨씬 뛰어난 분들이 많이 계시지만, 구글에서 얼마전까지 3년반동안 개인적으로 경험했던 것을...

Lesson learned from PM 자질 1편 (translation: characteristics of PM):

1. fan: "프로덕트 매니저는 자신이 맡은 서비스의 가장 열렬한 사용자 중 한명이어야 한다."

2. planner: "가장 기본적인 역할은 시장과 경쟁자 동향, 사용자 요구에 맞추어 제품이나 서비스의 피쳐를 기획하는 '기획자'의 역할이다."

3. bug reporter: "만약 버그가 발생했을 경우 그것을 가장 먼저 알아내고 개발팀에 이야기 해주는 사람이어야 하며,"

4. proactive problem solver: "사용자들이 불편을 겪고 있다면 어떤 불편인지를 알아내서 고치는 동시에 그 사용자들과 직접 대화도 하는 사람이어야 한다."

5. PR: "이와 관련된 PR 문제가 발생했다면 그것 역시 프로덕트 매니저가 일차적으로 책임을 져야 한다."

6. communication facilitator: "이와 관련된 모든 커뮤니케이션을 책임지는 과정에서 미팅 노트를 쓰는 등 사소한 잡일도 당연히 해야 한다.

7. integrator: "모든 것을 혼자서 다 해야 한다는 이야기가 아니라, 모든 것을 총괄하고 관리하고 이슈의 오너십을 가져야 한다는 것이다."

[lesson: PM] after reading "Memories Reloaded: 프로덕트 매니저 (PM) 의 자질 - 2"

Memories Reloaded: 프로덕트 매니저 (PM) 의 자질 - 2: (링크: 프로덕트 매니저 (PM) 의 자질 - 1 ) 방 안에서 가장 많이 알고있는 사람  프로덕트 매니저는 해당 제품이나 서비스를 둘러싼 모든 것들 -- 시장, 경쟁환경, 트렌드, 기술적인 부분들 -- 에 대해서 가장 잘 알고 있는 사람이어...

Lesson learned from PM 자질 2편 (translation: characteristics of PM):

1. study and think: "비전은 자다가 또는 샤워하다가 갑자기 나오는게 아니라, 많이 알고 많이 생각하는 사람에게 어느날 갑자기 찾아오는 것이다."

2. communicate with data: "정확한 팩트와 데이터에 기반해서 주장할 수 있어야 한다. 이런 면에서 가끔 프로덕트 매니저는 법정에 서는 변호사와 같기도 하다고 느껴진다.
나도 개인적으로 내가 생각할 때는 너무도 당연한 기능인데 그걸 넣는 것에 대해서 반대하는 팀을 설득해야 할 때가 종종 있었다. 그럴때 그냥 “아니 이건 당연한 건데 왜 그걸 모르냐”는 등의 주관적인 설득을 펼치면 거의 성과가 없었던 것 같다. 하지만 누구나 납득 가능한 데이터를 제시하면 다른 반응을 얻을 수 있었다. 이를테면 한번은 유저들을 대상으로 내가 제안했던 기능에 대한 설문 조사를 했고, 그 결과 80% 이상이 그 기능을 필요로 한다고 답변을 했었다. 그 데이터를 제시하자 어렵지 않게 그 기능을 추가하는 것으로 결론이 났었다. 전에는 반대했던 사람도 흔쾌히 결과를 수용했었다."

3. respond within one day: "이를테면 자신에게 온 이메일이 어떤 방식으로든 응답되는데 최대 24시간이 걸리지 않도록 하는 것이라든지,"

4. follow-up: "단순히 이메일을 포워딩만 하고 잊어버리는게 아니라 그 이메일이 잘 처리되고 있는지를 끝까지 팔로우업 하는 것, 이런 것들도 크게보면 모두 커뮤니케이션 능력에 해당하는 것이다."

5. sync-up all stakeholders: "목표는 자기가 커뮤니케이션 잘 하는 사람임을 증명하는게 아니라, 일을 이루어가기 위해서 모든 이익 대변자 (stakeholder) 들이 다 똑같은 정보를 가지고 있는지를 확인하는 일이다."

Monday, May 4, 2015

[conference] Google Developers Summit 2015 in Seoul

Google Developers Summit 2015
Campus Seoul
April 29, 2015 (Mon) 09:30~18:00
Android, Android TV, Play, App Indexing, Cloud Platform, AdMob

  1. Building for the Next Billion Users (Chansuk Yang, Developer Advodate)
    1. Lesson
      1. build products/services for the next billion requiring low battery power and low memory
      2. 8 things to consider in building apps
        1. Mobile data is valuable: treat data like money
        2. Put your app on a diet: APK size matters, remove unused code and resources (minifyEnabled=true, shrinkResources=true), try using WebP (an open source image format developed by Google)
        3. Smooth like butter: keep graphics performance smooth (aim for 60 fps, this allows for ~16ms per frame (1000/60), try to reduce actual and perceived latency, minimize layout overdraw and layout depth, only run UI updates and logic on the UI thread, memory allocations can cause GC (use a library like Glide), use tools (Systrace for CPU, Hierarchical Viewer for information hierarchy, GPU profiling and overdraw))
        4. Touch latency = actual latency + perceived latency (users generally allow ~100ms)
        5. Memory: limit background service, use Subclass IntentService not Service, check memory usage by using ActivityManager.isLowRamDevice(), onTrimMemory() callbacks, use memory monitor tool on Android Studio
        6. Bitmaps: use proper size of images on the server side, use Glide
        7. Battery: primary consumers of battery screen, mobile network, inability to enter low power mode; avoid holding WakeLocks directly, let the system wake you (by using GCM, AlarmManager, use the new JobScheduler API for Android 5.0+, pre-fetch content by allowing fewer large downloads
        8. App architecture
      3. design guidelines: use app bar?
      4. case study by Jinkyoung Na from Plus X
        1. tested apps by using inbuilt testing tools within Android SDK
        2. implemented Glide which reduced AVG 90MB memory footprint to 40MB
        3. used GPU profiler to test memory usage on Android phones
        4. used Overdraw Debugger which changed from red color to green or transparent
        5. used hierarchy viewer
    2. personal takeaway: make file size smaller and use less battery when developing apps for 1B users

  1. Developing Games with Google (TI Chang, Developer Advocate)
    1. lesson
      1. Android TV
        1. uses the same API like Android
        2. follows TV Quality Guideline
        3. has Nearby Connections API (connect devices using the same Wi-Fi)
      2. Player Analytics
        1. use Google Play Game Services to improve your game by understanding player behavior and key metrics
        2. offering: manage targets, identify hotspots, understand players, and more
      3. Flat Buffers
      4. YouTube
        1. question: how to deal with new user acquisition and retention due to increased acquisition cost
        2. solution: try YouTube’s gaming community
          1. use YouTube API: e.g.record game e.g. FIFA
          2. live screencast e.g. elgato’s live streaming game play to capture both player and game play
          3. YouTube Direct Lite
          4. YouTube Player API for tutorials
      5. Google Cast
        1. A Google Cast game enables multi screen gameplay between mobile devices and televisions
        2. 2 types: cast-enabled, cast-required
        3. controller: accelerometer, no-look controls, virtual controller, target manipulation
        4. think whether help users focus on TV or mobile screen
    2. personal takeaway: implement newest APIs and tools (Player Analytics) to improve service by tracking users

  1. Building Realtime Apps with Firebase (MG Choi, Korea Sales Engineering, Cloud Platform; Ian Lewis, Developer Advocate)
    1. lesson
      1. background: connected multi-devices
      2. mobile is different
        1. variable UI constraints
        2. devices are personal and always on
        3. networks are unreliable and apps need to work offline
      3. mobile challenges
        1. apps must work on multiple platforms
        2. users expect real-time updates: e.g. Uber users expect real-time feedback
        3. sometimes connected devices mean distributed state
        4. large number of devices requires massive scale
      4. Realtime Mobile Development with Firebase
        1. Firebase: realtime application platform
        2. benefit: realtime database, user management, file hosting
          1. realtime database
            1. NoSQL, JSON (hierarchical data structure) database
            2. etc.
    2. personal takeaway: consider using Firebase for realtime app development?

  1. Launchpad (Uttam Tripathi, Program Manager, Startup Launch-Developer Platform)
    1. lesson
      1. Launchpad program help startups through mentoring and providing resource to succeed
      2. two stage benefits start stage and scale stage
    2. personal takeaway: take advantage of available resources here

  1. Play Policy Update (Boram Kim, Android Developer Support, Google Play)
    1. lesson
      1. all about policy
        1. Play store direction, policy: safety, high quality, consistency?
        2. example
          1. spam: e.g. keyword
          2. branding
          3. ad: e.g. ad outside of app (unmatching between ad and app content level)
          4. IP: music source
          5. privacy
          6. exposure
          7. spyware
        3. IARC (international age rating coalition)- updated class
          1. contact IARC if you keep constantly receiving undesirable rating in taking survey
          2. app category: the main purpose of app (e.g. game if the app has 55% game and 45% social)
          3. retake survey only when the app update affecting contents level
          4. don’t worry about UGC and ad contents level
          5. answer survey questions conservatively to receive desirable rating
      2. Developer support, how & what?
        1. policy and other support channel: visit or
        2. tips to know for developers: transfer app ownership when needed, taking 24 hours if target country is well set, 70% goes to developer, DDA update (user support responsibility: e.g. Q&A and push-back, answer to user within 3 days, to Google within 24 hours)
    2. personal takeaway: know policy updates

  1. An Introduction to Android TV (Developing Apps for Android TV) (Chansuk Yang, Developer Advodate)
    1. lesson
      1. concept
        1. casual: consider users whose intelligence got lowered (e.g. easy to understand)
        2. cinematic: contents need to be the center, make icons’ size bigger
        3. simple: UX (e.g. remote controller)
      2. same and difference
        1. same: API, etc. of Android
        2. difference: no touch screen, bigger screen with different resolution, no camera, no GPS, no microphone, no NFC, no telephony, no gamepad?
      3. key feature
        1. leanback UI (10 feet screen)
        2. leanback support library
        3. focus on contents not unique UIs
        4. Recommendation: Recommendation Row is open to developers (e.g. app -> Notification Manager -> Leanback Launcher)
        5. Search: create Search Provider (esp. query method)-> SearchManager Columns- Cursor
      4. Android TV compatibility
        1. App banners: localize (l10n) banner message
      5. Case by Yooii Studios by Wooseong Kim
    2. personal takeaway: adapt UI and more for Android TV

  1. An Introduction to Deep Linking and App Indexing (Don Kim, Partner Technology Manager; Sofia Andrianakou, Strategic Partner Development Manager)
    1. lesson
      1. consider how you would want your users discover your app on Google Search and list up in the description on Google Play
      2. great for acquiring new users and re-engage existing users
      3. success case
        1. Etsy: 11.6 increase in referrals on daily traffic, 200% increase in impressions
        2. The Guardian: CTR 4.5% increase in clicks
        3. MangoPlate- 7% increase in DAU
      4. search completion: providing app suggestion along with search suggestions
      5. grow users via app installs
      6. how to index your app (
        1. step #1: add deep link support to app
        2. step #2: verify your website in connection with app
        3. step #3: publish app deep links (website markup sitemap)
        4. then, indexing starts and will display results in 1-2 weeks
        5. additional step: check for errors and status
    2. personal takeaway: follow through steps for App Indexing

  1. What targeting can do to your app/game? (Siyoung Choi, AdMob Industry Manager)
    1. lesson:
      1. mobile business platform (ad network, execution, analytics), help targeting
      2. targeting: connect between advertiser and publisher
        1. type: e.g. age, gender, region, device, etc.
        2. example:
          1. improving usability (e.g. Nekoatsume asking users whether to see ads) -> increased CTR
    2. personal takeaway: use proper ad strategy for various user groups