SlideShare une entreprise Scribd logo
1  sur  39
Ancestry Android Developer
Skills, Techniques, and Patterns
because it’s not all about the code
About Ancestry
gest provider of family history and personal DNA testing, harnessing the information fou
enetics and health history to help people gain a new level of understanding about their
n paying subscribers across its family history websites and approximately 1.2 million D
abase. Since 1996, more than 16 billion records have been added, and users have crea
on the Ancestry flagship site and its affiliated international websites. Ancestry offers a s
Archives, Fold3, Newspapers.com and AncestryDNA sold by its subsidiary, Ancestry.c
the AncestryHealth product, offered by its subsidiary AncestryHealth.com, LLC.
·
e than 1,300 employees located around the world, with 1,000 employees in Utah; 175 e
Francisco, California and approximately 70 employees in Dublin, Ireland.
A day in the life at Ancestry
• Let’s take a stroll…
Morning time
• Get a drink, put your headphones on
• Time to grab a story
• Sprints
• Agile Manifesto
Story
• Yikes. The feature in the story is bigger than we sized it
• “Build or buy”
• Third party libraries
• How to choose?
How to find libraries
• Primarily
• Git hub - codepath/android_guides
• android-arsenal.com
• Secondarily
• Google it…
• Github search
How to choose libraries
• Who developed it?
• Google, Square, Jake Warton
• Big names (Facebook - flatbuffers)
• How complex is it?
• Do other developers respond to it at stackoverflow? Reddit?
• Github… How many stargazers? When last updated?
Putting out fires
• Embedded QA finds a nasty bug
• Is it in the store build?
• Check Crashlytics (fabric.io)
It’s a bad one :(
• Bug is in the store build and crashlytics shows it is widespread
• Gotta halt work on the story. You created a feature branch right?
• git flow (Thank you Vincent Driessen)
• NPE (Maybe Kotlin for the next app)
• Fix or Bandaid?
Bandaid it!
• Get it stop crashing for the users now
• Make a new bug to get to the bottom of it later
No! Fix it!
• Geez, you want to be a good engineer don’t you?
• Variables include
• Time
• Team
Get some more eyes on it
• You made a change
• Can’t just check it in to the Master, that’s sacred
• Even if you really want to
• Get it on it’s own branch
• Have other devs inspect it first
• Then merge!
Make a new build
• Build machine makes a new build for the store
• QA gets their hands on it and tests your changes
• Thumbs up or down
• Inform Project Manager
• She’s sitting between you and your users
Lunch!
• It’s actually important
• Solo if your in the groove or really busy
• Shaky Leaf cafe (soon to get Pizza oven!)
• Otherwise hang with team and talk shop
• Well ok, maybe you can talk about other stuff too
Lunch++
• Ping pong
• Foosball
• Yoga
• Back massages
• Soccer
Back to the story
• I’ve added a third party library that’s going to save me some time!
Huzzah!
• But now I’m faced with a design decision
• Material Design Pattern
• UX Designer
• Refactor some other stuff around the area you are working in
Patterns
• Minimal disruption
• Use the pattern that is already there
• If it needs refactoring, think about the consequences of doing it
now
• Easy? Go ahead
• Not so easy? Make a tech story
Design Patterns
• Keep you ears open
• Some patterns in Java are anti-patterns in Android
• Factory
• Singleton (not as bad as you think!)
• Adapter
• Iterator
• Observer
Think about testing
• QA will love you
• Unit tests
• JUnit
• Dagger
• Save a lot of headache
• FORCE yourself to do them
“So how is it going?”
• PM wants to see how the work is progressing
• May want to head him off at the pass
• Better to get input as soon as you make some headway
• Law - All changes are make to handle the further they are away
from the end user
Story created In Progress Almost Done After merging
And don’t be like this
Backend API
• The story needs some more data from the backend
• REST
• Documentation is either old, bad, or nonexistent
• What to do?
Collaboration
• Agile Manifesto - “The most efficient and effective method of conveying
information to and within a development team is face-to-face conversation.”
• Feature Teams vs. Core Teams
• Embedded Backend/UX/QA/PM
• Division of Labor
• See what the iOS team has done!
• Learn a little Objective-C and Swift
Your not just Android
• You are mobile!
• Radicalized Fanboyism is bad!
Collaborate
• Break out of the “introverted” stereotype
• Not good for you
• Not good for the company
• Don’t spin your wheels. Not getting it? Ask!
Take a break
• Pay the cat tax
• Videos
• Conference
• Performance Patterns
• Design Patterns
Head to the meeting
• PM has a list of cool features he wants in
• Size the stories
• Fibonacci numbers
• Myth of the man-hour
Wrap it up
• Put finishing touches
• Write up the test case
• Make it good one. No half-asses. Think edge cases
• Check it in, make a pull request
• Mark it (Target Process) and let QA take over
Go home.
• Do something else
• Dig into something you ran into that day you didn’t fully understand
• Make a list of these
Strange Days
It’s Thursday! Tech day!
• Code rot, technical debt
• Tech story
• I wanna do <xyz>
Super Huge Refactors
• Suck in some help from the feature teams
• Cooperation with other PM’s
• Tech days for weeks
• Test! Test! Test!
FedEx Days
• You got 24 hours to deliver
Mobile Hack-a-thon
• Like FedEx Days but you get to sleep at night
• Collaboration
Ancestry Engineers Conference
• 2 Days every summer
• San Fran, Ireland, UK, Germany
• Free shirt!
• Can do your own presentation
• Get to stand up and rant if you want
• Play time
In Conclusion
• Skills
• Android SDK, Java, Third-party libs, JSON, SQL
• Communication/Collaboration, Agile Processes
• Techniques
• Check with the team and PM’s as you go
• Testing
• Patterns
• Follow what Google has already set as an example
• Passion!
• Carl Hickman
• chickman@ancestry.com
• @happylrac

Contenu connexe

Tendances

Pair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an IdeaPair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an Idea
Scott Gilbert
 
Test Driven Design by Jonas Auken
Test Driven Design by Jonas AukenTest Driven Design by Jonas Auken
Test Driven Design by Jonas Auken
agilencr
 

Tendances (20)

Devops in with the old, in with the new
Devops   in with the old, in with the newDevops   in with the old, in with the new
Devops in with the old, in with the new
 
Pair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an IdeaPair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an Idea
 
Solr pattern
Solr patternSolr pattern
Solr pattern
 
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 KeynoteReal World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
 
Start to finish - Building Games Step-by-Step
Start to finish - Building Games Step-by-StepStart to finish - Building Games Step-by-Step
Start to finish - Building Games Step-by-Step
 
Flowcon2013 - Virtuous Cycles of Velocity: What I Learned About Going Fast at...
Flowcon2013 - Virtuous Cycles of Velocity: What I Learned About Going Fast at...Flowcon2013 - Virtuous Cycles of Velocity: What I Learned About Going Fast at...
Flowcon2013 - Virtuous Cycles of Velocity: What I Learned About Going Fast at...
 
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupMinimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
 
Building a digital business
Building a digital business Building a digital business
Building a digital business
 
DevopsCon Munich - Keynote - Devops State of the Union
DevopsCon Munich - Keynote - Devops State of the UnionDevopsCon Munich - Keynote - Devops State of the Union
DevopsCon Munich - Keynote - Devops State of the Union
 
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
 
Using Design Methods to Establish Healthy DevOps Practices - Aras Bilgen
Using Design Methods to Establish Healthy DevOps Practices - Aras BilgenUsing Design Methods to Establish Healthy DevOps Practices - Aras Bilgen
Using Design Methods to Establish Healthy DevOps Practices - Aras Bilgen
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT students
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDD
 
How to Use HipChat to Collaborate and Build Culture - Matthew Weinberg
How to Use HipChat to Collaborate and Build Culture - Matthew WeinbergHow to Use HipChat to Collaborate and Build Culture - Matthew Weinberg
How to Use HipChat to Collaborate and Build Culture - Matthew Weinberg
 
Heidi Araya - XBOSoft Webinar Guest Speaker - Working with Remote Agile Teams
Heidi Araya - XBOSoft Webinar Guest Speaker - Working with Remote Agile TeamsHeidi Araya - XBOSoft Webinar Guest Speaker - Working with Remote Agile Teams
Heidi Araya - XBOSoft Webinar Guest Speaker - Working with Remote Agile Teams
 
Developers, developers, developers, developers...
Developers, developers, developers, developers...Developers, developers, developers, developers...
Developers, developers, developers, developers...
 
The Importance of Culture: Building and Sustaining Effective Engineering Org...
The Importance of Culture:  Building and Sustaining Effective Engineering Org...The Importance of Culture:  Building and Sustaining Effective Engineering Org...
The Importance of Culture: Building and Sustaining Effective Engineering Org...
 
Hector - O melhor amigo do Homem também entende de Zabbix
Hector - O melhor amigo do Homem também entende de ZabbixHector - O melhor amigo do Homem também entende de Zabbix
Hector - O melhor amigo do Homem também entende de Zabbix
 
Test Driven Design by Jonas Auken
Test Driven Design by Jonas AukenTest Driven Design by Jonas Auken
Test Driven Design by Jonas Auken
 

En vedette

RESUME_RHOWTON_02FEB2017
RESUME_RHOWTON_02FEB2017RESUME_RHOWTON_02FEB2017
RESUME_RHOWTON_02FEB2017
Roza Howton
 
Private Cloud with Raspberry Pi
Private Cloud with Raspberry PiPrivate Cloud with Raspberry Pi
Private Cloud with Raspberry Pi
Laurent Declercq
 

En vedette (20)

MediaPackage
MediaPackage MediaPackage
MediaPackage
 
Presentación2
Presentación2Presentación2
Presentación2
 
Pitch proposal
Pitch proposalPitch proposal
Pitch proposal
 
Oil Spill Simulation near The Red Sea Coast using The Random Walk Technique
Oil Spill Simulation near The Red Sea Coast using The Random Walk TechniqueOil Spill Simulation near The Red Sea Coast using The Random Walk Technique
Oil Spill Simulation near The Red Sea Coast using The Random Walk Technique
 
Anpaveco,S.A.
Anpaveco,S.A.Anpaveco,S.A.
Anpaveco,S.A.
 
Resume / CV
Resume / CVResume / CV
Resume / CV
 
RESUME_RHOWTON_02FEB2017
RESUME_RHOWTON_02FEB2017RESUME_RHOWTON_02FEB2017
RESUME_RHOWTON_02FEB2017
 
p850-ries
p850-riesp850-ries
p850-ries
 
Mb0044 production and operation management
Mb0044 production and operation managementMb0044 production and operation management
Mb0044 production and operation management
 
Organigramas.
Organigramas.Organigramas.
Organigramas.
 
İnovatif Kimya Dergisi Sayı-19
İnovatif Kimya Dergisi Sayı-19İnovatif Kimya Dergisi Sayı-19
İnovatif Kimya Dergisi Sayı-19
 
Script false image montage
Script false image montage Script false image montage
Script false image montage
 
Nonprofit executive compensation - Part 1
Nonprofit executive compensation - Part 1Nonprofit executive compensation - Part 1
Nonprofit executive compensation - Part 1
 
Asignacion 5 termodinamica
Asignacion 5 termodinamicaAsignacion 5 termodinamica
Asignacion 5 termodinamica
 
NEHF Happy, Healthy, at Home symposium 100117 Workshop 4 - Evaluating teams...
NEHF Happy, Healthy, at Home symposium 100117   Workshop 4 - Evaluating teams...NEHF Happy, Healthy, at Home symposium 100117   Workshop 4 - Evaluating teams...
NEHF Happy, Healthy, at Home symposium 100117 Workshop 4 - Evaluating teams...
 
Otek crm destek
Otek crm destekOtek crm destek
Otek crm destek
 
Mk0017 e-marketing
Mk0017 e-marketingMk0017 e-marketing
Mk0017 e-marketing
 
Private Cloud with Raspberry Pi
Private Cloud with Raspberry PiPrivate Cloud with Raspberry Pi
Private Cloud with Raspberry Pi
 
Ginnastica Estetica
Ginnastica EsteticaGinnastica Estetica
Ginnastica Estetica
 
Pm0015 quantitaive methods in project management
Pm0015 quantitaive methods in project managementPm0015 quantitaive methods in project management
Pm0015 quantitaive methods in project management
 

Similaire à Android Developer Skills, Techniques, and Patterns

Going Remote: User experiences at a distance
Going Remote: User experiences at a distanceGoing Remote: User experiences at a distance
Going Remote: User experiences at a distance
linoleumjet
 
Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011
Brian LeRoux
 

Similaire à Android Developer Skills, Techniques, and Patterns (20)

Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys
 
Django production
Django productionDjango production
Django production
 
Dancing for a product release
Dancing for a product releaseDancing for a product release
Dancing for a product release
 
What is devops
What is devopsWhat is devops
What is devops
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011
 
Why do mobile projects (still) fail - September 2014 edition
Why do mobile projects (still) fail - September 2014 editionWhy do mobile projects (still) fail - September 2014 edition
Why do mobile projects (still) fail - September 2014 edition
 
DevOps Year One
DevOps Year OneDevOps Year One
DevOps Year One
 
How pair programming can strengthen teams
How pair programming can strengthen teamsHow pair programming can strengthen teams
How pair programming can strengthen teams
 
Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2
 
Become Efficient or Die: The Story of BackType
Become Efficient or Die: The Story of BackTypeBecome Efficient or Die: The Story of BackType
Become Efficient or Die: The Story of BackType
 
Get lean tutorial
Get lean tutorialGet lean tutorial
Get lean tutorial
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process
 
Nonprofit Must Have Technology Tools & Tricks
Nonprofit Must Have Technology Tools & TricksNonprofit Must Have Technology Tools & Tricks
Nonprofit Must Have Technology Tools & Tricks
 
Devops Landscape
Devops LandscapeDevops Landscape
Devops Landscape
 
Emperors new clothes_jab
Emperors new clothes_jabEmperors new clothes_jab
Emperors new clothes_jab
 
Going Remote: User experiences at a distance
Going Remote: User experiences at a distanceGoing Remote: User experiences at a distance
Going Remote: User experiences at a distance
 
Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011
 
Customer Development Fast Protyping
Customer Development Fast ProtypingCustomer Development Fast Protyping
Customer Development Fast Protyping
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Agile tour 2016 final
Agile tour 2016 finalAgile tour 2016 final
Agile tour 2016 final
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Android Developer Skills, Techniques, and Patterns

  • 1. Ancestry Android Developer Skills, Techniques, and Patterns because it’s not all about the code
  • 2. About Ancestry gest provider of family history and personal DNA testing, harnessing the information fou enetics and health history to help people gain a new level of understanding about their n paying subscribers across its family history websites and approximately 1.2 million D abase. Since 1996, more than 16 billion records have been added, and users have crea on the Ancestry flagship site and its affiliated international websites. Ancestry offers a s Archives, Fold3, Newspapers.com and AncestryDNA sold by its subsidiary, Ancestry.c the AncestryHealth product, offered by its subsidiary AncestryHealth.com, LLC. · e than 1,300 employees located around the world, with 1,000 employees in Utah; 175 e Francisco, California and approximately 70 employees in Dublin, Ireland.
  • 3. A day in the life at Ancestry • Let’s take a stroll…
  • 4. Morning time • Get a drink, put your headphones on • Time to grab a story • Sprints • Agile Manifesto
  • 5. Story • Yikes. The feature in the story is bigger than we sized it • “Build or buy” • Third party libraries • How to choose?
  • 6. How to find libraries • Primarily • Git hub - codepath/android_guides • android-arsenal.com • Secondarily • Google it… • Github search
  • 7. How to choose libraries • Who developed it? • Google, Square, Jake Warton • Big names (Facebook - flatbuffers) • How complex is it? • Do other developers respond to it at stackoverflow? Reddit? • Github… How many stargazers? When last updated?
  • 8. Putting out fires • Embedded QA finds a nasty bug • Is it in the store build? • Check Crashlytics (fabric.io)
  • 9. It’s a bad one :( • Bug is in the store build and crashlytics shows it is widespread • Gotta halt work on the story. You created a feature branch right? • git flow (Thank you Vincent Driessen) • NPE (Maybe Kotlin for the next app) • Fix or Bandaid?
  • 10. Bandaid it! • Get it stop crashing for the users now • Make a new bug to get to the bottom of it later
  • 11. No! Fix it! • Geez, you want to be a good engineer don’t you? • Variables include • Time • Team
  • 12. Get some more eyes on it • You made a change • Can’t just check it in to the Master, that’s sacred • Even if you really want to • Get it on it’s own branch • Have other devs inspect it first • Then merge!
  • 13. Make a new build • Build machine makes a new build for the store • QA gets their hands on it and tests your changes • Thumbs up or down • Inform Project Manager • She’s sitting between you and your users
  • 14. Lunch! • It’s actually important • Solo if your in the groove or really busy • Shaky Leaf cafe (soon to get Pizza oven!) • Otherwise hang with team and talk shop • Well ok, maybe you can talk about other stuff too
  • 15. Lunch++ • Ping pong • Foosball • Yoga • Back massages • Soccer
  • 16. Back to the story • I’ve added a third party library that’s going to save me some time! Huzzah! • But now I’m faced with a design decision • Material Design Pattern • UX Designer • Refactor some other stuff around the area you are working in
  • 17. Patterns • Minimal disruption • Use the pattern that is already there • If it needs refactoring, think about the consequences of doing it now • Easy? Go ahead • Not so easy? Make a tech story
  • 18. Design Patterns • Keep you ears open • Some patterns in Java are anti-patterns in Android • Factory • Singleton (not as bad as you think!) • Adapter • Iterator • Observer
  • 19. Think about testing • QA will love you • Unit tests • JUnit • Dagger • Save a lot of headache • FORCE yourself to do them
  • 20. “So how is it going?” • PM wants to see how the work is progressing • May want to head him off at the pass • Better to get input as soon as you make some headway • Law - All changes are make to handle the further they are away from the end user
  • 21. Story created In Progress Almost Done After merging
  • 22. And don’t be like this
  • 23. Backend API • The story needs some more data from the backend • REST • Documentation is either old, bad, or nonexistent • What to do?
  • 24. Collaboration • Agile Manifesto - “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” • Feature Teams vs. Core Teams • Embedded Backend/UX/QA/PM • Division of Labor • See what the iOS team has done! • Learn a little Objective-C and Swift
  • 25. Your not just Android • You are mobile! • Radicalized Fanboyism is bad!
  • 26.
  • 27. Collaborate • Break out of the “introverted” stereotype • Not good for you • Not good for the company • Don’t spin your wheels. Not getting it? Ask!
  • 28. Take a break • Pay the cat tax • Videos • Conference • Performance Patterns • Design Patterns
  • 29. Head to the meeting • PM has a list of cool features he wants in • Size the stories • Fibonacci numbers • Myth of the man-hour
  • 30. Wrap it up • Put finishing touches • Write up the test case • Make it good one. No half-asses. Think edge cases • Check it in, make a pull request • Mark it (Target Process) and let QA take over
  • 31. Go home. • Do something else • Dig into something you ran into that day you didn’t fully understand • Make a list of these
  • 33. It’s Thursday! Tech day! • Code rot, technical debt • Tech story • I wanna do <xyz>
  • 34. Super Huge Refactors • Suck in some help from the feature teams • Cooperation with other PM’s • Tech days for weeks • Test! Test! Test!
  • 35. FedEx Days • You got 24 hours to deliver
  • 36. Mobile Hack-a-thon • Like FedEx Days but you get to sleep at night • Collaboration
  • 37. Ancestry Engineers Conference • 2 Days every summer • San Fran, Ireland, UK, Germany • Free shirt! • Can do your own presentation • Get to stand up and rant if you want • Play time
  • 38. In Conclusion • Skills • Android SDK, Java, Third-party libs, JSON, SQL • Communication/Collaboration, Agile Processes • Techniques • Check with the team and PM’s as you go • Testing • Patterns • Follow what Google has already set as an example • Passion!
  • 39. • Carl Hickman • chickman@ancestry.com • @happylrac