On the tactical side, presents the best ways of getting help with Android application development. On the strategic side, presents issues OEMs face when adopting Android and what to look for when finding somebody to help overcome those issues. From a May 2010 presentation in Lund, Sweden.
2. Overview
• The Android ecosystem
• Getting assistance for engineers
• Getting assistance for businesses
3. The Way It Was
• Proprietary mobile operating systems
• Few experts, all internal
• Low expectations from users
• No extensibility
4. The Age of Android
• Smartphones...
• ...and beyond
• Tablets
• TVs and set-top boxes
• Cars, etc.
5. The Good, The Bad, and the Ugly
• Good: More experts
• Bad: Higher expectations
• Ugly: More competition
6. 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
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.
12. 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
13. 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
15. 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
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 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
19. 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
20. 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)
21. 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
22. Tips for Asking Questions
• Patience is a Virtue
• Timing
• Groups, StackOverflow not immediate
• Easy on the “bumps”
• IRC real-time but perhaps limited
23. Tips for Asking Questions
• Patience is a Virtue
• Answers
• Not all answers are created equal, in
terms of quality
• Try to avoid being dogmatic
24. Tips for Asking Questions
• Follow Through
• StackOverflow: accept answers
• Groups/IRC: thank those who provide
good answers
25. 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
26. 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?
27. Device Firmware
• What You Need
• Targeted assistance in getting you past
driver issues, etc.
• Full “cradle to grave” assistance with
device development and manufacture
28. Device Firmware
• What You Should Look For
• Prior experience with altering the
firmware
• Full-scale support with the right
relationships, plus the Android expertise
29. 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
30. 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
31. Security Model
• What You Need
• Help in making Android enterprise-ready
• Remote wipe
• Usage monitoring
• Reduced end-user configurability
32. 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
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
• What You Need: the Android Market
• Pass the CTS
• Faithfully run third-party applications
• Work within “Google Experience”
limitations
36. 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
37. 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
38. 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
39. Open Source
• What You Need: clear understanding of
your obligations
• Kernel modifications (GPLv2)
• Contributions to Android open source
project (contribution agreement)
40. Open Source
• What You Should Look For
• OSS experience
• Legal
• Internal development
• Collaborative development expertise
41. 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
42. 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
43. All The Other Things...
• Revenue model
• Sales/marketing
• Distribution and channels
• Buzz (PR, social networks, etc.)
44. Summary
• Getting assistance has two ingredients
• Knowing what questions you should be
asking
• Knowing where to get the answers