SlideShare a Scribd company logo
1 of 28
Download to read offline
The Silent
Productivity
Killer
Paul Phillips
paulp@improving.org
Source: It's xkcd, yes.
Ex-Hacker Tells All!
• One-time scalac hacker
• Now full-time malcontent
• Voted Mr. Congeniality by scala community
• Zero years in a row (and counting)
Jon Pretty admits it took
him 10 years to amass 10
years scala experience.
The picture suggests he
was enjoying the forty
weeks vacation standard in
Western Europe.
I dub thee Jon Pretty Slow.
< 10 years
Scientifically Determined Facts
about me, in the domain of interpersonal orientation
How Software Is Made
Initiate
build
sequence!
TIME
PASSES
You're older than you've ever been
and now you're even older
and now you're even older
and now you're even older
!
You're older than you've ever been
and now you're even older
and now you're older still
!
-- They Might Be Giants
Hmm, let's try it with
that one brick three
millimeters to the left.
Wait a Minute
• The titular "silent killer" is not the
time spent waiting
• It is the inhibition of flow state
• Outside of flow, you are but a
shadow of your best self
Mihaly Csikszentmihalyi
(mee-hy cheek-sent-mə-hy-ee)
identifies these preconditions
for flow:
!
1) Goals are clear
2) Feedback is immediate
3) A balance between
opportunity and capacity
The Lag Analogy
• Imagine editing system files on a faraway server
under a 6 second echo lag. No mistakes!
• Is the time to completion only 6 seconds greater?
• Is your error rate only "6 seconds" higher?
• Is the task only "6 seconds" less enjoyable?
• How often do we tolerate a "6 second lag"
when writing code?
• To a first approximation: always
• Optimistically: way too often
The Lag Analogy
The Lag Analogy
• "You should have been using screen/tmux!"
• Right: why tolerate such uncivilized conditions?
• A highly responsive layer coalesces inputs and
batches them to the high-latency system
• It's madness to have to traverse every
requirement to connect cause to effect
What IS a compiler?
• Responsiveness is a (or THE) key to a UX
• It is mandatory to achieve flow state
• We are unwise to turn this critical task over to
a general purpose compiler
• More responsive does not mean faster:
usually it means slower! (i.e. less throughput)
repl startup
• Initialize the compiler in a separate thread
• Print the prompt immediately
• Result: startup feels impossibly faster!
• Yet "minimum time to first result" is unchanged
• Responsiveness, where perception IS reality
multitasking
• scalac is so slow to build, I always had two work
trees going simultaneously
• Context switching in that codebase is not cheap
for the wetware
• Incremental compilation is useless in scalac
Interrupting Myself
• Everyone seems to agree interruptions are costly
• I experience no interruptions - from humans
• Flow state is no less elusive for that
• "Flow interruptions" are everywhere
"incremental comp..."
• Incremental compilation recompiles less (at best)
• I say: recompile never! Recompiling is rebooting
• First requirement is a functional compiler
• And we derive the output from the delta
A change to a base trait
may incur the
recompilation of
over one thousand files.
!
The regeneration of 100
MB of class files.
!
While the ΔOutput
requires writing 4 bytes to
a single classfile.
Skeptical Hippo
"that's impossib..."
• Yes, very likely it's impossible for scala, and most
existing languages
• But a language can be engineered around it
• And a language SHOULD be engineered around it
"who needs a comp..."
• Bad news: most software cannot be reasoned about
• Try some pure reasoning against a few scalac bugs
• We can design better software, but that won't unwrite
the rest of it
• And regardless, frobbing knobs and seeing what
happens is how most of the humans learn
"The next step is to transfer some
psychic energy each day from tasks
that we don’t like doing, or from
passive leisure, into something we
never did before, or something we
enjoy doing but don’t do often enough
because it seems too much trouble.
!
There are literally millions of potentially
interesting things in the world to see,
to do, to learn about. But they don’t
become actually interesting until we
devote attention to them."
Mihaly Csikszentmihalyi

More Related Content

Similar to Keynote, LambdaConf 2014 - The Silent Productivity Killer

Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Hugo Pinto
 
Howtostopsucking
HowtostopsuckingHowtostopsucking
Howtostopsucking
Hugo Pinto
 
iMyCom:Tripping along iOS development of Langauge Communication tool
iMyCom:Tripping along iOS development of Langauge Communication tooliMyCom:Tripping along iOS development of Langauge Communication tool
iMyCom:Tripping along iOS development of Langauge Communication tool
Vijaya Prakash Kandel
 
There Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 KeynoteThere Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 Keynote
John Anderson
 
Watch Your Language! - What my Mother Taught Me about Being an Engineer.
Watch Your Language! - What my Mother Taught Me about Being an Engineer.Watch Your Language! - What my Mother Taught Me about Being an Engineer.
Watch Your Language! - What my Mother Taught Me about Being an Engineer.
Neal Richardson Sr
 

Similar to Keynote, LambdaConf 2014 - The Silent Productivity Killer (20)

Scratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieScratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry Pie
 
Yet Another Dan Kaminsky Talk (Black Ops 2014)
Yet Another Dan Kaminsky Talk (Black Ops 2014)Yet Another Dan Kaminsky Talk (Black Ops 2014)
Yet Another Dan Kaminsky Talk (Black Ops 2014)
 
Generating Sequences with Deep LSTMs & RNNS in julia
Generating Sequences with Deep LSTMs & RNNS in juliaGenerating Sequences with Deep LSTMs & RNNS in julia
Generating Sequences with Deep LSTMs & RNNS in julia
 
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
 
Howtostopsucking
HowtostopsuckingHowtostopsucking
Howtostopsucking
 
How to stop sucking and be awesome instead
How to stop sucking and be awesome insteadHow to stop sucking and be awesome instead
How to stop sucking and be awesome instead
 
How To Be A Real Developer In Two Easy Steps
How To Be A Real Developer In Two Easy StepsHow To Be A Real Developer In Two Easy Steps
How To Be A Real Developer In Two Easy Steps
 
Steelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Python
 
Do Languages Matter?
Do Languages Matter?Do Languages Matter?
Do Languages Matter?
 
iMyCom:Tripping along iOS development of Langauge Communication tool
iMyCom:Tripping along iOS development of Langauge Communication tooliMyCom:Tripping along iOS development of Langauge Communication tool
iMyCom:Tripping along iOS development of Langauge Communication tool
 
Things you should know if you plan to ship a game
Things you should know if you plan to ship a gameThings you should know if you plan to ship a game
Things you should know if you plan to ship a game
 
Software + Babies
Software + BabiesSoftware + Babies
Software + Babies
 
How To Run a 5 Whys (With Humans, Not Robots)
How To Run a 5 Whys (With Humans, Not Robots)How To Run a 5 Whys (With Humans, Not Robots)
How To Run a 5 Whys (With Humans, Not Robots)
 
Car hacking 101 rev2
Car hacking 101 rev2Car hacking 101 rev2
Car hacking 101 rev2
 
There Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 KeynoteThere Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 Keynote
 
Watch Your Language! - What my Mother Taught Me about Being an Engineer.
Watch Your Language! - What my Mother Taught Me about Being an Engineer.Watch Your Language! - What my Mother Taught Me about Being an Engineer.
Watch Your Language! - What my Mother Taught Me about Being an Engineer.
 
Codebits Handivi
Codebits HandiviCodebits Handivi
Codebits Handivi
 
There Is No JavaScript
There Is No JavaScriptThere Is No JavaScript
There Is No JavaScript
 
Noam Kfir - There is no Java Script - code.talks 2015
Noam Kfir - There is no Java Script - code.talks 2015Noam Kfir - There is no Java Script - code.talks 2015
Noam Kfir - There is no Java Script - code.talks 2015
 
Java in High Frequency Trading
Java in High Frequency TradingJava in High Frequency Trading
Java in High Frequency Trading
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 

Keynote, LambdaConf 2014 - The Silent Productivity Killer

  • 2. Ex-Hacker Tells All! • One-time scalac hacker • Now full-time malcontent • Voted Mr. Congeniality by scala community • Zero years in a row (and counting)
  • 3. Jon Pretty admits it took him 10 years to amass 10 years scala experience. The picture suggests he was enjoying the forty weeks vacation standard in Western Europe. I dub thee Jon Pretty Slow.
  • 5. Scientifically Determined Facts about me, in the domain of interpersonal orientation
  • 7.
  • 9. TIME PASSES You're older than you've ever been and now you're even older and now you're even older and now you're even older ! You're older than you've ever been and now you're even older and now you're older still ! -- They Might Be Giants
  • 10.
  • 11. Hmm, let's try it with that one brick three millimeters to the left.
  • 12.
  • 13. Wait a Minute • The titular "silent killer" is not the time spent waiting • It is the inhibition of flow state • Outside of flow, you are but a shadow of your best self
  • 14. Mihaly Csikszentmihalyi (mee-hy cheek-sent-mə-hy-ee) identifies these preconditions for flow: ! 1) Goals are clear 2) Feedback is immediate 3) A balance between opportunity and capacity
  • 15. The Lag Analogy • Imagine editing system files on a faraway server under a 6 second echo lag. No mistakes! • Is the time to completion only 6 seconds greater? • Is your error rate only "6 seconds" higher? • Is the task only "6 seconds" less enjoyable?
  • 16. • How often do we tolerate a "6 second lag" when writing code? • To a first approximation: always • Optimistically: way too often The Lag Analogy
  • 17. The Lag Analogy • "You should have been using screen/tmux!" • Right: why tolerate such uncivilized conditions? • A highly responsive layer coalesces inputs and batches them to the high-latency system • It's madness to have to traverse every requirement to connect cause to effect
  • 18. What IS a compiler? • Responsiveness is a (or THE) key to a UX • It is mandatory to achieve flow state • We are unwise to turn this critical task over to a general purpose compiler • More responsive does not mean faster: usually it means slower! (i.e. less throughput)
  • 19. repl startup • Initialize the compiler in a separate thread • Print the prompt immediately • Result: startup feels impossibly faster! • Yet "minimum time to first result" is unchanged • Responsiveness, where perception IS reality
  • 20. multitasking • scalac is so slow to build, I always had two work trees going simultaneously • Context switching in that codebase is not cheap for the wetware • Incremental compilation is useless in scalac
  • 21. Interrupting Myself • Everyone seems to agree interruptions are costly • I experience no interruptions - from humans • Flow state is no less elusive for that • "Flow interruptions" are everywhere
  • 22. "incremental comp..." • Incremental compilation recompiles less (at best) • I say: recompile never! Recompiling is rebooting • First requirement is a functional compiler • And we derive the output from the delta
  • 23. A change to a base trait may incur the recompilation of over one thousand files. ! The regeneration of 100 MB of class files. ! While the ΔOutput requires writing 4 bytes to a single classfile.
  • 24.
  • 26. "that's impossib..." • Yes, very likely it's impossible for scala, and most existing languages • But a language can be engineered around it • And a language SHOULD be engineered around it
  • 27. "who needs a comp..." • Bad news: most software cannot be reasoned about • Try some pure reasoning against a few scalac bugs • We can design better software, but that won't unwrite the rest of it • And regardless, frobbing knobs and seeing what happens is how most of the humans learn
  • 28. "The next step is to transfer some psychic energy each day from tasks that we don’t like doing, or from passive leisure, into something we never did before, or something we enjoy doing but don’t do often enough because it seems too much trouble. ! There are literally millions of potentially interesting things in the world to see, to do, to learn about. But they don’t become actually interesting until we devote attention to them." Mihaly Csikszentmihalyi