SlideShare une entreprise Scribd logo
1  sur  19
The Obstacles
of
Developer Productivity
Laurence Chen
blog: replware.medium.com
website: replware.dev
CEO@REPLWARE
Agenda
● Definition of productivity
● Premature optimization
● Software complexity
● Uncertainty
● Culture issues
● Conclusions
Definition of productivity
● Productivity = results / time
● What is the result of the corporate?
○ revenue
○ image
○ customer satisfaction
○ market share
○ time to market
○ etc.
Premature optimization
● Complex Arch
● Complex types
● 100% test coverage
● Design patterns
● Fancy libraries
How to escape from premature
optimization?
● Don’t ask yourself
○ Should I use XXX? (XXX is a solution: complex type,
complex Arch, etc.)
● Ask yourself:
○ As to achieve OOO, what possible solutions can I take?
(OOO is certain property that you want in your software.)
○ Is OOO really needed? Do I need it now?
Paul Graham is wrong about the
language productivty
● Beating the averages
○ Line number is the most important factor in programming
language productivity.
○ macro: code which write code.
○ Lisp is great because of macro.
Mutable States vs Clojure
● Clojure is designed to handle
states well.
● Mutable states and control structures
>> line numbers
● The developer productivty
comparison
○ Clojure: Java ~= 5: 1
Big O analysis - algorithm complexity
Software complexity
● How to understand a software?
○ Informal reasoning
○ Testing
The problem of modeling mutable
states (identity)
How to cope with mutable states?
● Functional programming
○ A good programming langauge
○ Using immutable collection by leveraging library support
● reboot your process
The way we work
● Managers ask developers to estimate software
development time, and then chases the deadline.
● Manage people, but seldom manage the uncertainty.
The management of uncertainty
● Are there any rabbit holes?
● Is the work properly shaped up?
● When to give up?
● How to present the progress?
● Take a look at ShapeUp
Culture issues
● Academic elitism - reward competition in
classroom.
● Whiteboard - reward solving puzzles, not
problems.
● Optimization of resume - reward chasing
solutions, not results.
Feedback system
● Do we have the feedback system rewarding
developer productivity?
● A bad system will beat a good person every
time. - Edward Deming
Culture Change and Change
Management
● Culture is the set of beliefs which governs
behavior.
● Change the belief by
○ Removing “cognitive dissonance” --- saying one thing and
doing another
○ Example and avatar
○ Getting help from an outsider (For example, a consultant)
In conclusions
● Developer productivity depends on
environment.
● There are 4 obvious productivity obstacles.
○ Premature optimization
○ Mutable states
○ No management of uncertainty
○ Wrong feedback system in our culture
● My solutions are in blue colors.
Final words
● To developer: Focus on your problem instead
of chasing solutions.
● To manager: Manage results, not tasks nor
inputs.
Reference
● Managing for results - Peter Drucker
● Radical Simplicity in Technology
(https://www.radicalsimpli.city/) - Stephan Schmidt
● Beating the averages - Paul Graham
● Out of the Tar Pit
(http://curtclifton.net/papers/MoseleyMarks06a.pdf) -
Ben Moseley, Peter Marks
● Shape Up (https://basecamp.com/shapeup/webbook) -
Ryan Singer
● Process Consulting - Alan Weiss

Contenu connexe

Similaire à The obstacles of developer productivity.pptx

Similaire à The obstacles of developer productivity.pptx (20)

CP vs Project - Elevate Ep. 02.pdf
CP vs Project  - Elevate Ep. 02.pdfCP vs Project  - Elevate Ep. 02.pdf
CP vs Project - Elevate Ep. 02.pdf
 
Ace the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAce the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.com
 
Post-Agile Methodologies and all that Jazz
Post-Agile Methodologies and all that JazzPost-Agile Methodologies and all that Jazz
Post-Agile Methodologies and all that Jazz
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x Engineer
 
Engineer - Mastering the Art of Software
Engineer - Mastering the Art of SoftwareEngineer - Mastering the Art of Software
Engineer - Mastering the Art of Software
 
Devising UCD for Organizational Growth
Devising UCD for Organizational GrowthDevising UCD for Organizational Growth
Devising UCD for Organizational Growth
 
How to be an effective Tech Lead
How to be an effective Tech LeadHow to be an effective Tech Lead
How to be an effective Tech Lead
 
How to save developers from drowning in Scrum? by Kenan Halilovic
How to save developers from drowning in Scrum? by Kenan HalilovicHow to save developers from drowning in Scrum? by Kenan Halilovic
How to save developers from drowning in Scrum? by Kenan Halilovic
 
Learn PM Craft to Help You Crack Interviews by Meta Product Lead
Learn PM Craft to Help You Crack Interviews by Meta Product LeadLearn PM Craft to Help You Crack Interviews by Meta Product Lead
Learn PM Craft to Help You Crack Interviews by Meta Product Lead
 
Product Management Interview Crash Course by Google PM
Product Management Interview Crash Course by Google PMProduct Management Interview Crash Course by Google PM
Product Management Interview Crash Course by Google PM
 
The Holistic Programmer
The Holistic ProgrammerThe Holistic Programmer
The Holistic Programmer
 
Fred Williams 2018
Fred Williams 2018Fred Williams 2018
Fred Williams 2018
 
Digitizing Workflows by Disney Product Leader
Digitizing Workflows by Disney Product LeaderDigitizing Workflows by Disney Product Leader
Digitizing Workflows by Disney Product Leader
 
Product Management Management
Product Management ManagementProduct Management Management
Product Management Management
 
Roles of a PM in a fast-shipping startup
Roles of a PM in a fast-shipping startupRoles of a PM in a fast-shipping startup
Roles of a PM in a fast-shipping startup
 
It's not tools, Stupid
It's not tools, StupidIt's not tools, Stupid
It's not tools, Stupid
 
How to become Industry ready engineers.pdf
How to become  Industry ready engineers.pdfHow to become  Industry ready engineers.pdf
How to become Industry ready engineers.pdf
 
Tdd distilled... in java
Tdd distilled... in javaTdd distilled... in java
Tdd distilled... in java
 
What is the Relation Between PM and UX Roles by Cohealo UX PM
What is the Relation Between PM and UX Roles by Cohealo UX PMWhat is the Relation Between PM and UX Roles by Cohealo UX PM
What is the Relation Between PM and UX Roles by Cohealo UX PM
 
Sumbry (Airbnb) - If You Build It, They Might Come
Sumbry (Airbnb) - If You Build It, They Might ComeSumbry (Airbnb) - If You Build It, They Might Come
Sumbry (Airbnb) - If You Build It, They Might Come
 

Plus de Laurence Chen

Plus de Laurence Chen (7)

Create your library
Create your libraryCreate your library
Create your library
 
on log messages
on log messageson log messages
on log messages
 
A simple tool for debug (tap>)
A simple tool for debug (tap>)A simple tool for debug (tap>)
A simple tool for debug (tap>)
 
On component interface
On component interfaceOn component interface
On component interface
 
Schema, validation and generative testing
Schema, validation and generative testingSchema, validation and generative testing
Schema, validation and generative testing
 
The immutable database datomic
The immutable database   datomicThe immutable database   datomic
The immutable database datomic
 
The productivity brought by Clojure
The productivity brought by ClojureThe productivity brought by Clojure
The productivity brought by Clojure
 

Dernier

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

The obstacles of developer productivity.pptx

  • 1. The Obstacles of Developer Productivity Laurence Chen blog: replware.medium.com website: replware.dev CEO@REPLWARE
  • 2. Agenda ● Definition of productivity ● Premature optimization ● Software complexity ● Uncertainty ● Culture issues ● Conclusions
  • 3. Definition of productivity ● Productivity = results / time ● What is the result of the corporate? ○ revenue ○ image ○ customer satisfaction ○ market share ○ time to market ○ etc.
  • 4. Premature optimization ● Complex Arch ● Complex types ● 100% test coverage ● Design patterns ● Fancy libraries
  • 5. How to escape from premature optimization? ● Don’t ask yourself ○ Should I use XXX? (XXX is a solution: complex type, complex Arch, etc.) ● Ask yourself: ○ As to achieve OOO, what possible solutions can I take? (OOO is certain property that you want in your software.) ○ Is OOO really needed? Do I need it now?
  • 6. Paul Graham is wrong about the language productivty ● Beating the averages ○ Line number is the most important factor in programming language productivity. ○ macro: code which write code. ○ Lisp is great because of macro.
  • 7. Mutable States vs Clojure ● Clojure is designed to handle states well. ● Mutable states and control structures >> line numbers ● The developer productivty comparison ○ Clojure: Java ~= 5: 1
  • 8. Big O analysis - algorithm complexity
  • 9. Software complexity ● How to understand a software? ○ Informal reasoning ○ Testing
  • 10. The problem of modeling mutable states (identity)
  • 11. How to cope with mutable states? ● Functional programming ○ A good programming langauge ○ Using immutable collection by leveraging library support ● reboot your process
  • 12. The way we work ● Managers ask developers to estimate software development time, and then chases the deadline. ● Manage people, but seldom manage the uncertainty.
  • 13. The management of uncertainty ● Are there any rabbit holes? ● Is the work properly shaped up? ● When to give up? ● How to present the progress? ● Take a look at ShapeUp
  • 14. Culture issues ● Academic elitism - reward competition in classroom. ● Whiteboard - reward solving puzzles, not problems. ● Optimization of resume - reward chasing solutions, not results.
  • 15. Feedback system ● Do we have the feedback system rewarding developer productivity? ● A bad system will beat a good person every time. - Edward Deming
  • 16. Culture Change and Change Management ● Culture is the set of beliefs which governs behavior. ● Change the belief by ○ Removing “cognitive dissonance” --- saying one thing and doing another ○ Example and avatar ○ Getting help from an outsider (For example, a consultant)
  • 17. In conclusions ● Developer productivity depends on environment. ● There are 4 obvious productivity obstacles. ○ Premature optimization ○ Mutable states ○ No management of uncertainty ○ Wrong feedback system in our culture ● My solutions are in blue colors.
  • 18. Final words ● To developer: Focus on your problem instead of chasing solutions. ● To manager: Manage results, not tasks nor inputs.
  • 19. Reference ● Managing for results - Peter Drucker ● Radical Simplicity in Technology (https://www.radicalsimpli.city/) - Stephan Schmidt ● Beating the averages - Paul Graham ● Out of the Tar Pit (http://curtclifton.net/papers/MoseleyMarks06a.pdf) - Ben Moseley, Peter Marks ● Shape Up (https://basecamp.com/shapeup/webbook) - Ryan Singer ● Process Consulting - Alan Weiss