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

Agile Tech Coaching - The Missing Piece Of Your...

Yoan
June 06, 2024

Agile Tech Coaching - The Missing Piece Of Your Organization

To succeed in their agile transformations, organizations spend a tremendous amount of energy supporting roles such as Product Owners, Scrum Masters, Facilitators, and many others...

The desire for adaptation and the reduction of the infamous "Time To Market" also necessitate changes in how delivery and development teams operate.

They need to understand how to work iteratively and incrementally in a concrete way.
Who can support and coach them on these topics?

During this session, I will share with you my successes, failures, and learnings from fields such as e-commerce, banking, and insurance.

We will discuss:
- Training teams on practices that enable them to deliver more efficiently (Learning Hours, Coding Dojos, Mob Programming)
- Mentoring tech leads (particularly regarding their role)
- Collaboration between architects and autonomous teams
- Supporting communities of practice
- How to break down silos in highly hierarchical structures

I will share with you many tools that you can use to help your teams.

Yoan

June 06, 2024
Tweet

More Decks by Yoan

Other Decks in Education

Transcript

  1. https://pyxis-suisse.ch/notre-equipe/coaching-agile-technique/ Yoan Thirion Agile Coach Help organizations / teams to

    implement Agile principles and mindset. Help teams deliver better quality software with craft mindset, practices and principles. Software Crafter Trainer Teach others in specific knowledge, skills. #sharingiscaring Coach Partner with clients in a creative process that inspires their personal and professional potential. Mentor Share knowledge, skills and experience that enables the professional and personal Growth of someone else. Able to choose the right role to play depending on the context. Understand organization as a system. Act as a change catalyst. Navigator Facilitator Guide groups through processes that help stimulate collective intelligence to find solutions and take decisions. Observer
  2. My Objective Share with you my observations / feelings about

    what I identify as a gap in transformations. A potential answer to this gap?
  3. Agile Transformation SCRUM Sprint Product Increment KANBAN Continuous Flow Continuous

    Improvement Iterative / Incremental WIP Limits JIT Priorization SAFe LESS @Scale
  4. Everything is Gonna Be Alright Scrum Masters Change Managers Agile

    Coaches Release Train Engineers Product Owners Product Managers UX Experts
  5. A Huge Impact As developers, how could we continuously deliver

    value and guarantee quality / stability at the same time ?
  6. A common pattern “We are scared about the non explicit

    trade-off we ve made between speed and quality...” Quality Scope Time Budget What level of quality must our deliverables have? What are we tasked with delivering? What budget constraints must we deliver within? What time-frame do we have to deliver it within?
  7. Stress... We need to adapt, not only our team organization

    ,but our Dev Practices as well... But WHAT and HOW?
  8. Product Managers Product Owners UX Experts Scrum Masters Change Managers

    Release Train Engineers Agile Coaches No one with Technical Mastery?
  9. Improve Code Quality Build Confidence Learning / Apprenance Culture Continuous

    Improvement Decrease Time To Market Agile Technical Coaching What else? Motivate People
  10. Accelerate We need to adapt our Dev Practices... Source :

    https://www.slideshare.net/OCTOTechnology/accelerate-la-vitesse-conditionne-lexcellence
  11. Signs you need it Bugs How much time does your

    team spend fixing defects vs creating new features? Delayed Deliveries Consistent delays in rolling out new features Bad Code The code is so problematic that team members want a complete rewrite Lack of confidence No one wants to touch a given piece of code No learning culture Hard to innovate, improve, be resilient and motivated without learning... No external eyes No perspective on design, architecture, and quality
  12. How can it be done ? Only my approach Not

    an universal truth Disclaimer
  13. We don’t know how to ensure our system quality when

    iterating... Let’s make a self assessment to initiate an improvement backlog
  14. Self Assessment What do we want to achieve? Where are

    we now? What could we do? What will we do? https://github.com/ythirion/software-crafter-journey
  15. Example “We must maintain and evolve a Legacy code system

    but we are not confident at all to touch it...” Findings Improvement Ideas (from the team) Add tests to increase our confidence : which ones? how? Rewrite the system Coach proposals How to test legacy code techniques: Test Pyramid / Strategy, Approval Testing, Code Coverage / Mutation Testing Static code analysis, Hotspot analysis How to refactor legacy code: Wrap, Strout, Seams, ...
  16. Team Coaching Learning Hour(s) Code Kata 4C (inverted pedagogy) Pair

    / Mob Programming Learning by Doing Mob Programming Apply learnings with the team Safe place Outside from production code Repeat on other topics... On production code Concrete team problems Pair Programming Driver The one behind the wheel Control the machine Navigator Does not act directly on the machine Takes a step back Frequent rotation Know how to slow down Several styles Ping-Pong TDD + Pair Alternate at each red phase Strong Style "I have an idea" "Here is the keyboard" Silent Only the code to communicate Evil Twin Trick your partner Highlight edge cases Learn and progress Share & transmit Reduce the Truck Factor Assure / reassure yourself Motivate / help each other Know how to say no Respect your partner Transparency Retrospective Shared objective Agenda Take breaks Why? Silence Fixed roles Different machines Disengagement Ensemble / Mob programming Simultaneous collaboration of each member "All the brilliant minds working together on the same thing, at the same time, in the same space, and at the same computer." - Woody Zuill Working effectively with pair / mob programming
  17. Code Review As A Service (CRAAS) Outside-In review (high to

    low level) We would appreciate to have your external / neutral Point Of View on this system Code complexity Change Frequency Hotspot Knowledge Map Static / Behavorial Code Analysis Ask questions Suggest improvements Propose refactoring No Pull Request Team is owner of its code Debrief all together
  18. Mindset There is a lot of conflicts in our team,

    especially during code reviews. I think we have to work on it...
  19. Hard skills, but not only... Alignment, vision, communication When developing

    new functionalities, we usually have to make assumptions which leads to misunderstandings and creates tension with our stakeholders.
  20. We just found out that two teams have already developed

    a similar module we are planning on developing... Let's bootstrap a dev community to avoid wasting time and energy then.
  21. Community of Practices Connect people / break silos Build a

    learning organization ... Consolidate the collective knowledge Improve quality Spread knowledge Share practices / principles Learn together Solve problems by using the collective intelligence Avoid waste of time / money (not reimplement existing stuff)
  22. Events "You don't need to be an expert to share,

    it's by sharing that we become experts." Involve people Use collaborative formats Mix formats: Katas, Talks, Lean coffees, Lightning talks, Xtrem Reading, ...
  23. Creating a community helped us a lot but we still

    have issues with our architecture. We don't know who validates the architecture guidelines and, more importantly, what's expected from us... How about experimenting co-design solutions instead of long feedback loops?
  24. holds materialized by co-build during Co-Designs Enterprise Architecture Tech Leads

    Devs Security participates, proposes, takes decisions feed Co-Design Create strong bidirectional communication between architecture and development A.D.R Ops Other experts KB Design Principles Tech Radar
  25. How can we now become fully autonomous and help other

    teams within our organization? I can coach individual(s) within the organization so they are capable of coaching teams.
  26. Mentoring Agile Coach Help organizations / teams to implement Agile

    principles and mindset. Help teams deliver better quality software with craft mindset, practices and principles. Software Crafter Trainer Teach others in specific knowledge, skills. Coach Partner with clients in a creative process that inspires their personal and professional potential. Mentor Share knowledge, skills and experience that enables the professional and personal Growth of someone else. Able to choose the right role to play depending on the context. Understand organization as a system. Act as a change catalyst. Navigator Facilitator Guide groups through processes that help stimulate collective intelligence to find solutions and take decisions. Observer ? How to not be indispensable
  27. ? How? - Example Agile Coach Software Crafter Trainer Coach

    Mentor Navigator Facilitator Observer Agile Manifesto Scrum Kanban O.K.R T.D.D B.D.D D.D.D F.P Clean Code 7P Liberating Structures Decision making Non Violent Communication GROW Solution Focus Open Questions Training From The Back of The Room Host Leadership Adopt a posture consciously Better speaker M.E.N.T.O.R Model Leadership How to create a learning Culture
  28. We have to demonstrate the impact of Agile Technical Coaching

    to our management but HOW? We already have all the measures we need...
  29. Measures Features Defects Technical Debt 0 5 10 15 20

    Jan Feb Mar Apr May Jun Jul Aug Features Defects Technical Debt 0 2 4 6 8 10 12 14 Jan Feb Mar Apr May Jun Jul Aug Team Stocks evolution DORA Metrics Hard to make correlations Self "Assessment" Measure Continuous Improvement People / Teams feedback Survey Motivation Feeling Learning
  30. Several Streams Team Community Architecture Coach the coaches Coach teams

    and help them deliver more efficiently with better quality inside. Help people to create and lead communities of practice. Help to create technical alignment. Support individuals within the organization so they are capable of coaching teams.
  31. Let's Conclude To succeed in their agile transformations, organizations expend

    a tremendous amount of energy supporting new roles and THAT'S GREAT BUT who is capable of supporting the ones who deliver? I strongly think most of Dev Teams need to be supported by Agile Technical Coaches to succeed... Agile Tech Coaching
  32. Thank You #sharingiscaring ""Our job is to be strict with

    code but benevolent and open-minded with the ones who design it."