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

The pragmatic agilist

The pragmatic agilist

If you're pragmatic, you're practical and living in the real world. If you're agile, you adapt easily. This is how we have adopted and evolved an agile methodology in practice so far @ Agilize Cloud Accounting (https://www.agilize.com.br).

Thiago Colares

September 15, 2018
Tweet

More Decks by Thiago Colares

Other Decks in Programming

Transcript

  1. THE
    PRAGMATIC
    AGILIST
    Thiago Colares Chaves

    View Slide

  2. Hallo!
    I’M THIAGO COLARES
    Agile manager
    Full stack developer
    Open source
    Co-founder @ Agilize Cloud Accounting
    @thicolares

    View Slide

  3. YOUR TEAM CAN
    GET MORE DONE
    BEFORE GROWING
    TOO BIG

    View Slide

  4. VALUES

    View Slide

  5. PRACTICES
    WITHOUT VALUES
    BECOME ROUTINE

    View Slide

  6. SPREAD THE WORD
    itemize
    give purpose
    make speeches
    reinforce with context
    be a model

    View Slide

  7. 3 PAINS

    View Slide


  8. 1st pain
    The dev team always
    miss deadlines

    View Slide

  9. WE...
    always miss planned hours
    don’t believe in estimates
    get lost with the unforeseen
    have low self-esteem

    View Slide

  10. IMPACT > speed
    INNOVATION > predictability
    DELIVER VALUE > arbitrary deadline

    View Slide

  11. ISSUE TYPES

    View Slide

  12. Story
    Minimum software
    increments that
    delivers value to
    the user.

    View Slide

  13. Story
    Chore
    /tʃɔr/
    Technical issues.
    Pre-negotiated
    sprint slots.

    View Slide

  14. Chore
    Task
    Story
    Small manual
    activities.
    Not a software
    increment (yet).

    View Slide

  15. Bug
    Task
    Chore
    Story
    Something
    delivered is
    broken.

    View Slide

  16. Bug
    Spike
    Task
    Chore
    Story
    Simple program to
    explore solutions.
    Inputs for estimation.

    View Slide

  17. Spike
    Design
    spike
    Bug
    Task
    Chore
    Story
    Create UI.
    Plan UX.

    View Slide

  18. Design
    spike
    Spike
    Bug
    Task
    Chore
    Story
    Epic
    Large Story.
    Set of issues.

    View Slide

  19. Design
    spike
    Spike
    Bug
    Task
    Chore
    Story
    Epic
    Un
    known
    Not yet classified
    or understood.

    View Slide

  20. Fixing
    Grooming
    Value
    Story
    Bug
    Chore
    Spike
    Design
    spike
    Epic
    Un
    known
    Task

    View Slide

  21. Story
    Bug
    Chore
    Spike
    Design
    spike
    Epic
    Un
    known
    Task

    View Slide

  22. Story
    Bug
    Chore
    Spike
    Design
    spike
    Epic
    Un
    known
    Task

    View Slide

  23. Story
    Bug
    Chore
    Spike
    Design
    spike
    Epic
    Un
    known
    Task
    We estimate
    We log the
    time spent

    View Slide

  24. Design
    spike
    Spike
    Bug
    Task
    Chore
    Un
    known
    Story
    Epic
    We estimate

    View Slide

  25. Design
    spike
    Spike
    Bug
    Task
    Chore
    Un
    known
    Story
    Epic
    We estimate
    HOW?

    View Slide

  26. STORY
    POINTS

    View Slide

  27. ESTIMATE
    TIME EFFORT

    View Slide

  28. 5h20min

    View Slide

  29. ~8h
    AMOUNT OF
    WORK
    + COMPLEXITY
    + RISK AND UNCERTAINTY
    + INNOVATION

    View Slide

  30. 2
    STORY
    POINT

    View Slide

  31. 2
    1 3 5 8
    FREQUENT RARE

    View Slide

  32. 2
    1 3 5 8
    1
    3
    2
    3
    2
    3
    1
    3
    2

    View Slide

  33. ESTIMATING

    View Slide

  34. POSTPONE
    CONE OF UNCERTAINTY

    View Slide

  35. @thicolares

    View Slide

  36. Velocity:
    (3+6+10)/3 = 6
    Forcasting:
    (43-10)/6 + 29-1=34

    View Slide

  37. +15
    -5

    View Slide

  38. IN THE WILD
    Work completed
    Work remaining
    Work added

    View Slide

  39. View Slide

  40. View Slide


  41. 2nd pain
    The bug is still
    occurng
    Meta-slide :)

    View Slide

  42. WE SPENT A LOT OF TIME...
    fixing bugs
    silly and recurring ones too
    struggling on evolving

    View Slide

  43. RECOVERING FROM BUGS
    > controlling them

    View Slide

  44. BUG-ANTIFRAGILE
    ARCHITECTURE

    View Slide

  45. ● SANITY CHECKS
    We can’t help ourselves
    ● IN-HOUSE TALKS
    Every friday
    ● AUTOMATED TESTING DOJO
    Open to the community
    ● KPI DASHBOARD
    Geckoboard, Prometheus + Grafana

    View Slide

  46. ● ERROR MONITORING SOFTWARE
    Sentry, Rollbar
    ● CODE STANDARDIZATION
    PSR Coding standard and Naming conventions
    ● UNIT TESTS
    It became a habit
    ● CODE REVIEW
    It became a habit
    ...

    View Slide

  47. PEOPLE > processes

    View Slide

  48. FEAR COURAGE
    Errors generate learning
    Courage to err or innovate
    No unnecessary pressure
    Team support

    View Slide

  49. FRIENDLY
    ENVIRONMENT
    There are no stupid questions
    Mutual respect and admiration
    Questions are welcome
    There's no room for ego

    View Slide

  50. COWBOYS
    SHARED OWNERSHIP
    Cowboy coders
    Support team's mastering
    Make room for improvements

    View Slide

  51. View Slide


  52. 3rd pain
    Inefficient communication.
    Looooooong meetings.

    View Slide

  53. TRUST > CONTROL

    View Slide

  54. CONTEXT
    GENERATES
    AUTONOMY
    Communicate sooner
    Goals, strategies, and metrics
    Clarify priorities
    Clear definition of success

    View Slide

  55. CONTROL AS
    EXCEPTION
    Help a newcomer
    Short-term emergencies
    Someone in the wrong role

    View Slide

  56. WIKI

    View Slide

  57. 909 editions
    Mutual collaboration
    0% orders (just some nudges)
    The team have asked for this slide
    161 pages
    In a year

    View Slide

  58. MEETINGS

    View Slide

  59. Daily meeting
    1.5 hour
    2 week
    24h
    Planning meeting
    1 day or more

    View Slide

  60. View Slide

  61. Daily meeting
    1.5 hour 30min
    2 week
    1 week
    24h
    Planning meeting
    1 day 1h
    Retrospective
    meeting. 1h
    Backlog grooming
    (during the sprint)
    Faster feedback
    1-to-1 feedbacks.
    15min
    Criteria acceptance

    View Slide

  62. PLANNING MEETING
    Same location, same time
    Everybody
    Review velocity
    Clarify acceptance criteria
    Negotiate activities
    Estimate
    Time-boxed (1h)

    View Slide

  63. ACCEPTANCE
    CRITERIA
    Given
    When
    Then

    View Slide

  64. GIVEN
    Pre-conditions
    Past tense. Passive voice
    WHEN
    Action to be tested (only one)
    Present tense. Active voice
    THEN
    Changes expected after that action
    Future tense. Passive voice

    View Slide

  65. USER ADDS ITEM TO CART
    GIVEN
    I'm a logged-in User
    And I visited the Item page
    WHEN
    I click "Add item to cart"
    THEN
    The quantity of items in my cart will go up
    And my subtotal should increment
    And the warehouse inventory should decrement

    View Slide

  66. DAILY MEETING
    Same location, same time
    Everybody
    Report to the leader
    Team communication
    Risk mitigation
    Time-boxed (30min)

    View Slide

  67. WALK THE BOARD
    +
    ROTATE THE
    FACILITATOR

    View Slide

  68. 1-TO-1 FEEDBACK
    Build strong relationships
    Address issues beforehand
    Opportunity to mentor
    Foster communication

    View Slide

  69. BEFORE
    Frequency matters
    Right Atmosphere
    Begin the meeting on time

    View Slide

  70. DURING
    Remarkable beginning
    Open-ended questions
    Address uncomfortable issues
    Give constructive criticism
    Work together to find a solution
    Share your experiences too
    End on a positive note

    View Slide

  71. PITFALLS
    Avoid calling off
    It’s about the employee, not you

    View Slide

  72. RETROSPECTIVE
    MEETING
    Yes-no past actions
    Happy
    Sad
    Questions
    New ideas do try
    Top 3 sadnesses → Actions
    Time-boxed (30min)

    View Slide

  73. IMPACT > speed
    INNOVATION > predictability
    DELIVER VALUE > arbitrary deadline
    RECOVERING FROM BUGS > controlling them
    PEOPLE > processes
    TRUST > control

    View Slide

  74. View Slide

  75. Thank you!
    Thiago Colares
    @thicolares

    View Slide

  76. SPECIAL THANKS TO
    ○ The time and the battle in the wild :)
    ○ “Extreme Programming Explained: Embrace Change”, Kent Beck
    ○ “Manifesto for Agile Software Development”, http://agilemanifesto.org/
    ○ Teammates at Agilize Cloud Accounting
    ○ Maurício Vieira, for discussions and insightfulness
    ○ So many articles and friends that inspire me every day

    View Slide