SlideShare a Scribd company logo
Technical Excellence Doesn't Just
Happen – Igniting a
Craftsmanship Culture
By Allison Pollard and Mike Rieser
INTRODUCTIONS
This is us!
Allison Pollard
‱ Agile Process Coach and
Consultant
‱ Firm Believer in
Continuous
Improvement
‱ DFW Scrum User Group
leader and Dallas Agile
Leadership Network
board member
‱ Glasses wearer
Mike Rieser (ree-sir)
‱ Agile Coach and
Consultant
‱ Technical Practices
Coach
‱ “Programmer shirt”
wearer
TECHNICAL EXCELLENCE
“In an agile project, technical excellence is measured by
both capacity to deliver customer value today and create an
adaptable product for tomorrow.”
– Jim Highsmith
Who’s problem is it?
How many programmers
does it take to change a
light bulb?
6
https://www.flickr.com/photos/belobaba/6058142799/
Who’s problem is it?
Who should be
concerned with the
long-term viability of
the codebase?
7
https://www.flickr.com/photos/f-oxymoron/5005673112/
Agile: build the right thing and build it right.
‱ Building it right means it
has a simple design, and
is maintainable and
flexible.
‱ Successful software
needs to be able to
evolve to meet
expanding needs.Photo by Yann, https://en.wikipedia.org/wiki/File:Taj_Mahal_(Edited).jpeg
Excellence Is a Habit!
Continuous attention
to technical excellence
and good design
enhances agility.
(9th Principle of the Agile Manifesto)
https://www.flickr.com/photos/ikoka/16843413711/
GROUP ACTIVITY
Discuss
Anyone have an anecdote of an extreme in technical
excellence? Either
‱ “too much”
‱ or “not enough”
That you can share in 30-60 seconds.
KINDLING CRAFTSMANSHIP
What will spark your culture change?
Process & Technical Practices
“People have told me that they see Scrum as the
management approach to agile development and
XP as the engineering practices that make it
effective, both bonded together by complimentary
practices and goals.”
– Ken Schwaber, co-creator of Scrum
Flaccid Scrum – Martin Fowler, 2009
‱ They want to use an agile process, and pick Scrum
‱ They adopt Scrum practices, and maybe even the principles
‱ After a while progress is slow because the code base is a mess
Five Years Later
 2014
My advice still stands - ensure you take technical practices
seriously when introducing Scrum (or indeed any agile
approach). – Martin Fowler
From Flaccid to Awesome!
Internal Quality
(Developer Facing)
External Quality
(Customer Facing)
Advice
High High You’re awesome!
High Low Get Customer-focused!
Low High It won’t Last. Refactor now!
Low Low Refactor versus Rewrite?!
Agile Requires Quality
Waterfall Agile
0
20
40
60
80
100
120
0 18 36 54
Quality over Time
0
20
40
60
80
100
120
0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
Quality over Time
Process Dependencies
18
Waterfall
Upfront Requirements
Upfront Design
Agile
Evolutionary Design
Refactoring
Automated Developer
Tests
Test First
Test After
Software Costs
How Does Technical Debt Occur?
IT’s
“Done”
Business
“Accepts”
Result
True True ✔
True False
Communication
Problem
False True Technical Debt
False False ✔
How Does Technical Debt Occur?
‱ Complex Requirements – producing overly complicated
implementations, unreduced complexity
‱ Over Engineering – developers building more sophisticated code
than is necessary (Speculative Development). [Gold Plating]
‱ Business Solutioning – dictating technical solutions rather than
bringing problems to be solved.
‱ Ignorance – an incomplete understanding of how the system works
‱ Undone Work – deciding “writing automated tests slows us down”
‱ Good code / wrong place
‱ Cutting Corners – “quick and dirty”
Faster is Slower
We’ll “fix it later.”
When is later?
(There is no later!)
https://www.flickr.com/photos/9266144@N02/1074851879
The Business Made Me Do It!
What a Tech Lead says to his Product Owner:
“To do it right will take 2 Iterations. If we do it this other way, we can do
it in 2 days, but the developers will be forever burdened with fragile
code and it will impact our delivery on every project in the future.”
What the Product Owner hears:
“You can have it in 2 days!”
Moral:
Be sure you can live with the options you present.
Enhances. Really?
Compare
“Continuous attention to technical excellence
and good design enhances agility.”
– 9th Principle, Agile Manifesto
with
“Speed is a long-term side-effect of
producing code with the highest possible
internal quality.”
– Agile Testing by Lisa Crispin, Janet Gregory
perhaps
Continuous attention to technical excellence
and good design sustains agility.
https://www.flickr.com/photos/mr_t_in_dc/2322412546/
WHAT WE TRIED
And now for something completely different.
TDD Training
‱ Introduces the practice of Test-Driven Development
‱ Refreshers welcome
‱ ‘Ignites the spark’ around Test-Driven Development and why
we need it
Outcomes
‱ Shoot for “Test-Infected,” coach the rest
‱ 18,000 Unit Tests with 100% pass rate every build
‱ Tasks for “Unit Tests” have disappeared
Red
GreenRefactor
Maturity Model for TDD
36
SHU
(Follow)
HA
(Break Free)
RI
(Transcend)
 Still learning, follows but may
not know why.
 New code comes with new
tests.
 Changed code comes with
tests around the changes.
 Internalized practice, but still
needs a coach.
 Understands pros and cons.
 All code is written test-first.
 Able to go beyond what has
been taught
 Creates a unit testing
framework because they
needed one and it didn’t
exist.
Code Clinics
‱ A non-judgmental place where developers can bring their
coding issues to look for feedback or work collaboratively on
solutions, watch and help others, get mentoring if needed,
identify how to apply concepts from the book or get some
code under test.
Outcome
‱ Sometimes repurposed into “Code Review”
‱ A few dedicated “Lurkers”
‱ As delivery pressure increases, attendance decreases
‱ Found “classroom exercises” this way https://www.flickr.com/photos/lloyds-
screenies/2696378369/
Transferring Code Ownership
Devs:
This is horrible! They ought to do something about this!
Coach:
Management wants you to have a nice code base to work in, but
they aren’t in the code every day.
This is where you work every day.
If you want a nice place to work, you’re going to have to clean it up.
“You” are “they.”
Outcome
“Don’t touch that!” replaced with
“Why didn’t you clean that up?”
Tech Lead Interview Process
‱ Recruiting Tech Leads that are evangelists and mentors for the
concepts we care about (TDD, Quality, Refactoring, OO Design)
‱ Interview includes: a coding problem, a code review problem,
a non-technical-solution problem
‱ Allowed no exceptions for folks hired into a Tech Lead role
Outcome
‱ “New DNA” rejecting “Old DNA”
‱ “Supervisor” Tech Leads did not do well
‱ Hit most on: Senior Devs looking for their next level
http://disney.wikia.com/wiki/File:Star_wars_movi
es_darth_maul_obi-wan_wars_hd-wallpaper-
481469.jpg
Code Reviews
‱ Originally no definition of “Production Worthy”
‱ Code is continually ‘assessed’ (every iteration) and
feedback given to ensure we continue to steer
away from the addition of debt to the codebase
‱ The more frequent the code reviews, the more
likely we are to avoid pitfalls at the end of a project
Outcome
‱ Reviews with different teams were at different
levels
‱ Smell: sign-off became “required”
‱ Now community owned
https://www.flickr.com/photos/ericvaughn/972882
9199
https://www.flickr.com/photos/dmcdevit/1143743
631
https://www.flickr.com/photos/26116471@N03/6
788264645
Additional Coaching Items
‱ Directive – leave things better than you found it
‱ Free Book – Working with Legacy Code by Feathers
‱ Book Club – meet over lunch to discuss a book on software
craftsmanship
‱ Community of Practice – a recurring meeting for developers
to communicate across teams on successful solutions and
useful tips and techniques applied to the codebase
‱ Continuous Integration – reduces deploy costs and fast-tracks
code improvements to teams
Practices & Process
Where would
focusing only on
delivery get you?
Process
TechnicalExcellence
WRAP UP!
Perfect (v.)
‱ Continuous Improvement requires continuous learning –
encourage a learning environment.
‱ Problems are one of the first signs that something needs
changed.
‱ Get to the root cause, and fix it. The symptoms will go
away.
https://pixabay.com/en/learn-note-sign-directory-
64058/
Invest in your people
CFO: What if we train them, and they leave?
COO: What if we don’t, and they stay?
Copyright: David Franklin/Shutterstock
Fan the Flame!
‱ There really is no
substitute for a
developer that has a
spark to make it
right.
‱ When you see the
spark, encourage the
flame!Photo by Billy Hathorn,
https://commons.wikimedia.org/wiki/File:Kindling_for_starting_a_campfire_IMG_2454.JPG
Create a Safe Environment
“Initiative is punishable.”
– Russian Proverb
‱ If you want teams to take
initiative, you must allow
for failure.
‱ Mistakes are an indicator
of trying something new.
‱ Teams require autonomy to
achieve excellence.
LongTermViabilityRequiresDiscipline
“Just put it anywhere” only works for a short time!
Image from Raiders of the Lost Ark
THE END
Allison Pollard allison.pollard@improving.com
@allison_pollard (Twitter)
Mike Rieser mike@mrieser.com
@MichaelRieser (Twitter)
Best Measure of Code Quality
Hard to game.

More Related Content

PPTX
Leading agile teams
PDF
Practical Scrum course day 1
PPTX
Holistic Product Development
PDF
What does a Scrum Master do, or should do, all day?
PDF
Transforming Managers for an Agile Deployment - Agile Tour Montreal 2017
PPTX
Agile Mindset For Executives
PPTX
Introduction to DevOps
 
PDF
From Incremental & Iterative to Agile – What's the Right Process For Your Tea...
Leading agile teams
Practical Scrum course day 1
Holistic Product Development
What does a Scrum Master do, or should do, all day?
Transforming Managers for an Agile Deployment - Agile Tour Montreal 2017
Agile Mindset For Executives
Introduction to DevOps
 
From Incremental & Iterative to Agile – What's the Right Process For Your Tea...

What's hot (20)

PPTX
Refactoring workshop
PDF
Agile & Scrum – intro slides
PDF
Agile - One Size Does Not Fit All
PDF
Atlassian Summit 2015 Lean QA and Agile Testing
PDF
Getting Agile Right - Rebooting an Agile organization in 100 days - Agile Tou...
KEY
Scrum intro ILTechTalks
PDF
Agile and scrum masterclass
PDF
Getting Agile Right - Rebooting an Agile Organization in 100 days - Agile Tou...
PPTX
Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone
PPTX
Titas Lapinskas - Technical Team Leader in Agile
PDF
Scaling Quality by Building It In - Agile Tour Montreal 2017
PPTX
Kanban for scrummers
PDF
Building Cross-Functional Scrum-Teams in a Hardware Project
PDF
Scaling Quality by Building it in - Agile Tour Ottawa 2017
PDF
Lean Discovery, Agile Delivery & the DevOps Mindset
PPTX
The Ultimate Agile Mix Tape (Agile 2017)
PPSX
Agile
PDF
Value Streams and the Scaled Agile Framework
 
PDF
Agile leadership assessment
PDF
Undercover Scrum Master - Agile2019
Refactoring workshop
Agile & Scrum – intro slides
Agile - One Size Does Not Fit All
Atlassian Summit 2015 Lean QA and Agile Testing
Getting Agile Right - Rebooting an Agile organization in 100 days - Agile Tou...
Scrum intro ILTechTalks
Agile and scrum masterclass
Getting Agile Right - Rebooting an Agile Organization in 100 days - Agile Tou...
Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone
Titas Lapinskas - Technical Team Leader in Agile
Scaling Quality by Building It In - Agile Tour Montreal 2017
Kanban for scrummers
Building Cross-Functional Scrum-Teams in a Hardware Project
Scaling Quality by Building it in - Agile Tour Ottawa 2017
Lean Discovery, Agile Delivery & the DevOps Mindset
The Ultimate Agile Mix Tape (Agile 2017)
Agile
Value Streams and the Scaled Agile Framework
 
Agile leadership assessment
Undercover Scrum Master - Agile2019
Ad

Similar to Technical Excellence Doesn't Just Happen - AgileIndy 2016 (20)

PDF
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
KEY
Essential practices and thinking tools for Agile Adoption
PPTX
Agile testing for mere mortals
PPTX
Creating change from within - Agile Practitioners 2012
PDF
It's XP, Stupid
PDF
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
PDF
Achieving Technical Excellence in Your Software Teams - from Devternity
PDF
Five XP Practices for Agile Development
PDF
Agile Test Driven Development
PDF
A Self Funding Agile Transformation
PDF
Five XP Practices for Agile Development
PDF
How to Adopt Agile at Your Organization
PPTX
Team up
PPTX
You cant be agile if your code sucks
PPTX
It's XP Stupid (2019)
PPT
Agile2011 Conference – Key Take Aways
PDF
Waste Driven Development - Agile Coaching Serbia Meetup
PDF
SpringOne Tour: The Influential Software Engineer
PPTX
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...
PDF
GeneralAssemb.ly Summer Program: Tech from the Ground Up
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Essential practices and thinking tools for Agile Adoption
Agile testing for mere mortals
Creating change from within - Agile Practitioners 2012
It's XP, Stupid
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
Achieving Technical Excellence in Your Software Teams - from Devternity
Five XP Practices for Agile Development
Agile Test Driven Development
A Self Funding Agile Transformation
Five XP Practices for Agile Development
How to Adopt Agile at Your Organization
Team up
You cant be agile if your code sucks
It's XP Stupid (2019)
Agile2011 Conference – Key Take Aways
Waste Driven Development - Agile Coaching Serbia Meetup
SpringOne Tour: The Influential Software Engineer
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...
GeneralAssemb.ly Summer Program: Tech from the Ground Up
Ad

More from Allison Pollard (20)

PDF
Resilient Relationships
PPTX
Getting to Better Problems (AgileShift conference)
PPTX
Getting to better problems
PPTX
Strength of our Strengths
PPTX
Little Rock Tech Fest - Change your questions change your world
PDF
Transforming, not transformations
PPTX
Everyday beliefs come true - Creating greatness through the stories we tell @...
PPTX
Everyday beliefs come true - Creating greatness through the stories we tell @...
PPTX
Getting Real without Getting Fired - Saying Things in a Way People Can Heart
PPTX
Getting real without getting fired
PPTX
Introducing Engineering Practices without being hands-on
PPTX
Brewing great agile team dynamics
PPTX
Emerging Leadership - DevOps Days Dallas 2016
PPTX
Changing organizational mindset
PPTX
Information radiators
PPTX
Beyond Removing Impediments - Scrum Master as Team Coach - Houston TechFest 2014
PPTX
Change your questions change your world - Houston TechFest 2014
PPTX
Agile Retrospectives
PDF
Creating strong & passionate agile communities of practice
PPTX
Beyond removing impediments - Scrum Master as team coach
Resilient Relationships
Getting to Better Problems (AgileShift conference)
Getting to better problems
Strength of our Strengths
Little Rock Tech Fest - Change your questions change your world
Transforming, not transformations
Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...
Getting Real without Getting Fired - Saying Things in a Way People Can Heart
Getting real without getting fired
Introducing Engineering Practices without being hands-on
Brewing great agile team dynamics
Emerging Leadership - DevOps Days Dallas 2016
Changing organizational mindset
Information radiators
Beyond Removing Impediments - Scrum Master as Team Coach - Houston TechFest 2014
Change your questions change your world - Houston TechFest 2014
Agile Retrospectives
Creating strong & passionate agile communities of practice
Beyond removing impediments - Scrum Master as team coach

Recently uploaded (20)

PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPT
Introduction Database Management System for Course Database
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
L1 - Introduction to python Backend.pptx
PDF
medical staffing services at VALiNTRY
PDF
top salesforce developer skills in 2025.pdf
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
AI in Product Development-omnex systems
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
ManageIQ - Sprint 268 Review - Slide Deck
CHAPTER 2 - PM Management and IT Context
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Upgrade and Innovation Strategies for SAP ERP Customers
Introduction Database Management System for Course Database
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Navsoft: AI-Powered Business Solutions & Custom Software Development
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Odoo Companies in India – Driving Business Transformation.pdf
L1 - Introduction to python Backend.pptx
medical staffing services at VALiNTRY
top salesforce developer skills in 2025.pdf
2025 Textile ERP Trends: SAP, Odoo & Oracle
AI in Product Development-omnex systems
Softaken Excel to vCard Converter Software.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Design an Analysis of Algorithms II-SECS-1021-03
Online Work Permit System for Fast Permit Processing
VVF-Customer-Presentation2025-Ver1.9.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41

Technical Excellence Doesn't Just Happen - AgileIndy 2016

  • 1. Technical Excellence Doesn't Just Happen – Igniting a Craftsmanship Culture By Allison Pollard and Mike Rieser
  • 3. Allison Pollard ‱ Agile Process Coach and Consultant ‱ Firm Believer in Continuous Improvement ‱ DFW Scrum User Group leader and Dallas Agile Leadership Network board member ‱ Glasses wearer
  • 4. Mike Rieser (ree-sir) ‱ Agile Coach and Consultant ‱ Technical Practices Coach ‱ “Programmer shirt” wearer
  • 5. TECHNICAL EXCELLENCE “In an agile project, technical excellence is measured by both capacity to deliver customer value today and create an adaptable product for tomorrow.” – Jim Highsmith
  • 6. Who’s problem is it? How many programmers does it take to change a light bulb? 6 https://www.flickr.com/photos/belobaba/6058142799/
  • 7. Who’s problem is it? Who should be concerned with the long-term viability of the codebase? 7 https://www.flickr.com/photos/f-oxymoron/5005673112/
  • 8. Agile: build the right thing and build it right. ‱ Building it right means it has a simple design, and is maintainable and flexible. ‱ Successful software needs to be able to evolve to meet expanding needs.Photo by Yann, https://en.wikipedia.org/wiki/File:Taj_Mahal_(Edited).jpeg
  • 9. Excellence Is a Habit! Continuous attention to technical excellence and good design enhances agility. (9th Principle of the Agile Manifesto) https://www.flickr.com/photos/ikoka/16843413711/
  • 11. Discuss Anyone have an anecdote of an extreme in technical excellence? Either ‱ “too much” ‱ or “not enough” That you can share in 30-60 seconds.
  • 12. KINDLING CRAFTSMANSHIP What will spark your culture change?
  • 13. Process & Technical Practices “People have told me that they see Scrum as the management approach to agile development and XP as the engineering practices that make it effective, both bonded together by complimentary practices and goals.” – Ken Schwaber, co-creator of Scrum
  • 14. Flaccid Scrum – Martin Fowler, 2009 ‱ They want to use an agile process, and pick Scrum ‱ They adopt Scrum practices, and maybe even the principles ‱ After a while progress is slow because the code base is a mess Five Years Later
 2014 My advice still stands - ensure you take technical practices seriously when introducing Scrum (or indeed any agile approach). – Martin Fowler
  • 15. From Flaccid to Awesome! Internal Quality (Developer Facing) External Quality (Customer Facing) Advice High High You’re awesome! High Low Get Customer-focused! Low High It won’t Last. Refactor now! Low Low Refactor versus Rewrite?!
  • 16. Agile Requires Quality Waterfall Agile 0 20 40 60 80 100 120 0 18 36 54 Quality over Time 0 20 40 60 80 100 120 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 Quality over Time
  • 17. Process Dependencies 18 Waterfall Upfront Requirements Upfront Design Agile Evolutionary Design Refactoring Automated Developer Tests Test First Test After
  • 19. How Does Technical Debt Occur? IT’s “Done” Business “Accepts” Result True True ✔ True False Communication Problem False True Technical Debt False False ✔
  • 20. How Does Technical Debt Occur? ‱ Complex Requirements – producing overly complicated implementations, unreduced complexity ‱ Over Engineering – developers building more sophisticated code than is necessary (Speculative Development). [Gold Plating] ‱ Business Solutioning – dictating technical solutions rather than bringing problems to be solved. ‱ Ignorance – an incomplete understanding of how the system works ‱ Undone Work – deciding “writing automated tests slows us down” ‱ Good code / wrong place ‱ Cutting Corners – “quick and dirty”
  • 21. Faster is Slower We’ll “fix it later.” When is later? (There is no later!) https://www.flickr.com/photos/9266144@N02/1074851879
  • 22. The Business Made Me Do It! What a Tech Lead says to his Product Owner: “To do it right will take 2 Iterations. If we do it this other way, we can do it in 2 days, but the developers will be forever burdened with fragile code and it will impact our delivery on every project in the future.” What the Product Owner hears: “You can have it in 2 days!” Moral: Be sure you can live with the options you present.
  • 23. Enhances. Really? Compare “Continuous attention to technical excellence and good design enhances agility.” – 9th Principle, Agile Manifesto with “Speed is a long-term side-effect of producing code with the highest possible internal quality.” – Agile Testing by Lisa Crispin, Janet Gregory perhaps Continuous attention to technical excellence and good design sustains agility. https://www.flickr.com/photos/mr_t_in_dc/2322412546/
  • 24. WHAT WE TRIED And now for something completely different.
  • 25. TDD Training ‱ Introduces the practice of Test-Driven Development ‱ Refreshers welcome ‱ ‘Ignites the spark’ around Test-Driven Development and why we need it Outcomes ‱ Shoot for “Test-Infected,” coach the rest ‱ 18,000 Unit Tests with 100% pass rate every build ‱ Tasks for “Unit Tests” have disappeared Red GreenRefactor
  • 26. Maturity Model for TDD 36 SHU (Follow) HA (Break Free) RI (Transcend)  Still learning, follows but may not know why.  New code comes with new tests.  Changed code comes with tests around the changes.  Internalized practice, but still needs a coach.  Understands pros and cons.  All code is written test-first.  Able to go beyond what has been taught  Creates a unit testing framework because they needed one and it didn’t exist.
  • 27. Code Clinics ‱ A non-judgmental place where developers can bring their coding issues to look for feedback or work collaboratively on solutions, watch and help others, get mentoring if needed, identify how to apply concepts from the book or get some code under test. Outcome ‱ Sometimes repurposed into “Code Review” ‱ A few dedicated “Lurkers” ‱ As delivery pressure increases, attendance decreases ‱ Found “classroom exercises” this way https://www.flickr.com/photos/lloyds- screenies/2696378369/
  • 28. Transferring Code Ownership Devs: This is horrible! They ought to do something about this! Coach: Management wants you to have a nice code base to work in, but they aren’t in the code every day. This is where you work every day. If you want a nice place to work, you’re going to have to clean it up. “You” are “they.” Outcome “Don’t touch that!” replaced with “Why didn’t you clean that up?”
  • 29. Tech Lead Interview Process ‱ Recruiting Tech Leads that are evangelists and mentors for the concepts we care about (TDD, Quality, Refactoring, OO Design) ‱ Interview includes: a coding problem, a code review problem, a non-technical-solution problem ‱ Allowed no exceptions for folks hired into a Tech Lead role Outcome ‱ “New DNA” rejecting “Old DNA” ‱ “Supervisor” Tech Leads did not do well ‱ Hit most on: Senior Devs looking for their next level http://disney.wikia.com/wiki/File:Star_wars_movi es_darth_maul_obi-wan_wars_hd-wallpaper- 481469.jpg
  • 30. Code Reviews ‱ Originally no definition of “Production Worthy” ‱ Code is continually ‘assessed’ (every iteration) and feedback given to ensure we continue to steer away from the addition of debt to the codebase ‱ The more frequent the code reviews, the more likely we are to avoid pitfalls at the end of a project Outcome ‱ Reviews with different teams were at different levels ‱ Smell: sign-off became “required” ‱ Now community owned https://www.flickr.com/photos/ericvaughn/972882 9199 https://www.flickr.com/photos/dmcdevit/1143743 631 https://www.flickr.com/photos/26116471@N03/6 788264645
  • 31. Additional Coaching Items ‱ Directive – leave things better than you found it ‱ Free Book – Working with Legacy Code by Feathers ‱ Book Club – meet over lunch to discuss a book on software craftsmanship ‱ Community of Practice – a recurring meeting for developers to communicate across teams on successful solutions and useful tips and techniques applied to the codebase ‱ Continuous Integration – reduces deploy costs and fast-tracks code improvements to teams
  • 32. Practices & Process Where would focusing only on delivery get you? Process TechnicalExcellence
  • 34. Perfect (v.) ‱ Continuous Improvement requires continuous learning – encourage a learning environment. ‱ Problems are one of the first signs that something needs changed. ‱ Get to the root cause, and fix it. The symptoms will go away. https://pixabay.com/en/learn-note-sign-directory- 64058/
  • 35. Invest in your people CFO: What if we train them, and they leave? COO: What if we don’t, and they stay? Copyright: David Franklin/Shutterstock
  • 36. Fan the Flame! ‱ There really is no substitute for a developer that has a spark to make it right. ‱ When you see the spark, encourage the flame!Photo by Billy Hathorn, https://commons.wikimedia.org/wiki/File:Kindling_for_starting_a_campfire_IMG_2454.JPG
  • 37. Create a Safe Environment “Initiative is punishable.” – Russian Proverb ‱ If you want teams to take initiative, you must allow for failure. ‱ Mistakes are an indicator of trying something new. ‱ Teams require autonomy to achieve excellence.
  • 38. LongTermViabilityRequiresDiscipline “Just put it anywhere” only works for a short time! Image from Raiders of the Lost Ark
  • 39. THE END Allison Pollard allison.pollard@improving.com @allison_pollard (Twitter) Mike Rieser mike@mrieser.com @MichaelRieser (Twitter)
  • 40. Best Measure of Code Quality Hard to game.

Editor's Notes

  • #2: Calibrate the audience
  • #7: The answer is “None, it’s a hardware problem.”
  • #8: Hopefully everyone.
  • #9: Building it right could also be described as “rigid in the right places and flexible in the right places.” If Agile is about “embracing change”, then an Agile code base needs to be able to “embrace change.” Successful software may suffer from performance punishment. It did well, so now it needs to do more.
  • #12: Brainstorm in groups what it looks like when a team does not focus on technical excellence and share ideas with large group
  • #13: Brainstorm in groups what it looks like when a team does not focus on technical excellence and share ideas with large group
  • #16: Flaccid Scrum (http://martinfowler.com/bliki/FlaccidScrum.html) 29 Jan 2009 Five years of Flaccid Scrum (http://martinfowler.com/snips/201401291515.html) 29 Jan 2014
  • #18: Agile/Iterative process married with Waterfall technical practices will hit a productivity wall. After a certain number of iterations the ability to deliver with sustainable velocity diminishes. AA.Com released every 2-weeks with 80 defects per release. AppSupport fixed 10-15 defects per week. Adopted a zero-defect “no known defects” policy.
  • #20: We think it implies that there is little serious effort of throwing away unnecessary or redundant functions. Software engineering has been emphasizing the importance of requirements acquisition process but not sufficiently taking care of “unrequirements”. Software Lifetime and its Evolution Process over Generations By Tetsuo Tamai and Yohsuke Torimitsu http://tamai-lab.ws.hosei.ac.jp/pub/icsm92.pdf
  • #21: Cost to Test is also affected by bad code and inadvertent side effects. Also don’t discount FEAR’s effects on testing and change.
  • #22: Ward Cunningham’s originator of the metaphor (roughly): The difference between what the code is and what the code should be.
  • #25: With Good Code/Wrong Place = more dev audience
  • #26: With out Good Code/Wrong Place = more business audience
  • #28: Remember the feedback has a very long delay.
  • #30: As Lean thinking would have you make a decision at the last responsible moment. Let the person with the most information and who understands the implications make the decisions. Also, “Framework made me do it!” also a cop out.
  • #39: This was one of the “attractors” for our hiring developers. Don’t hire Merry-Maids.
  • #41: I needed allies!
  • #46: Review the craftsmanship culture and behaviors that set our coaching direction (i.e., leave things better than you found it, practice and get feedback)
  • #47: Horizontal – Process Low to High Vertical – Technical Excellence Practices Low to High Notice the upper right (highly rated on practices and on process). Focus on process and practices and you’ll get delivery! The most cogent take away is if you focus only on delivery. There is no telling where on this graph you’ll be. On the other hand, if you focus on executing well on your process, and paying attention to your practices. Delivery takes care of itself.
  • #50: “If it stinks, change it.” —Grandma Beck, discussing child-rearing philosophy