Assistance With Android:
    Tactical to Strategic
    by Mark Murphy, CommonsWare
Overview

• The Android ecosystem
• Getting assistance for engineers
• Getting assistance for businesses
The Way It Was

• Proprietary mobile operating systems
 • Few experts, all internal
 • Low expectations from users
 • No extensibility
The Age of Android

• Smartphones...
• ...and beyond
 • Tablets
 • TVs and set-top boxes
 • Cars, etc.
The Good, The Bad, and the Ugly



  • Good: More experts
  • Bad: Higher expectations
  • Ugly: More competition
Flattening the Learning Curve


 • You need answers -- that’s
   understandable
 • More importantly, you need to climb the
   learning curve quickly
 • Outside assistance to flatten that curve
Tactical to Strategic

• Tactical: What engineers need to get their
  job done
• Strategic: What managers and executives
  need to make right decisions for Android
  adoption
• Spectrum between them, not polar states
Axes of Help
• Speed
 • Live vs. asynchronous
• Backing
 • Official, professional, community
• Cost
 • Free, paid
Android Google Groups

• SDK Development
 • android-beginners
 • android-developers
• Source Code/Platform Development
 • android-platform
 • android-porting
• All Moderated!
StackOverflow

• Posting Tips
 • Use #android tag
 • Provide a nice source listing – will be
    formatted
  • Include stack traces, screenshots, etc.
StackOverflow

• Interaction Tips
 • Unrelated questions: post new
 • Accept answers!
 • Use comments wisely
IRC
• Internet Relay Chat
 • irc.freenode.net, #android-dev channel
 • Monitored by real live Googlers!
 • Office hours
• Standard Netiquette
 • Don't barge in on a discussion – tough to
    follow
Contacting Google
• Not Easy
• Device Manufacturers: should already have
  channels established
• Big ISVs: probably already have ways to
  reach into Google
• Small ISVs: work with a device
  manufacturer
Miscellaneous Channels

• ForceClose
• Smaller community boards
• Android issue tracker
 • http://b.android.com
What Not To Do
• Direct Semi-Random Contact
 • Googlers
 • Other folk
• Expect Something for Nothing Always
 • More likely to timeanswers if you give
    answers from
                  get
                       to time
• Be Overly Abstract
Issue Reporting Tips
• Sample Code
 • Fragments at worst
 • Complete demonstration projects where
    possible
 • Outside of StackOverflow, consider using
    a code-paste site
Issue Reporting Tips
• Stack Traces
 • adb logcat, DDMS, DDMS perspective in
    Eclipse
 • Need the “Caused by” portion of trace
• Other Symptoms
 • Screenshots?
Tips for Asking Questions

• Choose Proper Question Level
 • Down-in-the-weeds
   • Good for very tactical questions
   • Only works if you are really
      comfortable with the material and are
      having some API difficulties
Tips for Asking Questions

• Choose Proper Question Level
 • High-level development approach
   • Better if this is an area you know little
      about
    • Allows others to contribute
      corresponding high-level advice
Tips for Asking Questions

• Tie Into Your Identity Strategy and Tactics
 • Public Disclosure
   • “Brand names” likely to get more help
   • May get incoming questions (e.g., device
      manufacturers)
Tips for Asking Questions
• Tie Into Your Identity Strategy and Tactics
 • Personal Email
   • Not recommended, particularly if you
      have a unique name
  • Unique Email
   • Best if you need to shroud your
      identity
Tips for Asking Questions

• Patience is a Virtue
 • Timing
   • Groups, StackOverflow not immediate
   • Easy on the “bumps”
   • IRC real-time but perhaps limited
Tips for Asking Questions

• Patience is a Virtue
 • Answers
   • Not all answers are created equal, in
      terms of quality
    • Try to avoid being dogmatic
Tips for Asking Questions


• Follow Through
 • StackOverflow: accept answers
 • Groups/IRC: thank those who provide
    good answers
Tips for Asking Questions

• Turnabout is Fair Play
 • Try to figure out how you can contribute
    back
   • In kind: answer questions from others
   • Other “returns on investment”
 • Pay it forward
Strategic Support

• More involved
 • Not just a question here or there
• Two key questions
 • What do you need?
 • What do you look for in assistance?
Device Firmware

• What You Need
 • Targeted assistance in getting you past
    driver issues, etc.
  • Full “cradle to grave” assistance with
    device development and manufacture
Device Firmware

• What You Should Look For
 • Prior experience with altering the
    firmware
 • Full-scale support with the right
    relationships, plus the Android expertise
Firmware Modifications
• What You Need
 • Help in creating custom UI layer (HTC
    Sense, MOTOBLUR, SE Rachael, etc.)
 • Help in modifying standard apps
 • Help in advancing Android proper
  • Example: dual camera support
Firmware Modifications

• What You Should Look For
 • Experience in working on the firmware
    outside of device drivers
 • Mobile UX expertise, if not supplied by
    you
Security Model

• What You Need
 • Help in making Android enterprise-ready
   • Remote wipe
   • Usage monitoring
   • Reduced end-user configurability
Security Model

• What You Should Look For
 • Deep ties to core Android dev team
 • Solution that has a chance of being widely
    adopted or incorporated into
    mainstream Android
App Preloads / Remixes

• What You Need
 • More apps than come with Android by
    default
 • Apps targeted to your particular market
    or usage model
App Preloads / Remixes
• What You Should Look For
 • Well-respected apps on the Android
    Market
   • For the apps
   • For the authors
 • Solid UX and experience to do more of
    the same
Google Acceptance

• What You Need: the Android Market
 • Pass the CTS
 • Faithfully run third-party applications
 • Work within “Google Experience”
    limitations
Google Acceptance

• What You Should Look For
 • Firms that have helped others build
    production devices that were granted the
    Android Market
 • Firms with good working relationships
    with Google
Alternative Markets

• What You Need
 • Way to capture revenue for you and your
    partners, instead of for Google and
    Google’s partners
 • Way to deal with not getting the Android
    Market
Alternative Markets
• What You Should Look For
 • Firms with existing markets or
    demonstrated market technology
   • Device portion is comparatively easy!
 • Firms demonstrating ability to recruit
    developers to list on their markets
Open Source

• What You Need: clear understanding of
  your obligations
 • Kernel modifications (GPLv2)
 • Contributions to Android open source
    project (contribution agreement)
Open Source

• What You Should Look For
 • OSS experience
   • Legal
   • Internal development
 • Collaborative development expertise
Developer Relations
• What You Need
 • Developers interested in creating apps
    that work well on your device
   • Unique hardware characteristics
 • Developers interested in creating apps
    that work well for your market
   • Specific target languages
Developer Relations

• What You Should Look For
 • Minimum: people with demonstrated
    ability to recruit, retain developer
    communities
 • Ideal: rock star = somebody whose name
    brings you credibility at grassroots level
All The Other Things...

• Revenue model
• Sales/marketing
• Distribution and channels
• Buzz (PR, social networks, etc.)
Summary

• Getting assistance has two ingredients
 • Knowing what questions you should be
    asking
 • Knowing where to get the answers
Contact Info

• http://commonsware.com
• mmurphy@commonsware.com
• http://commonsware.com/blog
• Twitter: commonsguy
• +1.484.350.4004

Assistance with Android: Tactical to Strategic

  • 1.
    Assistance With Android: Tactical to Strategic by Mark Murphy, CommonsWare
  • 2.
    Overview • The Androidecosystem • Getting assistance for engineers • Getting assistance for businesses
  • 3.
    The Way ItWas • Proprietary mobile operating systems • Few experts, all internal • Low expectations from users • No extensibility
  • 4.
    The Age ofAndroid • Smartphones... • ...and beyond • Tablets • TVs and set-top boxes • Cars, etc.
  • 5.
    The Good, TheBad, and the Ugly • Good: More experts • Bad: Higher expectations • Ugly: More competition
  • 6.
    Flattening the LearningCurve • You need answers -- that’s understandable • More importantly, you need to climb the learning curve quickly • Outside assistance to flatten that curve
  • 7.
    Tactical to Strategic •Tactical: What engineers need to get their job done • Strategic: What managers and executives need to make right decisions for Android adoption • Spectrum between them, not polar states
  • 8.
    Axes of Help •Speed • Live vs. asynchronous • Backing • Official, professional, community • Cost • Free, paid
  • 9.
    Android Google Groups •SDK Development • android-beginners • android-developers • Source Code/Platform Development • android-platform • android-porting • All Moderated!
  • 10.
    StackOverflow • Posting Tips • Use #android tag • Provide a nice source listing – will be formatted • Include stack traces, screenshots, etc.
  • 11.
    StackOverflow • Interaction Tips • Unrelated questions: post new • Accept answers! • Use comments wisely
  • 12.
    IRC • Internet RelayChat • irc.freenode.net, #android-dev channel • Monitored by real live Googlers! • Office hours • Standard Netiquette • Don't barge in on a discussion – tough to follow
  • 13.
    Contacting Google • NotEasy • Device Manufacturers: should already have channels established • Big ISVs: probably already have ways to reach into Google • Small ISVs: work with a device manufacturer
  • 14.
    Miscellaneous Channels • ForceClose •Smaller community boards • Android issue tracker • http://b.android.com
  • 15.
    What Not ToDo • Direct Semi-Random Contact • Googlers • Other folk • Expect Something for Nothing Always • More likely to timeanswers if you give answers from get to time • Be Overly Abstract
  • 16.
    Issue Reporting Tips •Sample Code • Fragments at worst • Complete demonstration projects where possible • Outside of StackOverflow, consider using a code-paste site
  • 17.
    Issue Reporting Tips •Stack Traces • adb logcat, DDMS, DDMS perspective in Eclipse • Need the “Caused by” portion of trace • Other Symptoms • Screenshots?
  • 18.
    Tips for AskingQuestions • Choose Proper Question Level • Down-in-the-weeds • Good for very tactical questions • Only works if you are really comfortable with the material and are having some API difficulties
  • 19.
    Tips for AskingQuestions • Choose Proper Question Level • High-level development approach • Better if this is an area you know little about • Allows others to contribute corresponding high-level advice
  • 20.
    Tips for AskingQuestions • Tie Into Your Identity Strategy and Tactics • Public Disclosure • “Brand names” likely to get more help • May get incoming questions (e.g., device manufacturers)
  • 21.
    Tips for AskingQuestions • Tie Into Your Identity Strategy and Tactics • Personal Email • Not recommended, particularly if you have a unique name • Unique Email • Best if you need to shroud your identity
  • 22.
    Tips for AskingQuestions • Patience is a Virtue • Timing • Groups, StackOverflow not immediate • Easy on the “bumps” • IRC real-time but perhaps limited
  • 23.
    Tips for AskingQuestions • Patience is a Virtue • Answers • Not all answers are created equal, in terms of quality • Try to avoid being dogmatic
  • 24.
    Tips for AskingQuestions • Follow Through • StackOverflow: accept answers • Groups/IRC: thank those who provide good answers
  • 25.
    Tips for AskingQuestions • Turnabout is Fair Play • Try to figure out how you can contribute back • In kind: answer questions from others • Other “returns on investment” • Pay it forward
  • 26.
    Strategic Support • Moreinvolved • Not just a question here or there • Two key questions • What do you need? • What do you look for in assistance?
  • 27.
    Device Firmware • WhatYou Need • Targeted assistance in getting you past driver issues, etc. • Full “cradle to grave” assistance with device development and manufacture
  • 28.
    Device Firmware • WhatYou Should Look For • Prior experience with altering the firmware • Full-scale support with the right relationships, plus the Android expertise
  • 29.
    Firmware Modifications • WhatYou Need • Help in creating custom UI layer (HTC Sense, MOTOBLUR, SE Rachael, etc.) • Help in modifying standard apps • Help in advancing Android proper • Example: dual camera support
  • 30.
    Firmware Modifications • WhatYou Should Look For • Experience in working on the firmware outside of device drivers • Mobile UX expertise, if not supplied by you
  • 31.
    Security Model • WhatYou Need • Help in making Android enterprise-ready • Remote wipe • Usage monitoring • Reduced end-user configurability
  • 32.
    Security Model • WhatYou Should Look For • Deep ties to core Android dev team • Solution that has a chance of being widely adopted or incorporated into mainstream Android
  • 33.
    App Preloads /Remixes • What You Need • More apps than come with Android by default • Apps targeted to your particular market or usage model
  • 34.
    App Preloads /Remixes • What You Should Look For • Well-respected apps on the Android Market • For the apps • For the authors • Solid UX and experience to do more of the same
  • 35.
    Google Acceptance • WhatYou Need: the Android Market • Pass the CTS • Faithfully run third-party applications • Work within “Google Experience” limitations
  • 36.
    Google Acceptance • WhatYou Should Look For • Firms that have helped others build production devices that were granted the Android Market • Firms with good working relationships with Google
  • 37.
    Alternative Markets • WhatYou Need • Way to capture revenue for you and your partners, instead of for Google and Google’s partners • Way to deal with not getting the Android Market
  • 38.
    Alternative Markets • WhatYou Should Look For • Firms with existing markets or demonstrated market technology • Device portion is comparatively easy! • Firms demonstrating ability to recruit developers to list on their markets
  • 39.
    Open Source • WhatYou Need: clear understanding of your obligations • Kernel modifications (GPLv2) • Contributions to Android open source project (contribution agreement)
  • 40.
    Open Source • WhatYou Should Look For • OSS experience • Legal • Internal development • Collaborative development expertise
  • 41.
    Developer Relations • WhatYou Need • Developers interested in creating apps that work well on your device • Unique hardware characteristics • Developers interested in creating apps that work well for your market • Specific target languages
  • 42.
    Developer Relations • WhatYou Should Look For • Minimum: people with demonstrated ability to recruit, retain developer communities • Ideal: rock star = somebody whose name brings you credibility at grassroots level
  • 43.
    All The OtherThings... • Revenue model • Sales/marketing • Distribution and channels • Buzz (PR, social networks, etc.)
  • 44.
    Summary • Getting assistancehas two ingredients • Knowing what questions you should be asking • Knowing where to get the answers
  • 45.
    Contact Info • http://commonsware.com •mmurphy@commonsware.com • http://commonsware.com/blog • Twitter: commonsguy • +1.484.350.4004