SlideShare a Scribd company logo
we don’t type
for a living
plural programming practices
for productivity and profit
@jonfazzaro
It is counter intuitive, but 2 people working
at a single computer will add as much
functionality as two working separately except
that it will be much higher in quality. With
increased quality comes big savings later in
the project.
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
Pair programming makes the
heart-grindingly slow process
of software development go
faster.
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
manual work
(time * people = value)
knowledge work
(time * people = maybe)
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
1. strong pairing
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
project
Software
development
timeline
for an idea to go from
your head into the
computer, it MUST go
through someone
else's hands.
Llewelyn Falco
Agile Coach
Awesome Name-haver
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
2. strong breaking
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
focus
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
The human eye has an almost infinite
capacity for not seeing what it does not
want to see.... Programmers, if left to
their own devices, will ignore the most
glaring errors in their output—errors that
anyone else can see in an instant.
Gerald Weinberg
The Psychology of
Computer Programming
focus tunnel vision
focus tunnel vision
“clever”-ness
complexity
bugs
debt
rework
cost
We Don't Type for a Living: Plural Programming Practices for Productivity and Profit
continuous
integration and
delivery
simultaneous
integration and
delivery
done
If you want something
marked done, give it
to a solo developer.
If you want something
to get done, give it
to a pair.
If you want something
to stay done, give it
to a mob.
If you want to go
fast, don’t go alone.
we don’t type
for a living
plural programming practices
for productivity and profit
@jonfazzaro

More Related Content

PDF
How Do You Build Software? Software Engineering Practices of an Agile Developer
PDF
UCD / IxD Introduction - User centric design, interaction design
PDF
Introducing Pair Programming
PDF
Pair programming demystified
PPTX
CS519 - homework project presentation
PDF
GMO'less Software Development Practices
PPT
Pair Programming Presentation
PPTX
Lecture 01
How Do You Build Software? Software Engineering Practices of an Agile Developer
UCD / IxD Introduction - User centric design, interaction design
Introducing Pair Programming
Pair programming demystified
CS519 - homework project presentation
GMO'less Software Development Practices
Pair Programming Presentation
Lecture 01

What's hot (16)

PDF
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
PDF
Pair Programming (2014)
PDF
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
PDF
VS2017 saturday - Historical debugging with intelli trace in visual studio
PDF
How To Review The Sprints Efficiently
PPTX
Software development philosophies v1
PPT
Plugin style EA
PPT
Software Development in 21st Century
PDF
DevOpsDays Istanbul 2019 - AI with a devops mindset
PPTX
To document or not to document? An exploratory study on developers' motivatio...
PPT
Lecture 1 introduction to applied software project management
PPTX
introduction to software enginering
PPTX
Developing windows 8 apps
PPT
Continuous Integration
PDF
Rapidly prototyping games_FITC Amsterdam_2013
PPT
Pair Programming: overview and concepts
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Pair Programming (2014)
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
VS2017 saturday - Historical debugging with intelli trace in visual studio
How To Review The Sprints Efficiently
Software development philosophies v1
Plugin style EA
Software Development in 21st Century
DevOpsDays Istanbul 2019 - AI with a devops mindset
To document or not to document? An exploratory study on developers' motivatio...
Lecture 1 introduction to applied software project management
introduction to software enginering
Developing windows 8 apps
Continuous Integration
Rapidly prototyping games_FITC Amsterdam_2013
Pair Programming: overview and concepts
Ad

Similar to We Don't Type for a Living: Plural Programming Practices for Productivity and Profit (20)

PPTX
Software development project management
PPTX
No silver-bullllet-1
PPT
Slides chapter 1
PPTX
No silver bullet summary (paper)
PDF
Instantly Connecting Developers Across The Miles
PPTX
Handoff Tool - Sympli & iOS 14 features
PDF
Distributed cat herding
PDF
From 🤦 to 🐿️
PPTX
object recognition ppt for minor Project
PDF
Google Reveals Gemini 2.5 Pro I/O: Surpasses GPT-4 in Programming, Supports N...
PDF
Fixing security by fixing software development
PPT
Teamwork Presentation
PDF
Vesterli worst adf_project_ever_wildcard_2013
PPTX
Workshop on software product development the backdrop
PDF
From DevOps to NoOps how not to get Equifaxed Apidays
PPTX
Software development methodologies of dumb and cunning
PPTX
Poor Man's Kanban
PDF
Building real things for real people 2009
PDF
Spm tutorials
PPTX
Agilelessons scanagile-final 2013
Software development project management
No silver-bullllet-1
Slides chapter 1
No silver bullet summary (paper)
Instantly Connecting Developers Across The Miles
Handoff Tool - Sympli & iOS 14 features
Distributed cat herding
From 🤦 to 🐿️
object recognition ppt for minor Project
Google Reveals Gemini 2.5 Pro I/O: Surpasses GPT-4 in Programming, Supports N...
Fixing security by fixing software development
Teamwork Presentation
Vesterli worst adf_project_ever_wildcard_2013
Workshop on software product development the backdrop
From DevOps to NoOps how not to get Equifaxed Apidays
Software development methodologies of dumb and cunning
Poor Man's Kanban
Building real things for real people 2009
Spm tutorials
Agilelessons scanagile-final 2013
Ad

Recently uploaded (20)

PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Nekopoi APK 2025 free lastest update
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
assetexplorer- product-overview - presentation
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPT
Introduction Database Management System for Course Database
Digital Systems & Binary Numbers (comprehensive )
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Which alternative to Crystal Reports is best for small or large businesses.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
L1 - Introduction to python Backend.pptx
Reimagine Home Health with the Power of Agentic AI​
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Nekopoi APK 2025 free lastest update
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Computer Software and OS of computer science of grade 11.pptx
Operating system designcfffgfgggggggvggggggggg
assetexplorer- product-overview - presentation
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
How to Choose the Right IT Partner for Your Business in Malaysia
Introduction Database Management System for Course Database

We Don't Type for a Living: Plural Programming Practices for Productivity and Profit

Editor's Notes

  • #3: They buried the lede here What do you say after reading that? Quality is good. Savings are nice. But what do the people paying for the nerds hear?
  • #4: Eat your vegetables This doesn’t connect Here’s the real problem. “What else does it do?”
  • #5: Software development is SLOW You will be up against this problem for your whole career as a dev
  • #6: Here’s my rewrite. Two nerds, one keyboard How does this make us faster? Another question.
  • #7: Is this cat writing code? No, he never stops typing We don’t type for a living
  • #8: (story of the chalk x invoice) Great story Illustrates manual work vs knowledge work thinking
  • #9: folding laundry, doing dishes, factory line linear and predictable
  • #10: This is knowledge work Unpredictable, reacts non-linearly to adjustments of time and resources. Setbacks This is because in knowledge work, we are forever slipping backward each time we move forward. Trial and error A creative process
  • #11: So, back to this guy. The slowness of knowledge work. The slowness of knowledge work is an illusion based on our expectations of manual work. We completely discount the cost of the creative, generative work inherent in it, And we expect to be able treat it like linear task work. This inevitably disappoints everyone. So, how do we make this faster? We have to think about going faster differently.
  • #12: A Wrinkle in Time? Not the movie Traditionally, we think of the shortest distance between two points as a straight line. To get to point B, we just have to slog it out.
  • #13: Tesseract Folds time and space We can speed up the non-linearity of Knowledge work with a non-linear approach to the work.
  • #14: But this doesn’t just happen when we put two developers together. There’s are some dos and don’ts here. pairing is not two machines one watches one checks reddit Every team is different, Every pair is different. But here are two essential practices to ensure that you and your team get what you pay for with pairing and mobbing.
  • #15: A new way to split the work. We know from Lean Manufacturing that to make any system go faster, we have to first identify its bottleneck. The bottleneck in Knowledge Work is our singular locus of attention in search of the next right right idea. By adding more brains to the same problem at the same time, we are adding resources to the bottleneck. we multiply the points of attention. we multiply the ideas generated, and we multiply our chances of finding the right next thing to try.
  • #16: The traditional approach. We add more brains to the problem. But then we give them each their own programming task! division of labor. Frederick Taylor was right about one thing--in order to be efficient in solving a problem, we have to first decompose it. We have to break it down. But there’s a problem here. Do you see it?
  • #17: Let’s take a closer look. What is it that we do when we develop software? This is just what happens when coding. Not to mention the other components of software development like requirements, QA, and operations. There’s a lot going on all at once. How much of this resource—this brain—is really able to focus on that bottleneck? Could we break this down further?
  • #18: This is where pairing and mobbing come in. We split the job between two or more people. This lightens each person’s cognitive load And the pair can move quickly through a complex task.
  • #19: As far as what you do want to do, there is one sentence I keep coming back to to articulate it.
  • #20: Driver and navigator
  • #22: Attention is the resource to manage for Knowledge Work. We can’t manage attention directly, but can care for it through managing our time. This problem multiplies in importance when programming in a group. One of the most counterproductive states a team can be in is pairing/mobbing while one or more in the group are tired, and their attention is flagging.
  • #23: An effective way to prevent this is to Take a break before you need a break. As a group. This sounds easy. But it is not. Use a timer. Preferably one that BREAKS your flow.
  • #24: Mobster is my current favorite. Yes, I said to BREAK your flow. But Csikszentmihalyi! Flow state!
  • #25: I read that 20 minutes? Don’t we need focus to code? Yes, sometimes
  • #26: Don’t we need to focus for long periods of time to do this work? Don’t nerds take up to 20 minutes to recover from an interruption? Don’t we need that DEEP FOCUS to write code? Yes, sometimes. But remember, when we solo, we’re trying to juggle all of the aspects of this job at once. This of course would require intense concentration, and would probably fall to pieces at an interruption. More often than not, what I see happen as a side-effect of this difficult balancing act is that one or more aspects of the work suffer from even trying.
  • #27: To this point…
  • #28: And what you may call focus, Gerry and I call tunnel vision. So yeah, when you are heads-down and focused, without interruption, you could write the wrong code really fast.
  • #29: This results in cleverness complexity bugs technical debt rework Things that hemorrhage your project’s budget. But are they more costly than two people coding together at the same computer?
  • #30: Let’s talk about cost. “Getting done sooner doesn’t help me if this breaks my budget in half, we’re paying devs by the hour!” Again, this assumes a linear relationship between fingers on keyboards, hours, and features delivered. Focus on division of labor But we don’t deliver “tasks”. We deliver Features! What about the integration? As it happens, this aspect of managing project work is so often missed, that the missing it itself has a name:
  • #31: In other words, we focus and obsess over the division and individual execution of the work While totally blowing off how difficult and expensive it will be to integrate and deliver the valuable whole afterward. So while we are clutching our pearls over the idea of more than one nerd at a keyboard, we turn a blind eye to the time spent on merges, deployments, code reviews, back-and-forth with QA, etc. dribbling every task out to a slow, painful, expensive death.
  • #32: DevOps/Continuous practices are an attempt to directly take on coordination neglect On a team of solo developers, this is an uphill battle.
  • #33: Pairs, however, have a much easier time. Mobs have it licked. Speaking of finishing things.
  • #34: Let’s talk about this word. What does this word mean? Ask everyone on your team to write down an answer. Every one of them will probably be different. But what if you combined those different answers? Together, they are probably right Solo dev: Rework Bugs Side effects Missed scenarios Technical debt SLOW drastically reduced by plural dev Gives us a living definition of done
  • #39: Thank you!