pair programming, tdd and other impractical things
DESCRIPTION
"Why should we write our tests first? Isn't that going to slow my development?" "What? Assigning a single task to 2 developers? How is that efficient? What a waste of resources!" "Look, in the perfect world your advises are great, but I have a project to finish here." In this talk Marcello explores efficiency in contrast to effectiveness. He looks into how practices, traditionally accepted as efficient, sometimes turn out to be less effective than a few "impractical" things he has come across.TRANSCRIPT
![Page 1: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/1.jpg)
Pair Programming, TDD and other
impractical things
by @_md
![Page 2: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/2.jpg)
I coach teams intocollaborative software development
![Page 3: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/3.jpg)
software is about people
![Page 4: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/4.jpg)
software is not as much about Øs and 1s
Ø1 1 1ØØØ1ØØ1 1 1ØØØ1ØØ1 1 1ØØ1 1 1 1 1 1ØØ1 1 1Ø 1 1 1ØØØ1ØØ1 1 1ØØØ1ØØ1 1 1ØØØ1ØØ1 1 1ØØØ1ØØ1 1 1ØØØ1ØØ11 1ØØ11 1 1 1 1ØØ11 1 1 1 1 1ØØØ1ØØ11 1ØØ1Ø11 1 1ØØ11 1
![Page 5: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/5.jpg)
as it is about Xs and Ys
![Page 6: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/6.jpg)
it’s people who{use it
![Page 7: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/7.jpg)
it’s people who{use itdevelop it
![Page 8: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/8.jpg)
it’s people who{use itdevelop itorder it
![Page 9: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/9.jpg)
it’s people who{use itdevelop itorder itaccept it...
![Page 10: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/10.jpg)
coding is not as hard as collaborating
![Page 11: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/11.jpg)
1impractical thing #1
Listen to your customer
![Page 12: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/12.jpg)
Customers change their mind all the time
Customers don’t know what they want
Customers are too busy to get involved
If I listen... BANG! Scope creeps in!
Customers want everything!
I keep adding and removing must haves
impractical
![Page 13: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/13.jpg)
why do I need to listen?can I please just sit and write my code?
http
://w
ww
.pho
tore
e.co
m/p
hoto
s/pe
rmal
ink/
1379
88-2
2339
026@
N00
![Page 14: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/14.jpg)
![Page 15: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/15.jpg)
http://www.flickr.com/photos/samsungtomorrow/8096115179/
![Page 16: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/16.jpg)
“Nobody wants a washing machine just to have a machine, but to have clean clothes.”
– Jon Sundbo
![Page 17: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/17.jpg)
When to listen?
![Page 18: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/18.jpg)
Continuously
![Page 19: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/19.jpg)
project mission sprint visionsprint planning sign off retrospective
![Page 20: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/20.jpg)
First create a project mission
based on business goals...
not scope!
project mission sprint planningsprint vision sign off retrospective
![Page 21: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/21.jpg)
http://impactmapping.org
![Page 22: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/22.jpg)
WHY
WHO
HOW
WHAT
HOW
WHAT
WHAT
WHO
HOW
WHAT[Adzic 2012]
impact map
![Page 23: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/23.jpg)
Include a sprint vision (example) workshop
in every iteration, prior to sprint planning
project mission sprint planningsprint vision sign off retrospective
![Page 24: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/24.jpg)
Goal of sprint vision (example) workshop
To define sprint vision and acceptance criteria
![Page 25: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/25.jpg)
As an <actor>I can <behaviour>So that <value>
Given <pre-condition>When <act>Then <expectation>
produ
ct ba
cklog
![Page 26: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/26.jpg)
What if the customer isn’t available?
![Page 27: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/27.jpg)
proxy
![Page 28: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/28.jpg)
Write the form for the comment area
1/2 d
produ
ct ba
cklog
sprint
backl
og
sprint planningsprint vision sign off retrospectiveproject mission
![Page 29: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/29.jpg)
sprint planningsprint vision sign off retrospectiveproject mission
![Page 30: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/30.jpg)
sprint planningsprint vision sign off retrospectiveproject mission
![Page 31: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/31.jpg)
2impractical thing #2
Test Driven Development
![Page 32: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/32.jpg)
It takes time to learn TDD
How can I test something I haven’t done yet?
The team is not confident they can do it
It’s legacy. The code is untestable
Customer is not paying for tests
My manager doesn’t give me time to test
impractical
![Page 33: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/33.jpg)
requirements
designanalysis
codetest
deploy
![Page 34: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/34.jpg)
requirements
designanalysis
codetest
deploy
9 months
![Page 35: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/35.jpg)
![Page 36: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/36.jpg)
most of the cost in software comes from
feedback delay
![Page 37: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/37.jpg)
user stories
testconversation
codedesign
deploy increment
![Page 38: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/38.jpg)
user stories
testconversation
codedesign
20 min
deploy increment
![Page 39: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/39.jpg)
test
coderefactor
![Page 40: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/40.jpg)
test
Arrange
Act
Assert
![Page 41: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/41.jpg)
test
Arrange
Act
Assert
Write the code you wish you had
![Page 42: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/42.jpg)
code
Change the message or get it green, not right
![Page 43: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/43.jpg)
refactor
Now get it right. Without modifying behaviour.
![Page 44: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/44.jpg)
refactor
1. All tests run and pass2. Remove duplication3. Remove opacity4. Remove complexity
![Page 45: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/45.jpg)
results in code
1. Testable2. Modular3. Expressive4. Simple
![Page 46: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/46.jpg)
lack of tests breaks inner quality
1. Viscosity2. Immobility, Rigidity, Fragility3. Unreadable4. Complex
![Page 47: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/47.jpg)
THE CODE IS TERRIBLE!!WE NEED ONE SPRINT TO REFACTOR
![Page 48: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/48.jpg)
Refactoring: changing the structurenot the external behaviour
– Fowler, 99
![Page 49: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/49.jpg)
There is no refactoring without testsThere is no testing without refactoring
![Page 50: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/50.jpg)
“Code is a representation of design” – Jack W. Reeves
![Page 51: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/51.jpg)
refactoring === design
![Page 52: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/52.jpg)
Agile without TDD*is like cinema without popcorn
*or similar practice
![Page 53: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/53.jpg)
3impractical thing #3
Focus on Quality over Schedule
![Page 54: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/54.jpg)
The budget doesn’t cover quality
There is no time for quality
It’s a very simple project
We’ve done it thousand times
Quality is vague, deadlines are real!
Do the needful now. We’ll come back to it later
impractical
![Page 55: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/55.jpg)
Quality is like onions
Outer Quality
Inner Quality
http
://w
ww
.flic
kr.c
om/p
hoto
s/m
onte
regi
na/4
1033
1783
2/
![Page 56: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/56.jpg)
Outer Quality
Works as expected
Looks like expected Focused on goals
Built efficiently
![Page 57: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/57.jpg)
Inner Quality
Modular
Simple
Testable
Expressive
![Page 58: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/58.jpg)
Lack of Outer Quality Causes...
![Page 59: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/59.jpg)
Rework
Bugs
Missing deadlines
Going over budget
Relationships deteriorate
Low Morale
Unusable systems
Project abortion http://www.flickr.com/photos/hayeycart/5900737110/
![Page 60: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/60.jpg)
But what causes poor Outer Quality?
![Page 61: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/61.jpg)
Lack of automated acceptance tests
Lack of customer involvement
Team not focused on Project Mission
Lack of Inner Quality
![Page 62: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/62.jpg)
Lack of automated acceptance tests
Lack of customer involvement
Team not focused on Project Mission
Lack of Inner Quality
![Page 63: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/63.jpg)
Focus on schedule
Haste
Fear
Re-work
Low morale
![Page 64: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/64.jpg)
Focus on quality
Do the right thing
Align with goals
Achieve
Pride
![Page 65: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/65.jpg)
How do you ensure Outer Quality?
![Page 66: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/66.jpg)
Example workshops
Automate acceptance tests
Have a sprint vision statement
Sign off during Sprint
![Page 67: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/67.jpg)
How do you ensure Inner Quality?
![Page 68: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/68.jpg)
TDD
CI (tests, static analysis) from day one
Pair Programming or at least Peer Review
![Page 69: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/69.jpg)
4impractical thing #4
Pair Programming
![Page 70: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/70.jpg)
Why isn’t everyone else doing it?
2 resources 1 task? do the math!
They will just chat and not get anything done
I do all the work the other guy just looks
How do you track the time per task?
Geeks don’t want to talk to other people
impractical
![Page 71: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/71.jpg)
2 developers
sharing a screen
working on the same task
![Page 72: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/72.jpg)
What is Pair Programming about?
![Page 73: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/73.jpg)
![Page 74: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/74.jpg)
Jon Jagger’s Principles of Improvement
Company
Addiction
Feedback
Visibility
Success
Provocation
![Page 75: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/75.jpg)
Pair programming is about improving faster
![Page 76: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/76.jpg)
One of the few proven agile practices
“Strengthening the casefor pair programming”
bit.ly/pair-case
![Page 77: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/77.jpg)
Should pairs be kept together?
![Page 78: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/78.jpg)
Who to pair with who?
![Page 79: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/79.jpg)
Important stuff
✓ Focus on the code
✓ Use the test list✓ Don’t “I-show-you” your pair
✓ Time box decisions
![Page 80: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/80.jpg)
How do I learn this?
![Page 81: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/81.jpg)
5impractical thing #5
Code Katas
![Page 82: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/82.jpg)
What? Write code and delete it? What?
Who’s paying for that?
I am already working 9 to 5
Solving a problem that has already been solved?
I am committed to a sprint
I have a release, can’t join you today
impractical
![Page 83: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/83.jpg)
“Adults don’t think their way into a new way of acting.They act their way into a new way of thinking” –
Richard Pascale
![Page 84: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/84.jpg)
✓ 1 hour every week
✓ developers go to a meeting room
✓ do TDD in pairs
✓ 20 mins each round
✓ at the end of each round:
✓ delete the code and swap pairs
![Page 85: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/85.jpg)
http :// lmgtfy.com/?q=code+kata
![Page 86: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/86.jpg)
“We have a great tool in this language. We can kill it by making a mess. We can kill it by being
arrogant. We can kill it by ignoring the enterprise.”
![Page 87: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/87.jpg)
![Page 88: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/88.jpg)
“Be daring, be different, be impractical, be anything that will assert integrity of purpose and imaginative vision against the play-it-safers, the creatures of the
commonplace, the slaves of the ordinary.”
ImpracticalQuote
![Page 89: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/89.jpg)
I work here
I contribute here
I tweet here @_md
Marcello Duarte
![Page 90: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/90.jpg)
Thank you !
![Page 91: Pair Programming, TDD and other impractical things](https://reader038.vdocuments.site/reader038/viewer/2022103110/54b772f84a7959da648b45a1/html5/thumbnails/91.jpg)
Questions or Comments?
looking for a new challenge? inviqa.com/careers
joind.in/8110 slidesha.re/13sYRzS