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

Working in an effective team at BABBQ 2015 & Droidcon Italy 2015

Working in an effective team at BABBQ 2015 & Droidcon Italy 2015

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)

Filip Maelbrancke

November 12, 2015
Tweet

More Decks by Filip Maelbrancke

Other Decks in Programming

Transcript

  1. Working in an
    effective team

    View full-size slide

  2. Your host
    Filip Maelbrancke
    Consultant @ AppFoundry
    [email protected]
    @fmaelbrancke

    View full-size slide

  3. About us
    Consulting Staffing In-house projects

    View full-size slide

  4. AppFoundry
    appfoundry.be

    View full-size slide

  5. Communication

    View full-size slide

  6. Communication
    Humans = social
    Lots of interaction

    View full-size slide

  7. Communication
    Team discussions

    View full-size slide

  8. Communication
    Free to express
    (both ideas and feelings)

    View full-size slide

  9. Library 1 Library 2
    Feature ✔ ✖
    Capability ✔ ✔
    Characteristic ✔ ✔
    Option ✔ ✔
    Choice ✖ ✔
    … ✖ ✔
    … ✔ ✔
    … ✔ ✔

    View full-size slide

  10. Communication

    View full-size slide

  11. Trust & Respect
    Makes the team autonomous

    View full-size slide

  12. Hire as a team

    View full-size slide

  13. Technical debt

    View full-size slide

  14. This is how I'll explain "no time for big refactoring,
    let's do business value" to the business.

    View full-size slide

  15. How we work
    1 2
    3
    4
    5
    REQUIREMENTS PLAN SHOWCASE
    STATUS REPORTS
    EVALUATE
    BACKLOG 2 WEEK SPRINTS SPRINT DEMO
    DAILY STANDUP
    RETROSPECTIVE

    View full-size slide

  16. Minimum viable product

    View full-size slide

  17. –H. Alan Stevens
    Building the right thing is always more important than
    building it right.

    View full-size slide

  18. Scrum
    1 2
    3
    4
    5
    REQUIREMENTS PLAN SHOWCASE
    STATUS REPORTS
    EVALUATE
    BACKLOG 2 WEEK SPRINTS SPRINT DEMO
    DAILY STANDUP
    RETROSPECTIVE

    View full-size slide

  19. Team demo
    Retrospective

    View full-size slide

  20. Paper prototyping

    View full-size slide

  21. User feedback

    View full-size slide

  22. Code review
    Detect problems early.
    Learn from someone else’s code.

    View full-size slide

  23. Pair programming

    View full-size slide

  24. Testing strategy

    View full-size slide

  25. Confidence
    Refactor possible
    Code handover
    Fix bugs once

    View full-size slide

  26. Test Driven Development
    RED
    FAILING TEST
    GREEN
    FIXED TEST
    BLUE
    REFACTOR

    View full-size slide

  27. Automatic
    On every commit / scheduled
    Unit tests
    UI integration tests
    with Espresso

    View full-size slide

  28. Creating software = complex
    Continuous
    integration Ensure quality
    Automate
    high-quality, robust and reliable apps
    tedious / error-prone activities

    View full-size slide

  29. Reduce risk
    Continuous
    integration Reduce overhead
    Quality Assurance

    View full-size slide

  30. Automate all the things

    View full-size slide

  31. Continuous integration
    1
    2
    3
    4
    CODE & COMMIT BUILD & CHECK
    CI PICKUP
    REPORT RESULTS

    View full-size slide

  32. Build pipeline
    Checkout /
    compile
    Unit tests
    Test
    coverage
    Code
    analysis
    Create
    deployable
    artifact
    Deploy for
    automatic
    QA test
    Trigger
    automated
    QA stage

    View full-size slide

  33. Auto publish
    Delivery
    Promote APK to production
    Automate
    Google Play alpha / beta
    without additional tools

    View full-size slide

  34. Continuous
    Delivery

    View full-size slide

  35. Continuous delivery / deliverable
    Continuous
    Delivery
    Deliverable Push on demand
    Confidence
    of being deployable

    View full-size slide

  36. Feature-based deployment
    A successful Git branching model
    http://nvie.com/posts/a-successful-git-branching-model/

    View full-size slide

  37. Internal QA
    Testing
    Internal alpha testing program
    Beta testing / staged rollout
    of being deployable

    View full-size slide

  38. Questions?
    Filip Maelbrancke
    Consultant @ AppFoundry
    [email protected]
    @fmaelbrancke

    View full-size slide