SlideShare a Scribd company logo
1 of 21
Daily Habits of
Highly Agile Developers
Nitin Bhide
http://thinkingcraftsman.in
19th Aug 2018
Disclaimer
 All the habits/suggestions are backed up theory,
anecdotal evidence and research.
 I practice what I preach. I have followed these
practices in my coding everyday for last 25 years.
 These are NOT myths, urban legends and common
practices followed without thought.
 No animals were harmed in developing these ideas (I
am not sure about Developers)
WHY AGILE WORKS ?
Lets start with a Fundamental Question
Relative Cost of Fixing Defects
WRONG
Cost of Fixing a Defect
Cost
TimeError Introduced
Depends on distance between
‘defect introduced’ to ‘defect fixed’
August 18 5
Do not fall for the illusion that by preventing errors, you
won’t have errors to fix. The truth is, the cost of
preventing errors is often far greater than the cost of
fixing them.
- Ed Catmull, Creativity, Inc.
Minimizing Cost of Defects
 Focus on reducing the distance between defect
introduced to defect fixed
 Use Techniques to detect defect as quickly as possible
(FAIL IMMEDIATLEY AND VISIBLY)
 Once the defect detected/reported, FIX IT
IMMEDIATELY
HOW TO FAIL FAST DAILY ?
How to fail fast daily ?
 What are the ways by which you can “reduce the
distance” between “coding defect introduced to
coding defect detected” especially in newly written
code?
◦ Of course once the defect is detected you have to fix it
immediately to get real benefits
 What are the ways by which you can make it easy to
‘detect newly introduced defect’
CODE WITH ZERO WARNING AND
ZERO STATIC ANALYSIS ERRORS
Compiler Warnings and Static
Analysis Errors
 What is warning level in your module ?
 How many warnings are there in your code today ?
 Do you fix warnings immediately ?
 Warnings in a newly written code has ‘extremely low
distance of defect introduced to defected detected’ and
hence extremely low cost of fixing the defect.
Compiler Warnings
 Every generation of compiler improves on potential
problems detection.
 A Piece of Code with Zero Warnings usually has
extremely low incidences of coding bugs.
 Compiler Warnings and Static Analysis Errors MUST
BE FIXED WITHIN A DAY
COMMIT EARLY AND COMMIT
OFTEN
Commit Your Code Changes Frequently
 Commit your code changes ‘frequently’
◦ At least twice a day
◦ 10 times a day or more is perfectly fine
 Key Purpose of Version Control is allow you quickly
recover from mistakes.
 DO NOT INSIST MANUALLY REVIEWING EVERY
CODE COMMIT
MANUAL CODE REVIEWS ARE
OVERRATED
Minimize Manual Code Reviews
 Code Review checklists DON’T work
 Typical Manual Code Review process results in ‘FAIL
LATER”.
SMALL FUNCTIONS
Small Functions
 Entire function should be visible without any Page
UP/Down
◦ Approx. 25 lines (max)
 Because entire function is visible it is much more easier to
understand impact of newly added code.
◦ Automatically reduces code complexity
◦ Reduces number of returns in a function (makes easier to write
error handling)
◦ Reduces code duplication
◦ Properly Naming function results in easier ‘debugging’ as logic is
automatically documented in sequence of function names
Small Function
 In 1950, G. A. Miller’s experimental results suggested
that humans are generally able to hold only seven
plus or minus two units of information in short-
term memory.
 These limits impact the debugging capacity/skills of
developers.
◦ For developer it is difficult to analyse the impact a change if
code complexity is greater than 7.
◦ Small functions automatically limit the complexity
 Great Code is like a Beautiful Zen Garden. You have to
do small things (like weeding and watering) everyday to
get beautiful garden.
 You have to do these small things ‘unconsciously’. It
should become habit.
 Try it for 1 month and then for 3 month. And
see the difference in your own code.
Contact
Feel free to email me at
nitinbhide@thinkingcraftsman.in
Aug-18 Commercial in Confidence (C) Nitin Bhide 26

More Related Content

What's hot

Sign language translator ieee power point
Sign language translator ieee power pointSign language translator ieee power point
Sign language translator ieee power point
Madhuri Yellapu
 
Automatic handwriting recognition
Automatic handwriting recognitionAutomatic handwriting recognition
Automatic handwriting recognition
BIJIT GHOSH
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
salmankhan570
 

What's hot (12)

Avoid procrastination
Avoid procrastinationAvoid procrastination
Avoid procrastination
 
Sign Language Recognition based on Hands symbols Classification
Sign Language Recognition based on Hands symbols ClassificationSign Language Recognition based on Hands symbols Classification
Sign Language Recognition based on Hands symbols Classification
 
What is an algorithm?
What is an algorithm?What is an algorithm?
What is an algorithm?
 
Plant Disease Prediction using CNN
Plant Disease Prediction using CNNPlant Disease Prediction using CNN
Plant Disease Prediction using CNN
 
Sign Language Recognition System.pptx
Sign Language Recognition System.pptxSign Language Recognition System.pptx
Sign Language Recognition System.pptx
 
Hand Gesture Recognition using Neural Network
Hand Gesture Recognition using Neural NetworkHand Gesture Recognition using Neural Network
Hand Gesture Recognition using Neural Network
 
Sign language recognizer
Sign language recognizerSign language recognizer
Sign language recognizer
 
Sign language translator ieee power point
Sign language translator ieee power pointSign language translator ieee power point
Sign language translator ieee power point
 
Automatic handwriting recognition
Automatic handwriting recognitionAutomatic handwriting recognition
Automatic handwriting recognition
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
 
Debugging Effectively
Debugging EffectivelyDebugging Effectively
Debugging Effectively
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
 

Similar to Daily Habits Of Highly Agile Developers

Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
John Choi
 
Getting real in development
Getting real in developmentGetting real in development
Getting real in development
defsan
 
2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris
Eric Ries
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652
ngothanhtungth
 
2010 10 19 the lean startup workshop for i_gap ireland
2010 10 19 the lean startup workshop for i_gap ireland2010 10 19 the lean startup workshop for i_gap ireland
2010 10 19 the lean startup workshop for i_gap ireland
Eric Ries
 

Similar to Daily Habits Of Highly Agile Developers (20)

YAGNI Principle and Clean Code
YAGNI Principle and Clean CodeYAGNI Principle and Clean Code
YAGNI Principle and Clean Code
 
Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
 
Bug first Zero Defect
Bug first   Zero DefectBug first   Zero Defect
Bug first Zero Defect
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
How have we developed product without bugs
How have we developed product without bugsHow have we developed product without bugs
How have we developed product without bugs
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical Debt
 
Pragmatic programmer 2
Pragmatic programmer 2Pragmatic programmer 2
Pragmatic programmer 2
 
Managing and evolving JavaScript Code
Managing and evolving JavaScript CodeManaging and evolving JavaScript Code
Managing and evolving JavaScript Code
 
Core agile values
Core agile valuesCore agile values
Core agile values
 
Getting real in development
Getting real in developmentGetting real in development
Getting real in development
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?
 
2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris2009 10 28 The Lean Startup In Paris
2009 10 28 The Lean Startup In Paris
 
AD - Developer communication and Technology
AD - Developer communication and TechnologyAD - Developer communication and Technology
AD - Developer communication and Technology
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652
 
Bug Advocacy
Bug AdvocacyBug Advocacy
Bug Advocacy
 
Clean Code Software Engineering
Clean Code Software Engineering Clean Code Software Engineering
Clean Code Software Engineering
 
Best pratice
Best praticeBest pratice
Best pratice
 
How to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringHow to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software Engineering
 
2010 10 19 the lean startup workshop for i_gap ireland
2010 10 19 the lean startup workshop for i_gap ireland2010 10 19 the lean startup workshop for i_gap ireland
2010 10 19 the lean startup workshop for i_gap ireland
 
DeKnowledge - Try us
DeKnowledge - Try usDeKnowledge - Try us
DeKnowledge - Try us
 

More from Nitin Bhide

More from Nitin Bhide (13)

2nd Techathon in Geometric - 27/28 Feb 2015
2nd Techathon in Geometric - 27/28 Feb 20152nd Techathon in Geometric - 27/28 Feb 2015
2nd Techathon in Geometric - 27/28 Feb 2015
 
Do/Doing/Done Is NOT Kanban
Do/Doing/Done Is NOT KanbanDo/Doing/Done Is NOT Kanban
Do/Doing/Done Is NOT Kanban
 
Object Oriented Containers - Applying SOLID Principles to Docker/Container De...
Object Oriented Containers - Applying SOLID Principles to Docker/Container De...Object Oriented Containers - Applying SOLID Principles to Docker/Container De...
Object Oriented Containers - Applying SOLID Principles to Docker/Container De...
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Collected Wisdom
Collected WisdomCollected Wisdom
Collected Wisdom
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
Fundamental Principles of Software Development
Fundamental Principles of Software Development Fundamental Principles of Software Development
Fundamental Principles of Software Development
 
Agile Mindset and Its Implications - My Understanding
Agile Mindset and Its Implications - My UnderstandingAgile Mindset and Its Implications - My Understanding
Agile Mindset and Its Implications - My Understanding
 
GUI patterns : My understanding
GUI patterns : My understandingGUI patterns : My understanding
GUI patterns : My understanding
 
Code Review Checklist
Code Review ChecklistCode Review Checklist
Code Review Checklist
 
CSS Basics
CSS BasicsCSS Basics
CSS Basics
 
Iterator - a powerful but underappreciated design pattern
Iterator - a powerful but underappreciated design patternIterator - a powerful but underappreciated design pattern
Iterator - a powerful but underappreciated design pattern
 
Common Sense Software Development
Common Sense Software DevelopmentCommon Sense Software Development
Common Sense Software Development
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Recently uploaded (20)

WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 

Daily Habits Of Highly Agile Developers

  • 1. Daily Habits of Highly Agile Developers Nitin Bhide http://thinkingcraftsman.in 19th Aug 2018
  • 2. Disclaimer  All the habits/suggestions are backed up theory, anecdotal evidence and research.  I practice what I preach. I have followed these practices in my coding everyday for last 25 years.  These are NOT myths, urban legends and common practices followed without thought.  No animals were harmed in developing these ideas (I am not sure about Developers)
  • 3. WHY AGILE WORKS ? Lets start with a Fundamental Question
  • 4. Relative Cost of Fixing Defects WRONG
  • 5. Cost of Fixing a Defect Cost TimeError Introduced Depends on distance between ‘defect introduced’ to ‘defect fixed’ August 18 5
  • 6. Do not fall for the illusion that by preventing errors, you won’t have errors to fix. The truth is, the cost of preventing errors is often far greater than the cost of fixing them. - Ed Catmull, Creativity, Inc.
  • 7. Minimizing Cost of Defects  Focus on reducing the distance between defect introduced to defect fixed  Use Techniques to detect defect as quickly as possible (FAIL IMMEDIATLEY AND VISIBLY)  Once the defect detected/reported, FIX IT IMMEDIATELY
  • 8. HOW TO FAIL FAST DAILY ?
  • 9. How to fail fast daily ?  What are the ways by which you can “reduce the distance” between “coding defect introduced to coding defect detected” especially in newly written code? ◦ Of course once the defect is detected you have to fix it immediately to get real benefits  What are the ways by which you can make it easy to ‘detect newly introduced defect’
  • 10. CODE WITH ZERO WARNING AND ZERO STATIC ANALYSIS ERRORS
  • 11. Compiler Warnings and Static Analysis Errors  What is warning level in your module ?  How many warnings are there in your code today ?  Do you fix warnings immediately ?  Warnings in a newly written code has ‘extremely low distance of defect introduced to defected detected’ and hence extremely low cost of fixing the defect.
  • 12. Compiler Warnings  Every generation of compiler improves on potential problems detection.  A Piece of Code with Zero Warnings usually has extremely low incidences of coding bugs.  Compiler Warnings and Static Analysis Errors MUST BE FIXED WITHIN A DAY
  • 13. COMMIT EARLY AND COMMIT OFTEN
  • 14. Commit Your Code Changes Frequently  Commit your code changes ‘frequently’ ◦ At least twice a day ◦ 10 times a day or more is perfectly fine  Key Purpose of Version Control is allow you quickly recover from mistakes.  DO NOT INSIST MANUALLY REVIEWING EVERY CODE COMMIT
  • 15. MANUAL CODE REVIEWS ARE OVERRATED
  • 16. Minimize Manual Code Reviews  Code Review checklists DON’T work  Typical Manual Code Review process results in ‘FAIL LATER”.
  • 18. Small Functions  Entire function should be visible without any Page UP/Down ◦ Approx. 25 lines (max)  Because entire function is visible it is much more easier to understand impact of newly added code. ◦ Automatically reduces code complexity ◦ Reduces number of returns in a function (makes easier to write error handling) ◦ Reduces code duplication ◦ Properly Naming function results in easier ‘debugging’ as logic is automatically documented in sequence of function names
  • 19. Small Function  In 1950, G. A. Miller’s experimental results suggested that humans are generally able to hold only seven plus or minus two units of information in short- term memory.  These limits impact the debugging capacity/skills of developers. ◦ For developer it is difficult to analyse the impact a change if code complexity is greater than 7. ◦ Small functions automatically limit the complexity
  • 20.  Great Code is like a Beautiful Zen Garden. You have to do small things (like weeding and watering) everyday to get beautiful garden.  You have to do these small things ‘unconsciously’. It should become habit.  Try it for 1 month and then for 3 month. And see the difference in your own code.
  • 21. Contact Feel free to email me at nitinbhide@thinkingcraftsman.in Aug-18 Commercial in Confidence (C) Nitin Bhide 26

Editor's Notes

  1. Purpose of “Breaks in Car” is to allow you to go faster