SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
@daniel_davis
the best code,

is code never written
the best code, is code never written
@daniel_davis
• Brief Intro
• Focus For The Session
• Why Is It Important
• Figurative Techniques
• Literal Techniques
• Recap
• Q & A
Agenda
2
the best code, is code never written
@daniel_davis
• Founder/Lead Consultant at Elev8
• Business Improvement Consultant
• Developer & Technical Coach
• Innovator, Life Hacker, Maker
• Pro Snowboard Instructor
• Parent of 3 + 2
Brief Intro
3
the best code, is code never written
@daniel_davis
• Discussion over Presentation
• Principles over Prescription
Focus For The Session
4
the best code, is code never written
@daniel_davis
Global cost of code is 

hard to narrow down.
However, I did find that in 

2018, in the US alone the 

cost for poor quality code 

was $2,840,000,000,000.
Why Is It Important
5
the best code, is code never written
@daniel_davis
Code Is Expensive -
- Hard To Write
- Cost Of Delay
- Complicated To Maintain
We Are Expensive - (prefer to keep it so)
- Smart / Talented / Rare
- Specialized Skillsets
- Dedicated & Committed Mindset
Why Is It Important
6
the best code, is code never written
@daniel_davis
Pizza Delivery Service Voice App that was solved by a
simple 1-(800) phone number that already existed.
YAGNI - (You Aren’t Gonna Need It)
- Lines of code are a liability, don’t look at it as the "number of
lines produced”, but rather the “number of lines spent”.
- More explicitly, lines of code saved is directly correlated to
dollars we didn’t spend.
- Minimizes waste.
Figurative Techniques
7
the best code, is code never written
@daniel_davis
NIH - (Not Invented Here)
- Beg (to use it)
- Borrow (if already written don’t reinvent it)
- Steal (note ‘stealing’ to learn is far different from stealing for profit)
- Cheat To Win (it’s was bad when we were kids, it’s cool now)
There is a fine line when it comes to relying on others code.
Make sure the source is trusted and reliable and 

test protect it as if it was your own.
Figurative Techniques
8
the best code, is code never written
@daniel_davis
FITYMI - (Fake It Till You Make It)
- Mock, Fake, Stub, Etc… don’t make the actual thing it until
you know you absolutely need it.
- “It” is far better suited to your emotions, ie. confidence, pride,
etc… than it is actual skills.
Figurative Techniques
9
“The cheapest, fastest, and most reliable components of a
computer system are those that aren’t there.”
- Gordon Bell
the best code, is code never written
@daniel_davis
Not all your thoughts on the solution should turn into code.
In fact most shouldn’t. Be aggressively de-selective.
KISS - (Keep It Stupid Simple)
- What's the simplest thing that could possibly work? 

(Beck/Cunningham)
- ST2CPWAKYO2HRJOM (The Simplest Thing That Could Possibly
Work And Keep You Out Of Human Resources, Jail, Or Morgue)
- Simple is subjective, it’s really just focusing on “one thing”
Figurative Techniques
10
the best code, is code never written
@daniel_davis
“A complex system that works is inevitably found to have
evolved from a simple system that works.”
- John Gall
ED - (Emergent Design or Evolutionary Design)
- Primitive Whole, which builds in sophistication over time.
- Pursue high-value and high-risk items early.
- Follow Scientific Method
- Give it time to learn, but don’t be afraid to fail fast.
Figurative Techniques
11
the best code, is code never written
@daniel_davis
MVP -
Figurative Techniques
12
the best code, is code never written
@daniel_davis
Pretotyping -
- Avoid “Can we build it?” or “Will it work?” Instead focus on
“Should we build it at all?” or “If we build it, will people buy it?”
- Pretotypes make it possible to make a go/no-go decision at a
fraction of the cost of prototypes: hours or days instead of
weeks or months, and pennies instead of dollars.
Literal Techniques
13
“Design until you feel you understand the problem.

Write code until you realize you don’t.”
- Software Engineering Conference, 1968
the best code, is code never written
@daniel_davis
Literal Techniques
ATDD & TDD Visualized -
- The shared practice of - Red - Green - Refactor
14
the best code, is code never written
@daniel_davis
The biggest advantage TDD (Design) provides is the 

ability to protect you from yourself.
TDD - (Test Driven Design/Development)
- Writing a tests before code helps assure only necessary code is
written.
- Doing so inherently makes the code simple and clear.
- Ensures the individual units of the system are built correctly.
Literal Techniques
15
the best code, is code never written
@daniel_davis
The biggest advantage ATDD provides is the ability to
protect the business from themselves.
ATDD - (Acceptance Test Driven Design/Dev)
- Same approach as TDD, however these tests are generally
written from a business/stakeholders perspective.
- Helps devs identify the appropriate code to write, that is, code
that reflects the outcomes desired.
- Meant to ensure the business value of the system is being met.
Literal Techniques
16
the best code, is code never written
@daniel_davis
“The single biggest problem with communication 

is the illusion that it has taken place.”
- George Bernard Shaw
WWAC - (Well Written Acceptance Criteria)
- Acceptance Criteria that has real and legit content and context
to the business value that is being requested.
- Understandable by any and all team members.
- Realistic and Achievable.
Literal Techniques
17
the best code, is code never written
@daniel_davis
Rules are meant to be broken. Make sure they are
manageable and have some kind of ranking and/or priority.
DoR & DoD - (Definition of Ready & Done)
- Driven more from a team standards approach.
- Still also Realistic and Achievable.
- Meet the need and ONLY the need.
- Don’t over-complicate them.
Literal Techniques
18
the best code, is code never written
@daniel_davis
Figurative
• YAGNI
• NIH
• FITYMI
• KISS
• ED
Recap
Literal
• Pretotyping
• TDD
• ATDD
• WWAC
• DoR & DoD
19
the best code, is code never written
@daniel_davis
Resources
• https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-
report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
• https://www.artima.com/intv/simplest.html
• https://insights.dice.com/2018/07/05/tech-pros-steal-code-good-idea-bad/
• https://www.pretotyping.org/uploads/1/4/0/9/14099067/
pretotype_it_2nd_pretotype_edition-2.pdf
• https://github.com/northofnormal/ConferenceTalks/blob/master/
qualityvsquantity.pdf
• https://docs.google.com/document/d/
1A1sLe2R-9XhRpOiAZfKii2944PM5tUKS17EgaiGCnLE/export?format=pdf
20
the best code, is code never written
@daniel_davis
Q & A
21
the best code, is code never written
@daniel_davis
Now, go unto the world 

& not write some code!
22
the best code, is code never written
@daniel_davis
Thank you!
Daniel Davis
dan@elev8.services
@daniel_davis
linkedin.com/in/davisdaniel
23

Contenu connexe

Tendances

5-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 20155-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 2015Wojciech Seliga
 
Software development management slides by George Berkowski (Hailo)
Software development management slides by George Berkowski (Hailo)Software development management slides by George Berkowski (Hailo)
Software development management slides by George Berkowski (Hailo)MiniBar
 
The Technical Debt Trap - NDC Oslo 2014
The Technical Debt Trap - NDC Oslo 2014The Technical Debt Trap - NDC Oslo 2014
The Technical Debt Trap - NDC Oslo 2014Doc Norton
 
Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesMike Clement
 
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Alberto Brandolini
 
Identifying and Managing Technical Debt
Identifying and Managing Technical DebtIdentifying and Managing Technical Debt
Identifying and Managing Technical Debtzazworka
 
Play to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DiceMike Clement
 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionAlberto Brandolini
 

Tendances (11)

5-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 20155-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 2015
 
Software development management slides by George Berkowski (Hailo)
Software development management slides by George Berkowski (Hailo)Software development management slides by George Berkowski (Hailo)
Software development management slides by George Berkowski (Hailo)
 
The Technical Debt Trap - NDC Oslo 2014
The Technical Debt Trap - NDC Oslo 2014The Technical Debt Trap - NDC Oslo 2014
The Technical Debt Trap - NDC Oslo 2014
 
The gordian knot
The gordian knotThe gordian knot
The gordian knot
 
The alignment
The alignmentThe alignment
The alignment
 
Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code Games
 
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
 
Identifying and Managing Technical Debt
Identifying and Managing Technical DebtIdentifying and Managing Technical Debt
Identifying and Managing Technical Debt
 
Play to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and Dice
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw edition
 

Similaire à Best Code Techniques

As a Salesforce Developer I will... 7 Ground Rules for Success, Robert Sösemann
As a Salesforce Developer I will... 7 Ground Rules for Success, Robert SösemannAs a Salesforce Developer I will... 7 Ground Rules for Success, Robert Sösemann
As a Salesforce Developer I will... 7 Ground Rules for Success, Robert SösemannCzechDreamin
 
10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmyWojciech Seliga
 
Software Design Notes
Software Design NotesSoftware Design Notes
Software Design NotesDiego Pacheco
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Synerzip
 
Code Quality Makes Your Job Easier
Code Quality Makes Your Job EasierCode Quality Makes Your Job Easier
Code Quality Makes Your Job EasierTonya Mork
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressmtoppa
 
Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)David Benjamin
 
Architecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to SuccessArchitecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to SuccessRandy Williams
 
Open Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration PresentationOpen Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration Presentationdarryl_lehmann
 
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de PauwOSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de PauwNETWAYS
 
Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?Daniel Davis
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitablePromet Source
 
20 things I wish I had known about modern product development by Andy Birds -...
20 things I wish I had known about modern product development by Andy Birds -...20 things I wish I had known about modern product development by Andy Birds -...
20 things I wish I had known about modern product development by Andy Birds -...Andy Birds
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereDaniel Davis
 
Top 10 Things To Do If You Want To Get Fired Over A WordPress Project
Top 10 Things To Do If You Want To Get Fired Over A WordPress ProjectTop 10 Things To Do If You Want To Get Fired Over A WordPress Project
Top 10 Things To Do If You Want To Get Fired Over A WordPress ProjectWilliam Bergmann
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelinesLalit Kale
 
Common Characteristics of the Greatest Developers
 Common Characteristics of the Greatest Developers Common Characteristics of the Greatest Developers
Common Characteristics of the Greatest DevelopersDaniel Davis
 
Clean Code Software Engineering
Clean Code Software Engineering Clean Code Software Engineering
Clean Code Software Engineering Inocentshuja Ahmad
 
Don't let your tests slow you down
Don't let your tests slow you downDon't let your tests slow you down
Don't let your tests slow you downDaniel Irvine
 
How to successfully engage enterprise software vendors – software selection
How to successfully engage enterprise software vendors – software selectionHow to successfully engage enterprise software vendors – software selection
How to successfully engage enterprise software vendors – software selectionJohn Cachat
 

Similaire à Best Code Techniques (20)

As a Salesforce Developer I will... 7 Ground Rules for Success, Robert Sösemann
As a Salesforce Developer I will... 7 Ground Rules for Success, Robert SösemannAs a Salesforce Developer I will... 7 Ground Rules for Success, Robert Sösemann
As a Salesforce Developer I will... 7 Ground Rules for Success, Robert Sösemann
 
10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy
 
Software Design Notes
Software Design NotesSoftware Design Notes
Software Design Notes
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
 
Code Quality Makes Your Job Easier
Code Quality Makes Your Job EasierCode Quality Makes Your Job Easier
Code Quality Makes Your Job Easier
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPress
 
Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)
 
Architecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to SuccessArchitecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to Success
 
Open Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration PresentationOpen Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration Presentation
 
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de PauwOSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
 
Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & Profitable
 
20 things I wish I had known about modern product development by Andy Birds -...
20 things I wish I had known about modern product development by Andy Birds -...20 things I wish I had known about modern product development by Andy Birds -...
20 things I wish I had known about modern product development by Andy Birds -...
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
 
Top 10 Things To Do If You Want To Get Fired Over A WordPress Project
Top 10 Things To Do If You Want To Get Fired Over A WordPress ProjectTop 10 Things To Do If You Want To Get Fired Over A WordPress Project
Top 10 Things To Do If You Want To Get Fired Over A WordPress Project
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
 
Common Characteristics of the Greatest Developers
 Common Characteristics of the Greatest Developers Common Characteristics of the Greatest Developers
Common Characteristics of the Greatest Developers
 
Clean Code Software Engineering
Clean Code Software Engineering Clean Code Software Engineering
Clean Code Software Engineering
 
Don't let your tests slow you down
Don't let your tests slow you downDon't let your tests slow you down
Don't let your tests slow you down
 
How to successfully engage enterprise software vendors – software selection
How to successfully engage enterprise software vendors – software selectionHow to successfully engage enterprise software vendors – software selection
How to successfully engage enterprise software vendors – software selection
 

Plus de Daniel Davis

Safely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & LeadershipSafely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & LeadershipDaniel Davis
 
code is easy. humans are hard.
code is easy. humans are hard.code is easy. humans are hard.
code is easy. humans are hard.Daniel Davis
 
not BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND itnot BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND itDaniel Davis
 
assert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easyassert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easyDaniel Davis
 
A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!Daniel Davis
 
The 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = FreedomThe 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = FreedomDaniel Davis
 
Your Messy Agile Career
Your Messy Agile CareerYour Messy Agile Career
Your Messy Agile CareerDaniel Davis
 
Story Mapping Made Real - 2h
Story Mapping Made Real - 2hStory Mapping Made Real - 2h
Story Mapping Made Real - 2hDaniel Davis
 
What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?Daniel Davis
 
Learning Agility over Learning Agile
Learning Agility over Learning AgileLearning Agility over Learning Agile
Learning Agility over Learning AgileDaniel Davis
 

Plus de Daniel Davis (10)

Safely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & LeadershipSafely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & Leadership
 
code is easy. humans are hard.
code is easy. humans are hard.code is easy. humans are hard.
code is easy. humans are hard.
 
not BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND itnot BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND it
 
assert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easyassert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easy
 
A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!
 
The 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = FreedomThe 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = Freedom
 
Your Messy Agile Career
Your Messy Agile CareerYour Messy Agile Career
Your Messy Agile Career
 
Story Mapping Made Real - 2h
Story Mapping Made Real - 2hStory Mapping Made Real - 2h
Story Mapping Made Real - 2h
 
What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?
 
Learning Agility over Learning Agile
Learning Agility over Learning AgileLearning Agility over Learning Agile
Learning Agility over Learning Agile
 

Dernier

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 

Dernier (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 

Best Code Techniques

  • 2. the best code, is code never written @daniel_davis • Brief Intro • Focus For The Session • Why Is It Important • Figurative Techniques • Literal Techniques • Recap • Q & A Agenda 2
  • 3. the best code, is code never written @daniel_davis • Founder/Lead Consultant at Elev8 • Business Improvement Consultant • Developer & Technical Coach • Innovator, Life Hacker, Maker • Pro Snowboard Instructor • Parent of 3 + 2 Brief Intro 3
  • 4. the best code, is code never written @daniel_davis • Discussion over Presentation • Principles over Prescription Focus For The Session 4
  • 5. the best code, is code never written @daniel_davis Global cost of code is 
 hard to narrow down. However, I did find that in 
 2018, in the US alone the 
 cost for poor quality code 
 was $2,840,000,000,000. Why Is It Important 5
  • 6. the best code, is code never written @daniel_davis Code Is Expensive - - Hard To Write - Cost Of Delay - Complicated To Maintain We Are Expensive - (prefer to keep it so) - Smart / Talented / Rare - Specialized Skillsets - Dedicated & Committed Mindset Why Is It Important 6
  • 7. the best code, is code never written @daniel_davis Pizza Delivery Service Voice App that was solved by a simple 1-(800) phone number that already existed. YAGNI - (You Aren’t Gonna Need It) - Lines of code are a liability, don’t look at it as the "number of lines produced”, but rather the “number of lines spent”. - More explicitly, lines of code saved is directly correlated to dollars we didn’t spend. - Minimizes waste. Figurative Techniques 7
  • 8. the best code, is code never written @daniel_davis NIH - (Not Invented Here) - Beg (to use it) - Borrow (if already written don’t reinvent it) - Steal (note ‘stealing’ to learn is far different from stealing for profit) - Cheat To Win (it’s was bad when we were kids, it’s cool now) There is a fine line when it comes to relying on others code. Make sure the source is trusted and reliable and 
 test protect it as if it was your own. Figurative Techniques 8
  • 9. the best code, is code never written @daniel_davis FITYMI - (Fake It Till You Make It) - Mock, Fake, Stub, Etc… don’t make the actual thing it until you know you absolutely need it. - “It” is far better suited to your emotions, ie. confidence, pride, etc… than it is actual skills. Figurative Techniques 9 “The cheapest, fastest, and most reliable components of a computer system are those that aren’t there.” - Gordon Bell
  • 10. the best code, is code never written @daniel_davis Not all your thoughts on the solution should turn into code. In fact most shouldn’t. Be aggressively de-selective. KISS - (Keep It Stupid Simple) - What's the simplest thing that could possibly work? 
 (Beck/Cunningham) - ST2CPWAKYO2HRJOM (The Simplest Thing That Could Possibly Work And Keep You Out Of Human Resources, Jail, Or Morgue) - Simple is subjective, it’s really just focusing on “one thing” Figurative Techniques 10
  • 11. the best code, is code never written @daniel_davis “A complex system that works is inevitably found to have evolved from a simple system that works.” - John Gall ED - (Emergent Design or Evolutionary Design) - Primitive Whole, which builds in sophistication over time. - Pursue high-value and high-risk items early. - Follow Scientific Method - Give it time to learn, but don’t be afraid to fail fast. Figurative Techniques 11
  • 12. the best code, is code never written @daniel_davis MVP - Figurative Techniques 12
  • 13. the best code, is code never written @daniel_davis Pretotyping - - Avoid “Can we build it?” or “Will it work?” Instead focus on “Should we build it at all?” or “If we build it, will people buy it?” - Pretotypes make it possible to make a go/no-go decision at a fraction of the cost of prototypes: hours or days instead of weeks or months, and pennies instead of dollars. Literal Techniques 13 “Design until you feel you understand the problem.
 Write code until you realize you don’t.” - Software Engineering Conference, 1968
  • 14. the best code, is code never written @daniel_davis Literal Techniques ATDD & TDD Visualized - - The shared practice of - Red - Green - Refactor 14
  • 15. the best code, is code never written @daniel_davis The biggest advantage TDD (Design) provides is the 
 ability to protect you from yourself. TDD - (Test Driven Design/Development) - Writing a tests before code helps assure only necessary code is written. - Doing so inherently makes the code simple and clear. - Ensures the individual units of the system are built correctly. Literal Techniques 15
  • 16. the best code, is code never written @daniel_davis The biggest advantage ATDD provides is the ability to protect the business from themselves. ATDD - (Acceptance Test Driven Design/Dev) - Same approach as TDD, however these tests are generally written from a business/stakeholders perspective. - Helps devs identify the appropriate code to write, that is, code that reflects the outcomes desired. - Meant to ensure the business value of the system is being met. Literal Techniques 16
  • 17. the best code, is code never written @daniel_davis “The single biggest problem with communication 
 is the illusion that it has taken place.” - George Bernard Shaw WWAC - (Well Written Acceptance Criteria) - Acceptance Criteria that has real and legit content and context to the business value that is being requested. - Understandable by any and all team members. - Realistic and Achievable. Literal Techniques 17
  • 18. the best code, is code never written @daniel_davis Rules are meant to be broken. Make sure they are manageable and have some kind of ranking and/or priority. DoR & DoD - (Definition of Ready & Done) - Driven more from a team standards approach. - Still also Realistic and Achievable. - Meet the need and ONLY the need. - Don’t over-complicate them. Literal Techniques 18
  • 19. the best code, is code never written @daniel_davis Figurative • YAGNI • NIH • FITYMI • KISS • ED Recap Literal • Pretotyping • TDD • ATDD • WWAC • DoR & DoD 19
  • 20. the best code, is code never written @daniel_davis Resources • https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018- report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf • https://www.artima.com/intv/simplest.html • https://insights.dice.com/2018/07/05/tech-pros-steal-code-good-idea-bad/ • https://www.pretotyping.org/uploads/1/4/0/9/14099067/ pretotype_it_2nd_pretotype_edition-2.pdf • https://github.com/northofnormal/ConferenceTalks/blob/master/ qualityvsquantity.pdf • https://docs.google.com/document/d/ 1A1sLe2R-9XhRpOiAZfKii2944PM5tUKS17EgaiGCnLE/export?format=pdf 20
  • 21. the best code, is code never written @daniel_davis Q & A 21
  • 22. the best code, is code never written @daniel_davis Now, go unto the world 
 & not write some code! 22
  • 23. the best code, is code never written @daniel_davis Thank you! Daniel Davis dan@elev8.services @daniel_davis linkedin.com/in/davisdaniel 23