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 Slide

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

    View Slide

  3. About us
    Consulting Staffing In-house projects

    View Slide

  4. AppFoundry
    appfoundry.be

    View Slide

  5. About us

    View Slide

  6. View Slide

  7. ?

    View Slide

  8. Goals

    View Slide

  9. Communication

    View Slide

  10. Communication
    Humans = social
    Lots of interaction

    View Slide

  11. Communication
    Team discussions

    View Slide

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

    View Slide

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

    View Slide

  14. Communication

    View Slide

  15. Trust & Respect
    Makes the team autonomous

    View Slide

  16. Hire as a team

    View Slide

  17. Technical debt

    View Slide

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

    View Slide

  19. Atmosphere

    View Slide

  20. View Slide

  21. View Slide

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

    View Slide

  23. Minimum viable product

    View Slide

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

    View Slide

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

    View Slide

  26. View Slide

  27. Team demo
    Retrospective

    View Slide

  28. Prototyping

    View Slide

  29. Whiteboard

    View Slide

  30. Paper prototyping

    View Slide

  31. View Slide

  32. View Slide

  33. View Slide

  34. View Slide

  35. View Slide

  36. User feedback

    View Slide

  37. A/B testing

    View Slide

  38. View Slide

  39. View Slide

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

    View Slide

  41. View Slide

  42. View Slide

  43. View Slide

  44. Pair programming

    View Slide

  45. Testing strategy

    View Slide

  46. Confidence
    Refactor possible
    Code handover
    Fix bugs once

    View Slide

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

    View Slide

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

    View Slide

  49. View Slide

  50. Remote

    View Slide

  51. View Slide

  52. View Slide

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

    View Slide

  54. Reduce risk
    Continuous
    integration Reduce overhead
    Quality Assurance

    View Slide

  55. Automate all the things

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  59. Continuous
    Delivery

    View Slide

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

    View Slide

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

    View Slide

  62. View Slide

  63. View Slide

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

    View Slide

  65. Metrics

    View Slide

  66. Dashboard

    View Slide

  67. Dashing

    View Slide

  68. Panic…

    View Slide

  69. View Slide

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

    View Slide

  71. Thank you!

    View Slide