Running Efficient Distributed Teams

Running Efficient Distributed Teams

A talk I gave at Webit Expo, Sofia, in April 2016. I focused on how to run efficient, fully distributed teams, how they differ from local teams, the pitfalls to avoid, and which agile concepts should be re-evaluated.

Video: https://youtu.be/_uw0xukXiPg

3671c3425bbbc1de94d87374617646b7?s=128

Ricardo J. Méndez

April 20, 2016
Tweet

Transcript

  1. Running Efficient Distributed Teams Ricardo J. Méndez ricardo@numergent.com

  2. @ArgesRic About me • Software engineer, run Numergent. • Work

    mostly with data-oriented projects, on media, health care information management, and financial companies. • Run project-specific, distributed development teams. • Six years of working exclusively with distributed teams. • I’d rather take the right expertise where I find it.
  3. None
  4. @ArgesRic Coordination has a cost

  5. None
  6. None
  7. @ArgesRic When you have a question, your answer may not

    arrive even on the same day.
  8. @ArgesRic Autonomy is fundamental

  9. @ArgesRic Late-binding of tasks to owners Fred George, “Implementing programmer

    Anarchy”
 https://www.youtube.com/watch?v=tIxHmsWCd7g
  10. @ArgesRic Having lots tasks assigned early can overwhelm a developer.

  11. @ArgesRic Never force people to ask for permission to work

    more.
  12. @ArgesRic Instead, let people continually ask themselves “what's next?”

  13. @ArgesRic Assign early only very specialized tasks, with specific deadlines.

  14. @ArgesRic Conventions are important

  15. @ArgesRic Fundamental for issues and tasks. Come up with a

    clear nomenclature from the start.
  16. @ArgesRic Mis-assigned or mis-interpreted severities and priorities will slow you

    down.
  17. @ArgesRic Conventions: Issue severity • Enhancement: Self-explanatory. • Minor: Deal

    with it as time allows. • Major: You don’t want to launch without it, not having it requires a scope negotiation. • Critical: Fundamental to system’s concept and integrity. • Blocker: Stopping at least one person from working. For bugs only.
  18. @ArgesRic Do not let P1 Blockers become a prioritization hack.

  19. @ArgesRic There’s a difference between urgent and important

  20. @ArgesRic Write everything down

  21. @ArgesRic Yes, writing things down 
 takes time.

  22. @ArgesRic Guess what? You should be doing it anyway.

  23. @ArgesRic Do not abide an oral history, Chinese whispers approach

    to project management.
  24. @ArgesRic If it’s worth answering, it’s worth writing the answer

    down.
  25. @ArgesRic Issue-specific answers go on the issue. General questions go

    on the wiki.
  26. @ArgesRic Chances are people will ask the same question twice.

    You only pay the cost once.
  27. @ArgesRic Your team will talk less, and write more. This

    is not a bug, it’s a feature.
  28. @ArgesRic Cross-reference and increase visibility

  29. @ArgesRic Tag feature branches with the task code. Link to

    issue discussion on commit logs.
  30. @ArgesRic git-flow is your friend (or something like it) http://nvie.com/posts/a-successful-git-branching-model/

  31. @ArgesRic Developers own their feature branches. Never assume they are

    set in stone.
  32. @ArgesRic Do small, independent commits

  33. @ArgesRic Push your feature branches, even if you’re not done.

  34. @ArgesRic Make intermediate commits, even if you’ll amend later.

  35. @ArgesRic When all you have is Scrum, everything looks like

    a stand-up
  36. @ArgesRic Daily meetings, however short, will be an issue.

  37. @ArgesRic Assumptions change. You will need to touch base daily.

    Do it asynchronously.
  38. @ArgesRic Keep a good idea of people’s availability.

  39. @ArgesRic Agree on team member availability beforehand. It’s not about

    synchrony. It’s about timing.
  40. @ArgesRic Mind the human factor

  41. @ArgesRic You won’t have the usual visual cues.

  42. @ArgesRic Be extra aware of cultural fit, or personal differences.

  43. @ArgesRic There are exceptions

  44. @ArgesRic You may need to have a few people meet.

    Plan ahead and budget.
  45. @ArgesRic Questions?

  46. @ArgesRic Thank you! Ricardo J. Méndez ricardo@numergent.com https://numergent.com/talks/