How we work in an effective team at AppFoundry.
Slides from the 'Working in an effective team' session at The Big Android BBQ Europe in Amsterdam (12 November 2015) & Droidcon Italy (April 2015)
Working in aneffective team
View Slide
Your hostFilip MaelbranckeConsultant @ AppFoundryfi[email protected]@fmaelbrancke
About usConsulting Staffing In-house projects
AppFoundry
About us
?
Goals
Communication
CommunicationHumans = socialLots of interaction
CommunicationTeam discussions
CommunicationFree to express(both ideas and feelings)
Library 1 Library 2Feature ✔ ✖Capability ✔ ✔Characteristic ✔ ✔Option ✔ ✔Choice ✖ ✔… ✖ ✔… ✔ ✔… ✔ ✔
Trust & RespectMakes the team autonomous
Hire as a team
Technical debt
This is how I'll explain "no time for big refactoring,let's do business value" to the business.
Atmosphere
How we work1 2345REQUIREMENTS PLAN SHOWCASESTATUS REPORTSEVALUATEBACKLOG 2 WEEK SPRINTS SPRINT DEMODAILY STANDUPRETROSPECTIVE
Minimum viable product
–H. Alan StevensBuilding the right thing is always more important thanbuilding it right.
Scrum1 2345REQUIREMENTS PLAN SHOWCASESTATUS REPORTSEVALUATEBACKLOG 2 WEEK SPRINTS SPRINT DEMODAILY STANDUPRETROSPECTIVE
Team demoRetrospective
Prototyping
Whiteboard
Paper prototyping
User feedback
A/B testing
Code reviewDetect problems early.Learn from someone else’s code.
Pair programming
Testing strategy
ConfidenceRefactor possibleCode handoverFix bugs once
Test Driven DevelopmentREDFAILING TESTGREENFIXED TESTBLUEREFACTOR
AutomaticOn every commit / scheduledUnit testsUI integration testswith Espresso
Remote
Creating software = complexContinuousintegration Ensure qualityAutomatehigh-quality, robust and reliable appstedious / error-prone activities
Reduce riskContinuousintegration Reduce overheadQuality Assurance
Automate all the things
Continuous integration1234CODE & COMMIT BUILD & CHECKCI PICKUPREPORT RESULTS
Build pipelineCheckout /compileUnit testsTestcoverageCodeanalysisCreatedeployableartifactDeploy forautomaticQA testTriggerautomatedQA stage
Auto publishDeliveryPromote APK to productionAutomateGoogle Play alpha / betawithout additional tools
ContinuousDelivery
Continuous delivery / deliverableContinuousDeliveryDeliverable Push on demandConfidenceof being deployable
Feature-based deploymentA successful Git branching modelhttp://nvie.com/posts/a-successful-git-branching-model/
Internal QATestingInternal alpha testing programBeta testing / staged rolloutof being deployable
Metrics
Dashboard
Dashing
Panic…
Questions?Filip MaelbranckeConsultant @ AppFoundryfi[email protected]@fmaelbrancke
Thank you!