Video and slides for this presentation are available at https://www.kaizenko.com/guiding-your-team-to-technical-excellence/
“Continuous attention to technical excellence and good design enhances agility” is one of the twelve principles behind the Agile manifesto.
Are your teams practicing Test Driven Development, Automated Testing, Continuous Integration and Delivery? How about pairing, mobbing, and collective code ownership?
Agile Engineering Practices are key to succeeding with Scrum and realizing its many benefits like faster ROI, reduced risks, increased visibility, high quality, and improved adaptability. Yet many teams struggle with adopting these practices and end up just going through the motions of Planning meetings, Daily Scrums, Reviews, Retros and so forth. They use cool new lingo and tools; they have new roles and titles, yet the overall approach, technical practices, and results are still the same. Sprints usually end up being just for coding and finish with no shippable Product Increment. Teams go through several Sprints without delivering anything. Testing cycles and release cycles are still long, and the delivery of customer value is delayed. The final deliverable suffers from poor quality and does not meet the customer’s needs.
Come to this session to learn how to introduce essential Agile Engineering Practices to your team. We’ll discuss typical transitions teams go through in their Agile adoption along with the challenges, roadblocks and push back to these technical practices. Leave equipped with a continuous improvement action plan to overcome these challenges, make new behaviors stick, and get your teams on their way to technical excellence.
BIO
Fadi Stephan is a technology consultant, Certified Scrum Trainer (CST), and Agile coach with more than twenty years of experience at startups, government agencies, and Fortune500 companies across various sectors including financial, hospitality, and homeland. His focus is on building high performing innovative organizations and teams that deliver value early and maximize ROI. Fadi coaches clients on agility and organizational culture, leadership, product management, user-centered design, Agile engineering practices and DevOps. Find out more at https://www.kaizenko.com
2. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Requirement Design Code Test
Sprint 1 Sprint 2 Sprint 3 Sprint 4
Story 1
Story 2
Story 3
Story 4
Story 5
3. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Requirement
Requirement Design
Requirement Design Coooooooooooooooooooooooooode
Test
Sprint
Story 1
Story 2
Story 3
Story 4
Story 5
4. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Code 1 Code 2
Test 1 Test 2
Sprint 1 Sprint 2 Sprint 3 Sprint 4
Code 3 Code 4
Test 3
Story 1
Story 2
Story 3
Story 4
Story 5
5. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Sprint
Story 1
Story 4
Story 3
Story 2
Day 1 Day 3 Day 6 Day 7 Day 10
Story 5
Story 6
Story 7
Story 8
6. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Certified Scrum Trainer (CST®) and Agile Coach
Fadi
Stephan
www.kaizenko.com
in/fadistephan
KAIZENKO
KAIZENKOLLC
KAIZENKO
KAI.ZEN.KO
@FadiStephan
7. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Why can’t we deliver
a Product Increment?
8. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Misunderstanding
of What
a Product
Increment
Is
9. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
A B C B
A
C
A A B B
A
C
Sprint 1 Sprint 2 Sprint 3
Sprint 1 Sprint 2 Sprint 3
Sprint 4
10. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
If you are doing something only
once, then you are not iterating
If you don’t add to what you
already have, then you are not
incrementing
11. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Lack of Skills
12. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Can’t
send the
entire
team to
training
The team
is not
interested
in this
type of
training
13. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Siloed Roles
14. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Quality
Is An
Afterthought
15. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Lack
of
Automation
16. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Agile
Engineering
Practices
17. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Test
Driven
Development
(TDD)
Think
Test
Code
Refactor
18. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Pair
Programming
19. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Ensemble
Programming
20. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Collective
Code
Ownership
21. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Continuous
Integration
&
Continuous
Deployment
22. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Why The Push Back?
23. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
TDD Is Hard
24. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Pairing is Uncomfortable
25. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Collective Code Ownership
is impossible
26. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
I already use Jenkins
27. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
7 Steps
to
Technical Excellence
28. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Training
Certified Scrum Developer
Agile Engineering Practices
TDD Workshop
Think
Test
Code
Refactor
29. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Aha!
30. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Developer Time
31. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
32. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Developer Time
Building the
Product
increment
Product Backlog
Refinement
Continuous
Improvement
33. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
34. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Definition of Done
35. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
With a PBI
With a Sprint
With a Release
36. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
All Code
Checked-in
Unit Tests
Passing
Help Text
Updated
Meets
Acceptance
Criteria
Integration
Tests
Passing
Performance
Tests Passing
With a Release
Security
Audit
Passing
Regression
Tests
Passing
Stress Tests
Passing
Acceptance
Tests Passing
With a PBI
With a Sprint
Code
Reviewed
Continuous
Improvement
37. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Dojos
38. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Dojos
Dedicated learning hour
Every day
Re-enforces specific concepts
covered in training
Safe environment
Building up skills
Preparing for the future
39. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Sprint Goal
40. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
“The Sprint Goal is the single objective for the
Sprint. Although the Sprint Goal is a commitment
by the Developers, it provides flexibility in terms
of the exact work needed to achieve it.”
“The Sprint Goal also creates coherence and
focus, encouraging the Scrum Team to work
together rather than on separate initiatives.”
- The 2020 Scrum Guide
41. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Ensemble
Programming
42. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Ensemble
Programming
Mandatory
2 Hours per day
Work on your code base
Consider ensemble user story
candidate in Sprint Planning
True vertical slice of end-to-end
functionality
43. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Pair
Programming
44. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Pair
Programming
Work on your code base
Consider candidate user stories for
pairing in Sprint Planning
Ask for volunteers
Encourage mix of experience level
Encourage mix of domain expertise
Encourage mix of technical
expertise
45. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
CI/CD
46. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
CI/CD
Done by the team
Bring in outside expertise
Pair with team member
Rotate team members
1 item per Sprint
47. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
7 Steps to
Technical
Excellence
1. Agile Engineering Training
2. Improve on the Definition of
Done
3. Daily 1-Hours Dojos
4. Always Have a Sprint Goal
5. Daily 2 Hours Ensemble
6. Daily Voluntary Pairing
7. Own Building CI/CD Pipeline
48. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
49. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
50. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Certified Scrum Trainer (CST®) and Agile Coach
Fadi
Stephan
www.kaizenko.com
in/fadistephan
KAIZENKO
KAIZENKOLLC
KAIZENKO
KAI.ZEN.KO
@FadiStephan
51. GUIDING YOUR TEAM TO TECHNICAL EXCELLENCE @fadistephan | kaizenko.com
Contact info@kaizenko.com for
in-house customized training or
coaching
Check out kaizenko.com
public class schedule
Certified Scrum Training
&
Technical Coaching
Certified Scrum Developer
Agile Engineering Practices
Advanced
Certified Scrum Developer
Agile Engineering Practices