Working in an effective team at DevFest Istanbul 2015

103e1ebcacd620770cf32a36b9aba17e?s=47 AppFoundry
November 29, 2015

Working in an effective team at DevFest Istanbul 2015

How we work in an effective team at AppFoundry.

Slides from the 'Working in an effective team' session at DevFest Istanbul 2015

Most of us know about agile practices such as Scrum or Kanban, we have heard about and/or practice continuous integration and maybe even continuous delivery. We dream of TDD, BDD, XP and other buzzwords. But how do you put these in practice? How do you get your team to be an effective team? How do you get those dreams to not turn out as nightmares?

That is what we were asking ourselves at AppFoundry while making our apps. How would we apply this on our native clients? How do you do these things on Android? And how do you manage your backends in conjunction with these frontend platforms?

In this talk we’ll tell you the story of our quest to become an effective team.

103e1ebcacd620770cf32a36b9aba17e?s=128

AppFoundry

November 29, 2015
Tweet

Transcript

  1. Working in an effective team Filip Maelbrancke AppFoundry

  2. Your host Filip Maelbrancke Consultant @ AppFoundry filip.maelbrancke@appfoundry.be @fmaelbrancke

  3. About us Consulting Staffing In-house projects #dfist

  4. AppFoundry appfoundry.be #dfist

  5. About us #dfist

  6. None
  7. ?

  8. Goals

  9. Communication

  10. Communication Humans = social Lots of interaction

  11. Communication Team discussions

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

  13. Library 1 Library 2 Feature ✔ ✖ Capability ✔ ✔

    Characteristic ✔ ✔ Option ✔ ✔ Choice ✖ ✔ … ✖ ✔ … ✔ ✔ … ✔ ✔
  14. Communication

  15. Trust & Respect Makes the team autonomous

  16. Hire as a team

  17. Technical debt

  18. This is how I'll explain "no time for big refactoring,

    let's do business value" to the business.
  19. Atmosphere

  20. None
  21. Brown bag lunches

  22. None
  23. The Quest

  24. Take baby steps

  25. How we work 1 2 3 4 5 REQUIREMENTS PLAN

    SHOWCASE STATUS REPORTS EVALUATE BACKLOG 2 WEEK SPRINTS SPRINT DEMO DAILY STANDUP RETROSPECTIVE
  26. Minimum viable product

  27. –H. Alan Stevens Building the right thing is always more

    important than building it right.
  28. Scrum 1 2 3 4 5 REQUIREMENTS PLAN SHOWCASE STATUS

    REPORTS EVALUATE BACKLOG 2 WEEK SPRINTS SPRINT DEMO DAILY STANDUP RETROSPECTIVE
  29. None
  30. Team demo Retrospective

  31. Prototyping

  32. Whiteboard

  33. Paper prototyping

  34. None
  35. None
  36. None
  37. None
  38. None
  39. User feedback

  40. A/B testing

  41. None
  42. None
  43. Code review Detect problems early. Learn from someone else’s code.

  44. None
  45. None
  46. None
  47. Pair programming

  48. Testing strategy

  49. Confidence Refactor possible Code handover Fix bugs once

  50. Test Driven Development RED FAILING TEST GREEN FIXED TEST BLUE

    REFACTOR
  51. Automatic On every commit / scheduled Unit tests UI integration

    tests with Espresso
  52. Test devices

  53. Remote

  54. None
  55. None
  56. Creating software = complex Continuous integration Ensure quality Automate high-quality,

    robust and reliable apps tedious / error-prone activities
  57. Reduce risk Continuous integration Reduce overhead Quality Assurance

  58. Automate all the things

  59. None
  60. Continuous integration 1 2 3 4 CODE & COMMIT BUILD

    & CHECK CI PICKUP REPORT RESULTS
  61. Build pipeline Checkout / compile Unit tests Test coverage Code

    analysis Create deployable artifact Deploy for automatic QA test Trigger automated QA stage
  62. Auto publish Delivery Promote APK to production Automate Google Play

    alpha / beta without additional tools
  63. Continuous Delivery

  64. Continuous delivery / deliverable Continuous Delivery Deliverable Push on demand

    Confidence of being deployable
  65. Feature-based deployment A successful Git branching model http://nvie.com/posts/a-successful-git-branching-model/

  66. None
  67. None
  68. Internal QA Testing Internal alpha testing program Beta testing /

    staged rollout of being deployable
  69. Metrics

  70. Dashboard

  71. Dashing

  72. Panic…

  73. Questions? Filip Maelbrancke Consultant @ AppFoundry filip.maelbrancke@appfoundry.be @fmaelbrancke

  74. Thank you!