SlideShare a Scribd company logo
©2010 Improving Enterprises, Inc.
Good Code
What, Why, and How to Get There
Austin Java Users Group 2015
Jane Prusakova
Josh Rizzo
@Improving Enterprises College Station
©2010 Improving Enterprises, Inc.
What is “good”?
Functional
Bug-free
Performant
Good design
Tested
Testable
Easy to change
©2010 Improving Enterprises, Inc.
Usability
Users and clients Developers
©2010 Improving Enterprises, Inc.
©2010 Improving Enterprises, Inc.
“Programs must be written for
people to read, and only
incidentally for machines to
execute.”
– Abelson and Sussman
©2010 Improving Enterprises, Inc.
Readability has value
NOW
Code is an asset
affects productivity
monetary value
Readability has value
OVER TIME
Software evolves over time
Work by many different teams
Changes affect value
©2010 Improving Enterprises, Inc.
Readability has cost
More hard work
More time
More training
©2010 Improving Enterprises, Inc.
How good
code does not
happen
©2010 Improving Enterprises, Inc.
Readable code
©2010 Improving Enterprises, Inc.
It was hard to write
It should be hard to
read
Who is responsible?
©2010 Improving Enterprises, Inc.
Lets make code more…
See: https://github.com/joshrizzo/ReadabilityJava
©2010 Improving Enterprises, Inc.
Visible code
White space!
Spacing and indent matter
The Law of Demeter
– avoid the “train wreck” coding style
Step 1
©2010 Improving Enterprises, Inc.
Small steps
One thing at a time
Glance-sized chunks
“Programming can be fun, so can
cryptography; however they should not be
combined.”
– Kreitzberg and Shneiderman
Step 2
©2010 Improving Enterprises, Inc.
Code with a narrative
Use naming to show intent
Testable code
“Debugging is twice as hard as writing the
code in the first place. Therefore, if you write
the code as cleverly as possible, you are, by
definition, not smart enough to debug it.”
– Brian W. Kernighan
Step 3
©2010 Improving Enterprises, Inc.
Single Responsibility
Architecture
Interface design
"Good design adds value faster than it adds
cost."
- Thomas C. Gale
Step 4
©2010 Improving Enterprises, Inc.
Easy to read
Single level of abstraction
“The purpose of abstraction is not to be
vague, but to create a new semantic level in
which one can be absolutely precise.”
– Edsger Dijkstra
Step 5
©2010 Improving Enterprises, Inc.
Readable++
Simplicity
©2010 Improving Enterprises, Inc.
“Everything should be made
as simple as possible, but not
simpler.”
– Albert Einstein
©2010 Improving Enterprises, Inc.
Simple vs Fast
Correctness more important than speed
Simple code is more likely to be and stay
correct
Modularize code w/ performance concerns
Optimize locally
©2010 Improving Enterprises, Inc.
©2010 Improving Enterprises, Inc.
Simple vs Flexible
Re-use is rare
Predictions of re-use are poor
Raises complexity significantly
Unused => not working
©2010 Improving Enterprises, Inc.
Simple vs Clever
Over engineering
Mixing abstractions
Inappropriate patterns
Complicated syntax
©2010 Improving Enterprises, Inc.
Good Code
What, Why, and How to Get There
https://github.com/joshrizzo/ReadabilityJava/
Austin Java Users Group 2015
Jane Prusakova
Josh Rizzo
@Improving Enterprises College Station

More Related Content

PPTX
What is good code?
PPTX
Lets talk About Good Code (Dallas TechFest 2014)
PDF
ACME or OMEGA - case analysis
PPTX
CROI hypothesis workshop
PPTX
IT Opportunities in Nepal
PPT
Creatin Business Value from Emerging Technologies
PDF
buying an iPad on contract no upfront cost
PPTX
Application Logging for fun and profit. Houston TechFest 2012
What is good code?
Lets talk About Good Code (Dallas TechFest 2014)
ACME or OMEGA - case analysis
CROI hypothesis workshop
IT Opportunities in Nepal
Creatin Business Value from Emerging Technologies
buying an iPad on contract no upfront cost
Application Logging for fun and profit. Houston TechFest 2012

Similar to Lets talk about good code (20)

PPTX
Fast, Secured and Safe Online Prescribing Tool in iOS and ANDROID
PPT
Building a great team: power of a nudge.
PDF
DevOps in Practice: When does "Practice" Become "Doing"?
PDF
PDF
Windows® 7 Professional is All About Monetizing Productivity Gains for IT fir...
PDF
Energized Work: Software that means business
PDF
Industry Perspective: DevOps - What it Means for the Average Business
PPTX
GGS Overview Fall 2012
PPTX
Software Development Essential Skills
PPTX
ASCII Austin Keynote by Intel SMB MSP Marketing Director, Eric Townsend keyno...
PPTX
Ways to Hire iOS Programmer for Your Company in 2023.pptx
PDF
Form Function Class 6, Manila, Philippines 14/11/2015
PDF
Vesterli worst adf_project_ever_wildcard_2013
PPTX
How Automation Reveals Technical Debt
PDF
FMDlite app to support Falsified Medicines Directive in UK
PDF
Continuous Integration and Continuous Deployment
PDF
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
PDF
TrenDigi_Service_Solutions_2014
PDF
Transform Your Business with Our Custom iOS App Development Services.pdf
PPTX
Introduction to Puppet Enterprise 2016.5
Fast, Secured and Safe Online Prescribing Tool in iOS and ANDROID
Building a great team: power of a nudge.
DevOps in Practice: When does "Practice" Become "Doing"?
Windows® 7 Professional is All About Monetizing Productivity Gains for IT fir...
Energized Work: Software that means business
Industry Perspective: DevOps - What it Means for the Average Business
GGS Overview Fall 2012
Software Development Essential Skills
ASCII Austin Keynote by Intel SMB MSP Marketing Director, Eric Townsend keyno...
Ways to Hire iOS Programmer for Your Company in 2023.pptx
Form Function Class 6, Manila, Philippines 14/11/2015
Vesterli worst adf_project_ever_wildcard_2013
How Automation Reveals Technical Debt
FMDlite app to support Falsified Medicines Directive in UK
Continuous Integration and Continuous Deployment
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
TrenDigi_Service_Solutions_2014
Transform Your Business with Our Custom iOS App Development Services.pdf
Introduction to Puppet Enterprise 2016.5
Ad

More from Jane Prusakova (20)

PPTX
Software architecture houstontechfest2020
PPTX
Estimating software development
PPTX
Better remote teams
PPTX
Thoughts on building software architecture
PPTX
Improving IT Performance
PPTX
Agile Software Development
PPTX
Questions of Ethics in Software Development
PPTX
Just startcoding
PPTX
Just start coding
PPTX
Good code
PPTX
Managing remote teams.
PPTX
Gender-neutral Recruiting
PPTX
Privacy In The Digital Age
PPTX
Interview: a Learning Conversation
PPTX
Effective Code Review
PPTX
Effective Code Review
PPTX
Motivating Knowledge Workers
PPTX
Pragmatic Agile: distributed teams
PPTX
A case for remote teams
PPTX
Women in Technology. Things that hold women back.
Software architecture houstontechfest2020
Estimating software development
Better remote teams
Thoughts on building software architecture
Improving IT Performance
Agile Software Development
Questions of Ethics in Software Development
Just startcoding
Just start coding
Good code
Managing remote teams.
Gender-neutral Recruiting
Privacy In The Digital Age
Interview: a Learning Conversation
Effective Code Review
Effective Code Review
Motivating Knowledge Workers
Pragmatic Agile: distributed teams
A case for remote teams
Women in Technology. Things that hold women back.
Ad

Recently uploaded (20)

PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Digital Strategies for Manufacturing Companies
PDF
top salesforce developer skills in 2025.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Nekopoi APK 2025 free lastest update
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
medical staffing services at VALiNTRY
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Digital Strategies for Manufacturing Companies
top salesforce developer skills in 2025.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
CHAPTER 2 - PM Management and IT Context
Nekopoi APK 2025 free lastest update
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Designing Intelligence for the Shop Floor.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Odoo Companies in India – Driving Business Transformation.pdf
medical staffing services at VALiNTRY
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Operating system designcfffgfgggggggvggggggggg
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Design an Analysis of Algorithms I-SECS-1021-03
Odoo POS Development Services by CandidRoot Solutions
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025

Lets talk about good code

Editor's Notes

  • #3: Usability: The system needs to be functional for the users and clients. Usability: The code needs to be readable for the current and future development of the system.
  • #5: My most popular slide from the #live360 keynote: a comical explanation of how software dev keeps getting harder.
  • #6: Abelson founding director of both Creative Commons and the Free Software Foundation. Sussman and Abelson are co-authors of popular textbook “Structure and Interpretation of Computer Programs”
  • #14: Edsger Dijkstra was a Dutch computer scientist, known for introducing the idea that GOTO is a smell, developing shortest path algorithm, and developing the concept of formal verification.
  • #15: Ben Shneiderman studied programmers and their interactions with the code, developed principles of interface design, worked on information visualization and usability.
  • #16: Ben Shneiderman studied programmers and their interactions with the code, developed principles of interface design, worked on information visualization and usability.
  • #17: Tom Gale is an automobile designer.
  • #19: This quote first appear in Reader’s Digest in 1977, with no supporting references. Attributed to Einstein from someone’s memory, not found in his writings.
  • #20: This quote first appear in Reader’s Digest in 1977, with no supporting references. Attributed to Einstein from someone’s memory, not found in his writings.
  • #22: Bucatti Veyron, top speed 267mph, total production 450 unit. Toyota Corolla, top-selling car for many years. Doesn’t go faster than 111mph. Sold 1.2 units world-wide.