Upgrade to Pro — share decks privately, control downloads, hide ads and more …

From Zero to Hero: How to Get Your New Team up ...

Jorge Coca
September 16, 2016

From Zero to Hero: How to Get Your New Team up to Speed with Android

Starting a new Android app is always exciting: you have the opportunity to create an awesome app from zero... but it is also a lot of responsibility! Any step in the wrong direction might turn your new app into a disaster.
You need the right people on your team, you need the right technology and you need the proper setup.
Sounds easy, uh? Well... it's not! Many apps did not survive even this first step. Let me help you to identify the key elements to help your Android team succeed.

Jorge Coca

September 16, 2016
Tweet

More Decks by Jorge Coca

Other Decks in Technology

Transcript

  1. WindyCity DevCon 2016 | Jorge Coca FROM ZERO TO HERO

    HOW TO GET YOUR NEW TEAM UP TO SPEED WITH ANDROID
  2. WHAT’S THE KEY OF EVERY APP TO SUCCEED? • The idea

    • The right people • The right technology Page 2
  3. WHAT’S THE KEY OF EVERY APP TO SUCCEED? 85% 15%

    The Idea People Technology Page 6
  4. HOW DO WE START? THE TRIATHLON METAPHOR Page 8 • 

    Months of training •  Definition of goals •  Motivation •  Race preparation •  Packet pickup •  Prepare setup •  Swim •  Bike •  Run •  Enjoy!
  5. CAN WE APPLY THIS TO SOFTWARE DEVELOPMENT? Page 9 SPRINT

    -1 SPRINT 0 SPRINT 1+ (and so on…)
  6. SPRINT -1: THE BEGINNING OF EVERYTHING • Define your core values

    and culture • Define your MVP (Minimum Viable Product) • Define your hiring needs Page 12
  7. SPRINT -1: DEFINE YOUR CORE AND CULTURE VALUES • People will

    want to work with you because: • They share the company’s vision and believe in the same goals • They can see an opportunity to grow, personally and professionally Page 13
  8. SPRINT -1: DEFINE YOUR MVP (MINIMUM VIABLE PRODUCT) • It will

    be easier to get people on board • It will generate excitement • It will easier to explain your vision Page 14
  9. SPRINT -1: HOW TO DO AN INTERVIEW? • DON’T DISCRIMINATE! • Ask

    questions that are relevant to your business and the project • Ensure that the candidate is familiar with the latest trends in the platform • Make sure that the candidate will be a good fit in the team Page 17
  10. SPRINT -1: THE “JUNIOR” ROLE • Eager to learn! • Has a

    strong programming core knowledge • Understands the value of the team Page 18
  11. SPRINT -1: THE “SENIOR” ROLE • Brings expertise and experience to

    the team • Should be a mentor for the team • Always willing to • Learn • Listen and consider new ideas • Assume he/she is not always right Page 19
  12. SPRINT -1: THE DEFINITIVE GOAL • Exclude toxic people from the

    team • Enable paths for growing within the company • Training is key! Specially in the tech field, where there are changes constantly! Page 20
  13. SPRINT -1: THE DEFINITIVE GOAL ? J L ? Page

    21 Team Happiness Project Health
  14. SPRINT -1: THE TEAM “A group becomes a team when

    each member is sure enough of himself and his contribution to praise the skills of the others” Norman Shidle Page 22
  15. SPRINT 0: WHAT IS IT? • Decide an architecture pattern to

    follow • Start creating UI/UX documents • Define your coding standards and processes • Agree on what tools should be use in the initial setup • Create a high level backlog of the project Page 25
  16. SPRINT 0: DECIDE AN ARCHITECTURE PATTERN TO FOLLOW • Every Android

    app is “user-interface” driven, so the main patterns to be considered are: • MVC (Model View Controller) • MVP (Model View Presenter) • MVVM (Model View ViewModel) Page 26
  17. SPRINT 0: DECIDE AN ARCHITECTURE PATTERN TO FOLLOW THE COMMUNITY

    => MVP • Tons of tutorials explaining how to apply MVP for Android • Easier to understand GOOGLE => MVVM • Google released Data Binding as part of the Android core framework • Reduces the amount of code Page 27
  18. SPRINT 0: DECIDE AN ARCHITECTURE PATTERN TO FOLLOW “So, what’s

    the best architecture pattern? Which one should I pick?” Page 28
  19. SPRINT 0: DECIDE AN ARCHITECTURE PATTERN TO FOLLOW “It does

    not matter, there’s no right or wrong answer. They’re just different points of view to solve the same problem: how to build a UI-driven application. As a team, make an inform decision, learn the pattern and apply it. Don’t reinvent the wheel!” Page 29
  20. SPRINT 0: TESTING It’s 2016, testing should be out of

    the questions. Yes, test test TEST!!!! It is a way to catch mistakes, and ensure you don’t make the same mistake twice Page 32
  21. SPRINT 0: TESTING • The ultimate goal should be to test

    everything, but if you need to focus on something • Businees logic first • Then UI/UX testing Page 34
  22. SPRINT 0: DEPENDENCY INJECTION “Imagine a real factory in real

    life… is it a Vehicle responsible for creating its own Engine?” Page 39
  23. SPRINT 0: DEPENDENCY INJECTION & MOCKING • What if we need

    to test with an Engine that works? • What if we need to test with an Engine that does not work? • What if we need to test with that breaks half way there? • What if… Page 43
  24. SPRINT 0: INTERFACES ARE YOUR BEST FRIEND! • What if we

    need the same vehicle in three versions: • Combustion Engine • Hybrid • Full Electric Page 46
  25. SPRINT 0: CONTINUOUS INTEGRATION • Locally, before opening a pull request

    • Remotely, when you open a pull request • Sanity check: it does not hurt if you run your test after merging to “master” Page 52
  26. SPRINT 0: CONTINUOUS INTEGRATION Page 53 •  Self hosted • 

    Free •  Complex configuration •  Outdated UI •  Cloud based •  Paid •  Easy setup •  Nice UI
  27. SPRINT 0: CONTINUOUS INTEGRATION “No matter what, do the setup

    at the very beginning of the project. It will save you lots of headaches” Page 54
  28. SPRINT 0: LIBRARY VS. APP VS. PRODUCT FLAVOR VS. BUILD

    TYPE Need to support multiple APPS with similar functionality? LIBRARY Page 55
  29. SPRINT 0: LIBRARY VS. APP VS. PRODUCT FLAVOR VS. BUILD

    TYPE Every app needs to provide different variants? Free vs. Paid? Amazon vs. Play Store? PRODUCT FLAVOR! Page 56
  30. SPRINT 0: LIBRARY VS. APP VS. PRODUCT FLAVOR VS. BUILD

    TYPE Need to support DEV, QA and PROD environments? BUILD TYPE! Page 57
  31. SPRINT 0: LAST TIPS • Don’t reinvent the wheel • When choosing

    3rd party libraries, BETTER THINK TWICE! • Maintain coding standards Page 58
  32. SPRINT 0: LAST TIPS • Analytics, analytics, analytics! • Keep your certificates

    in a safe place! • Material Design • Prepare distribution channels to get early feedback • HockeyApp, Play Store Beta, Dropbox… Page 59
  33. SPRINT 0: TEST DEVICES • Don’t forget to get test devices

    • … and Samsung test devices • Because, you know, Samsung is “special” Page 62
  34. SPRINT 1+: TECHNICAL TIPS • Don’t forget what you’ve learned during

    Sprint -1 and Sprint 0 • Do & Review Pull Requests, no matter how small they are • If you see something broken, fix it, even if it is not “your code” Page 65
  35. SPRINT 1+: TEAM TIPS • Retrospective meetings must be constructive! • Address

    issues as soon as possible • Keep people motivated! • To say “thanks” it’s free ;) Page 66
  36. SPRINT 1+: PERSONAL TIPS • We’re humans and we make mistakes,

    accept it! • Be always humble • Recycle yourself! • Enjoy life outside work! Page 67