SlideShare a Scribd company logo
Why do lazy developers
write beautiful code?
Why lazy developers write beautiful code?
Who is this guy?
@javier_arilos / Javier Arias Losada
Programming as building construction
CASE - Computer-Aided
Software Engineering
Software development is a wicked problem
"wicked": a problem
whose solution can be
defined only by
solving it*.
Engineering essence: elegant efficiency
best
engineering is
born out of an
imperative to
use the
minimum amount
of materials
Is software development like science?
Art
the expression or application of human creative skill and
imagination
producing works to be appreciated primarily for their beauty
Programming and painting
How Picasso paints a woman
https://youtu.be/V1UmPiUlFis
Programming and painting
● sketching
● gradual refinement
Beauty
a combination of qualities, such as shape, colour, or form, that
pleases the aesthetic senses, especially the sight.
"The Magical Number Seven,
Plus or Minus Two: Some
Limits on Our Capacity for
Processing Information" -
George A. Miller, 1956
The Magic Number Seven, +/- Two
"beautiful code" is not an abstract virtue
beautiful code must help the
programmer be happy and
productive
beautiful code is easy to
understand
Yukihiro Matsumoto (Ruby Creator)
Brevity & no redundancy
Familiarity
Simplicity
Flexibility
Balance
Why do lazy developers write beautiful code?
>>> import this, The Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Although practicality beats purity.
If the implementation is hard to
explain, it's a bad idea.
If the implementation is easy to
explain, it may be a good idea.
Namespaces are one honking great idea --
let's do more of those!
Kent Beck (XP/agile)
Passes the tests
Reveals intention
No duplication
Fewest elements
Clean code - Uncle Bob
The only
valid
measurement
of code
quality:
WTFs/minute
Why do lazy developers write beautiful code?
Laziness
the quality of being unwilling to work or use energy; idleness.
Tips for lazy developers
Tip 1. Use the right tools
Optimise for development time, not execution time
Tip 2. Be pragmatic
Tip 3. automate all the things
Tip 4. Fast feedback is king
Law 5. Write beautiful code
Inspired by...
Lazy person
"I will always choose a lazy
person to do a difficult job
because a lazy person will
find an easy way to do it."
Bill Gates
Laziness
“The quality that makes you go to
great effort to reduce overall energy
expenditure. It makes you write
labor-saving programs that other
people will find useful, and document
what you wrote so you don't have to
answer so many questions about it.
Hence, the first great virtue of a
programmer.”
Larry Wall - Perl author
Done. Now I think I can use some rest.
@javier_arilos / Javier Arias Losada
references
Jeff Atwood - Development is Inherently Wicked https://blog.codinghorror.com/development-is-inherently-wicked/
Jeff Atwood - Good Programmers get off their butts https://blog.codinghorror.com/good-programmers-get-off-their-butts/
Yukihiro Matsumoto - Treating Code As an Essay https://www.safaribooksonline.com/library/view/beautiful-code/9780596510046/ch29.html
Code Complete: A Practical Handbook of Software Construction, Second Edition by Steve McConnell: http://a.co/exQvydH
Bartosz Milewski - Category: The Essence of Composition: https://bartoszmilewski.com/2014/11/04/category-the-essence-of-composition/
Joe Armstrong - Why programming is difficult http://joearms.github.io/2014/02/07/why-programming-is-difficult.html
Martin Fowler - Beck Design Rules https://martinfowler.com/bliki/BeckDesignRules.html
Rob C. Martin - Clean Code https://www.amazon.com/dp/0132350882/ref=cm_sw_r_tw_dp_x_g-JXzbJT5GS7X
Abstract
There has been a lot of discussion during the last 50 years about the nature of
programming: Is it an art like poetry? Is it craftsmanship like pottery? Is it an
exact science like physics? Or a non exact science like medicine? Is it engineering
like bridge building?
Whatever the nature of software development is: during this time, a lot of tools and
techniques have appeared to make your lazy-developer life more difficult: Coding
conventions, OOP, FP, SOLID, Design Patterns, Tests, TDD, UML, Use-cases, CASE tools,
Refactoring, RUP, Agile, SCRUM, Continuous Integration, Code Complexity Metrics,
Emergent Architecture, DevOps, SCM... and whatnot!
But, sometimes, being a lazy developer makes you do things that seemed
counterintuitive, in order to pursue your main objective: WORK LESS.

More Related Content

PDF
Prototype Jujutsu - Prototyping Mobile Apps Without Coding
PDF
proper care and feeding for your junior developer
PDF
Layout and Wireframing
PDF
Career in Software Development
PPT
Make Tools
PDF
Wireframing /Prototyping with HTML
PPTX
Lean Prototyping - A Practical Guide
PDF
Building career in Information Technology
Prototype Jujutsu - Prototyping Mobile Apps Without Coding
proper care and feeding for your junior developer
Layout and Wireframing
Career in Software Development
Make Tools
Wireframing /Prototyping with HTML
Lean Prototyping - A Practical Guide
Building career in Information Technology

What's hot (20)

PDF
Killing the golden calf of coding - We are Developers keynote
PDF
Artificial intelligence for humans… #AIDC2018 keynote
PPTX
UX Workshop: How to design a product with great user experience
PPTX
Session on mockups
PDF
Lean prototyping for entrepreneurs
PDF
Sculpting Text: Easing the Pain of Designing in the Browser
PDF
Prototyping for mobile
PDF
Mobile User Experience - Inductive Design Process
PDF
Designers & Developers
PDF
Dawn of the Devices
PDF
Wireframes for the Wicked
PDF
Your Browser is Your SDK
PPTX
The Software Craftsman (2nd edition)
PPTX
The Software Craftsman
PPTX
2021 04 21 Azure Sydney User Group - Scaling a POC to an Enterprise using Azu...
PDF
Crash Course in Wireframing
PDF
Ubercool, pixel perfct & slick design… that just doesn't work
PPTX
Developing an Engineering Mindset by Junaid Javed
PDF
Pavel Nikolov: Inspire
DOCX
CV_Abdul
Killing the golden calf of coding - We are Developers keynote
Artificial intelligence for humans… #AIDC2018 keynote
UX Workshop: How to design a product with great user experience
Session on mockups
Lean prototyping for entrepreneurs
Sculpting Text: Easing the Pain of Designing in the Browser
Prototyping for mobile
Mobile User Experience - Inductive Design Process
Designers & Developers
Dawn of the Devices
Wireframes for the Wicked
Your Browser is Your SDK
The Software Craftsman (2nd edition)
The Software Craftsman
2021 04 21 Azure Sydney User Group - Scaling a POC to an Enterprise using Azu...
Crash Course in Wireframing
Ubercool, pixel perfct & slick design… that just doesn't work
Developing an Engineering Mindset by Junaid Javed
Pavel Nikolov: Inspire
CV_Abdul
Ad

Similar to Why do lazy developers write beautiful code? (20)

PDF
Software Craftsmanship - It's an Imperative
PPT
Software Development in 21st Century
PPTX
Code Quality for a Fresh Start
PDF
Software craftsmanship - Imperative or Hype
PPTX
Clean Code
PPTX
MagmaRails - Passionate Programmer
PPTX
Software Craftsmanship and Agile Code Games
PPTX
Preocupações Desenvolvedor Ágil
PPTX
11 rules for programmer should live by
PDF
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
PDF
Simple Code
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
PDF
Friday final test
PDF
It is a sunny day
PDF
Selective 97 things every programmer should know
PDF
97 thingseveryprogrammershouldknow
PPT
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
KEY
Code Excellence for the Average Programmer
PDF
Patterns, Code Smells, and The Pragmattic Programmer
PDF
Software quality
Software Craftsmanship - It's an Imperative
Software Development in 21st Century
Code Quality for a Fresh Start
Software craftsmanship - Imperative or Hype
Clean Code
MagmaRails - Passionate Programmer
Software Craftsmanship and Agile Code Games
Preocupações Desenvolvedor Ágil
11 rules for programmer should live by
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Simple Code
Writing Better Code - Helping Developers make Decisions.pptx
Friday final test
It is a sunny day
Selective 97 things every programmer should know
97 thingseveryprogrammershouldknow
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
Code Excellence for the Average Programmer
Patterns, Code Smells, and The Pragmattic Programmer
Software quality
Ad

More from Javier Arias Losada (9)

PDF
Europython - Machine Learning for dummies with Python
PDF
Pybcn machine learning for dummies with python
PDF
OSCON - ES6 metaprogramming unleashed
PDF
ES6 metaprogramming unleashed
PPTX
Elastically scalable architectures with microservices. The end of the monolith?
PDF
Full Stack Bus with Javascript, RabbitMQ and Postal.js
PDF
Rabbitmq, amqp Intro - Messaging Patterns
PDF
NoSQL Matters BCN 2013. Sprayer Low Latency, Reliable, Mutichannel Messaging
PDF
From Java to Python: beating the Stockholm syndrome
Europython - Machine Learning for dummies with Python
Pybcn machine learning for dummies with python
OSCON - ES6 metaprogramming unleashed
ES6 metaprogramming unleashed
Elastically scalable architectures with microservices. The end of the monolith?
Full Stack Bus with Javascript, RabbitMQ and Postal.js
Rabbitmq, amqp Intro - Messaging Patterns
NoSQL Matters BCN 2013. Sprayer Low Latency, Reliable, Mutichannel Messaging
From Java to Python: beating the Stockholm syndrome

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
A Presentation on Artificial Intelligence
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Machine learning based COVID-19 study performance prediction
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Teaching material agriculture food technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Electronic commerce courselecture one. Pdf
Modernizing your data center with Dell and AMD
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
A Presentation on Artificial Intelligence
Diabetes mellitus diagnosis method based random forest with bat algorithm
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Monthly Chronicles - July 2025
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
Empathic Computing: Creating Shared Understanding
Machine learning based COVID-19 study performance prediction
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectral efficient network and resource selection model in 5G networks
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Unlocking AI with Model Context Protocol (MCP)
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

Why do lazy developers write beautiful code?

  • 1. Why do lazy developers write beautiful code?
  • 2. Why lazy developers write beautiful code?
  • 3. Who is this guy? @javier_arilos / Javier Arias Losada
  • 4. Programming as building construction CASE - Computer-Aided Software Engineering
  • 5. Software development is a wicked problem "wicked": a problem whose solution can be defined only by solving it*.
  • 6. Engineering essence: elegant efficiency best engineering is born out of an imperative to use the minimum amount of materials
  • 7. Is software development like science?
  • 8. Art the expression or application of human creative skill and imagination producing works to be appreciated primarily for their beauty
  • 10. How Picasso paints a woman https://youtu.be/V1UmPiUlFis
  • 11. Programming and painting ● sketching ● gradual refinement
  • 12. Beauty a combination of qualities, such as shape, colour, or form, that pleases the aesthetic senses, especially the sight.
  • 13. "The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information" - George A. Miller, 1956 The Magic Number Seven, +/- Two
  • 14. "beautiful code" is not an abstract virtue beautiful code must help the programmer be happy and productive beautiful code is easy to understand
  • 15. Yukihiro Matsumoto (Ruby Creator) Brevity & no redundancy Familiarity Simplicity Flexibility Balance
  • 17. >>> import this, The Zen of Python Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Although practicality beats purity. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
  • 18. Kent Beck (XP/agile) Passes the tests Reveals intention No duplication Fewest elements
  • 19. Clean code - Uncle Bob The only valid measurement of code quality: WTFs/minute
  • 21. Laziness the quality of being unwilling to work or use energy; idleness.
  • 22. Tips for lazy developers
  • 23. Tip 1. Use the right tools Optimise for development time, not execution time
  • 24. Tip 2. Be pragmatic
  • 25. Tip 3. automate all the things
  • 26. Tip 4. Fast feedback is king
  • 27. Law 5. Write beautiful code
  • 29. Lazy person "I will always choose a lazy person to do a difficult job because a lazy person will find an easy way to do it." Bill Gates
  • 30. Laziness “The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer.” Larry Wall - Perl author
  • 31. Done. Now I think I can use some rest. @javier_arilos / Javier Arias Losada
  • 32. references Jeff Atwood - Development is Inherently Wicked https://blog.codinghorror.com/development-is-inherently-wicked/ Jeff Atwood - Good Programmers get off their butts https://blog.codinghorror.com/good-programmers-get-off-their-butts/ Yukihiro Matsumoto - Treating Code As an Essay https://www.safaribooksonline.com/library/view/beautiful-code/9780596510046/ch29.html Code Complete: A Practical Handbook of Software Construction, Second Edition by Steve McConnell: http://a.co/exQvydH Bartosz Milewski - Category: The Essence of Composition: https://bartoszmilewski.com/2014/11/04/category-the-essence-of-composition/ Joe Armstrong - Why programming is difficult http://joearms.github.io/2014/02/07/why-programming-is-difficult.html Martin Fowler - Beck Design Rules https://martinfowler.com/bliki/BeckDesignRules.html Rob C. Martin - Clean Code https://www.amazon.com/dp/0132350882/ref=cm_sw_r_tw_dp_x_g-JXzbJT5GS7X
  • 33. Abstract There has been a lot of discussion during the last 50 years about the nature of programming: Is it an art like poetry? Is it craftsmanship like pottery? Is it an exact science like physics? Or a non exact science like medicine? Is it engineering like bridge building? Whatever the nature of software development is: during this time, a lot of tools and techniques have appeared to make your lazy-developer life more difficult: Coding conventions, OOP, FP, SOLID, Design Patterns, Tests, TDD, UML, Use-cases, CASE tools, Refactoring, RUP, Agile, SCRUM, Continuous Integration, Code Complexity Metrics, Emergent Architecture, DevOps, SCM... and whatnot! But, sometimes, being a lazy developer makes you do things that seemed counterintuitive, in order to pursue your main objective: WORK LESS.