SlideShare une entreprise Scribd logo
1  sur  18
Professional Software Craftsmanship 2011-10-13 Andreas Enbohm Twitter: enbohm
The Clean Coder by @unclebobmartin 13 oktober 2011 Sida 2
13 oktober 2011 Sida 3 Craftsmanship ”A software craftman is a experiencedprofessionalwho quickly, butwithoutrushing, provides resonable estimates and meetscommitments. A person whichbrings to mind skill, competence and quality. A craftmanknowswhen to say no, buttrieshard to sayyes. [Software] Craftmanship is the mindsetheld by craftsmen.”
Professionalism Professional vs. Nonprofessional It’s all abouttakingresponsibility! First, do no harm!- you must NOT createbugs! - butthatsvirtuallyimpossible All means to createbugfreecode- QA shouldfindnothing- iftheydo, learn from it to prevent it from happendagain 13 oktober 2011 Sida 4
Professionalism Howdo you know your codeworks? Easy;- test- test again- test it up- test it down- test ALL of it- automated test suites- test upsidedown- test insideout- test left to right- TEST DRIVE IT! 13 oktober 2011 Sida 5
Professionalism 13 oktober 2011 Sida 6 Boy Scout Rule or  MercilessRefactoring
Professionalism Work ethics- 40/20 h week- read blogs, tweets, conferences, try languages… Know your field!- Nassi-Schneidermancharts- Mealy and Moore statemachines- Quicksort withoutlooking it up- Parnastables- Tramp data- Jackson StructuredProgramming 13 oktober 2011 Sida 7
Professionalism Practice!- Code Katas Mentoring! Know your domain!- no need to be expert- unprofessional to ’just code’ 13 oktober 2011 Sida 8
Saying No ”Do; or do not. There is no try” 13 oktober 2011 Sida 9
Saying No Neversay ”I’ll try” - otherswill interpret as ”Yes”- avoid (unprofessional) pleasantconversation- butwhatwould the world be ifwedidn’t try things? Try == to apply extra effort- ifthere is extra effort, whyhasn’t the team applied it before?- have you/team beenholdingeffort in reserve?- by trying, the previous plans you made are insufficient- whatbehaviorwill you change by ’trying’? Cut the scope! Negotiate – butnever try! 13 oktober 2011 Sida 10
Handling Pressure 13 oktober 2011 Sida 11
Handling Pressure Overtimeif, and onlyif, 1) you canpersonallyafford it 2) it is short term 3) you boss has a fallbackplan 3) is a deal breaker- if your boss don’thave a backup plan, you should not agree on overtime 13 oktober 2011 Sida 12
Handling Pressure Stayinclean- dirtycode ALWAYS means slow!- a professional NEVER toleratemesses Trust your disciplines!- followthem at ALL times. Best way to avoidcrisis- practivethemevenharder (more tests, smallermethods..)  You won’t go faster without test You won’tgo faster withoutrefactoring You won’tgo faster withoutrunning full regressions test Butit’s tempting for a novice… 13 oktober 2011 Sida 13
Handling Pressure Commitments- do not accept unrealisticcommitments (never ’try’)- commit ONLY when you are certain Don’tpanic- eat, sleepwell- pair programming / ask for help 13 oktober 2011 Sida 14
Time Estimates AffinityEstimation Wideband Delphi Flying Fingers Planning Poker PERT- a way to convertestimates to probability distributions suitable for managers 13 oktober 2011 Sida 15
Time Estimates Program Evaluation and Review Technique- US Navy’s Polaris Submarine project (1957) Three number for each task- Optimistic (wildly)- Normal- Pessimistic (wildly) 	µ = (O + 4N + P) / 6, where µ is expected duration (’väntevärde’) σ = (P – O) / 6, whereσ is the standard deviation  13 oktober 2011 Sida 16
PERT 13 oktober 2011 Sida 17
Clean Coder Questions? http://slideshare.net/enbohm http://codekata.pragprog.com/ 13 oktober 2011 Sida 18

Contenu connexe

Tendances

Programming Assignments in Tester Interviews
Programming Assignments in Tester InterviewsProgramming Assignments in Tester Interviews
Programming Assignments in Tester InterviewsMaaret Pyhäjärvi
 
ATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating ImprovementATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating ImprovementMaaret Pyhäjärvi
 
Learn Unit Testing and Improve Sexual Performance
Learn Unit Testing and Improve Sexual PerformanceLearn Unit Testing and Improve Sexual Performance
Learn Unit Testing and Improve Sexual PerformanceBill Shelton
 
7 ways you are doing your A/B testing wrong by Côme Courteault
7 ways you are doing your A/B testing wrong by Côme Courteault7 ways you are doing your A/B testing wrong by Côme Courteault
7 ways you are doing your A/B testing wrong by Côme CourteaultTheFamily
 
MoT Sarajevo: How to get better at Exploratory testing
MoT Sarajevo: How to get better at Exploratory testingMoT Sarajevo: How to get better at Exploratory testing
MoT Sarajevo: How to get better at Exploratory testingMaaret Pyhäjärvi
 
10 Things To Drive Your Scrum Master Crazy
10 Things To Drive Your Scrum Master Crazy10 Things To Drive Your Scrum Master Crazy
10 Things To Drive Your Scrum Master CrazyMarc Löffler
 
Марта Комарницька
Марта КомарницькаМарта Комарницька
Марта КомарницькаLviv Startup Club
 
Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Hernan Wilkinson
 
AADays Poland: Perfecting the Craft of Test Automation
AADays Poland: Perfecting the Craft of Test AutomationAADays Poland: Perfecting the Craft of Test Automation
AADays Poland: Perfecting the Craft of Test AutomationMaaret Pyhäjärvi
 
Talentum: Testiautomaation tekemisen taito
Talentum: Testiautomaation tekemisen taitoTalentum: Testiautomaation tekemisen taito
Talentum: Testiautomaation tekemisen taitoMaaret Pyhäjärvi
 

Tendances (13)

Programming Assignments in Tester Interviews
Programming Assignments in Tester InterviewsProgramming Assignments in Tester Interviews
Programming Assignments in Tester Interviews
 
ATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating ImprovementATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
 
Learn Unit Testing and Improve Sexual Performance
Learn Unit Testing and Improve Sexual PerformanceLearn Unit Testing and Improve Sexual Performance
Learn Unit Testing and Improve Sexual Performance
 
7 ways you are doing your A/B testing wrong by Côme Courteault
7 ways you are doing your A/B testing wrong by Côme Courteault7 ways you are doing your A/B testing wrong by Côme Courteault
7 ways you are doing your A/B testing wrong by Côme Courteault
 
MoT Sarajevo: How to get better at Exploratory testing
MoT Sarajevo: How to get better at Exploratory testingMoT Sarajevo: How to get better at Exploratory testing
MoT Sarajevo: How to get better at Exploratory testing
 
10 Things To Drive Your Scrum Master Crazy
10 Things To Drive Your Scrum Master Crazy10 Things To Drive Your Scrum Master Crazy
10 Things To Drive Your Scrum Master Crazy
 
Марта Комарницька
Марта КомарницькаМарта Комарницька
Марта Комарницька
 
Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!
 
5. pre production(3)
5. pre production(3)5. pre production(3)
5. pre production(3)
 
AADays Poland: Perfecting the Craft of Test Automation
AADays Poland: Perfecting the Craft of Test AutomationAADays Poland: Perfecting the Craft of Test Automation
AADays Poland: Perfecting the Craft of Test Automation
 
Talentum: Testiautomaation tekemisen taito
Talentum: Testiautomaation tekemisen taitoTalentum: Testiautomaation tekemisen taito
Talentum: Testiautomaation tekemisen taito
 
Interviews
InterviewsInterviews
Interviews
 
Design [Autosaved]
Design [Autosaved]Design [Autosaved]
Design [Autosaved]
 

En vedette

Java Extension Methods
Java Extension MethodsJava Extension Methods
Java Extension MethodsAndreas Enbohm
 
Project Lambda - Closures after all?
Project Lambda - Closures after all?Project Lambda - Closures after all?
Project Lambda - Closures after all?Andreas Enbohm
 
BDD Short Introduction
BDD Short IntroductionBDD Short Introduction
BDD Short IntroductionAndreas Enbohm
 
Behavior-driven Development and Lambdaj
Behavior-driven Development and LambdajBehavior-driven Development and Lambdaj
Behavior-driven Development and LambdajAndreas Enbohm
 
Java7 - Top 10 Features
Java7 - Top 10 FeaturesJava7 - Top 10 Features
Java7 - Top 10 FeaturesAndreas Enbohm
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design PrinciplesAndreas Enbohm
 

En vedette (8)

Scala
ScalaScala
Scala
 
Java Extension Methods
Java Extension MethodsJava Extension Methods
Java Extension Methods
 
Project Lambda - Closures after all?
Project Lambda - Closures after all?Project Lambda - Closures after all?
Project Lambda - Closures after all?
 
BDD Short Introduction
BDD Short IntroductionBDD Short Introduction
BDD Short Introduction
 
Behavior-driven Development and Lambdaj
Behavior-driven Development and LambdajBehavior-driven Development and Lambdaj
Behavior-driven Development and Lambdaj
 
Java7 - Top 10 Features
Java7 - Top 10 FeaturesJava7 - Top 10 Features
Java7 - Top 10 Features
 
Hybrid Applications
Hybrid ApplicationsHybrid Applications
Hybrid Applications
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design Principles
 

Similaire à Software Craftsmanship

10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them 10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them PractiTest
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 
Retro Testing (DevConTLV Jan 2014)
Retro Testing (DevConTLV Jan 2014)Retro Testing (DevConTLV Jan 2014)
Retro Testing (DevConTLV Jan 2014)Allon Mureinik
 
Attract new customers and increase revenue with our Pack Leader Special.
 Attract new customers and increase revenue with our Pack Leader Special. Attract new customers and increase revenue with our Pack Leader Special.
Attract new customers and increase revenue with our Pack Leader Special.Nidheeshponkumar
 
Tips n' Tricks - Sprint Review
Tips n' Tricks - Sprint ReviewTips n' Tricks - Sprint Review
Tips n' Tricks - Sprint ReviewSteve Greene
 
Joy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad Failures
Joy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad FailuresJoy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad Failures
Joy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad FailuresJoy Scharmen
 
Agile Career Development from the trenches - XP 2013 Vienna
Agile Career Development from the trenches  -  XP 2013 ViennaAgile Career Development from the trenches  -  XP 2013 Vienna
Agile Career Development from the trenches - XP 2013 ViennaIonel Condor
 
DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...
DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...
DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...DNX
 
How To Succeed
How To SucceedHow To Succeed
How To SucceedNBE
 
Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013
Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013
Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013Seedbox
 
Reversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy CodeReversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy CodeSQALab
 
Why projects fail
Why projects failWhy projects fail
Why projects failPonto GP
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x EngineerNick Sullivan
 
13 Tips for Getting the Most Out of Your Next Hackathon
13 Tips for Getting the Most Out of Your Next Hackathon13 Tips for Getting the Most Out of Your Next Hackathon
13 Tips for Getting the Most Out of Your Next HackathonJoe Chernov
 
Tips For New SDRs - Sam Nelson
Tips For New SDRs - Sam NelsonTips For New SDRs - Sam Nelson
Tips For New SDRs - Sam NelsonSam Nelson
 
LO4.pptx preventing and eliminating muda
LO4.pptx preventing and eliminating mudaLO4.pptx preventing and eliminating muda
LO4.pptx preventing and eliminating mudatakur16takur
 

Similaire à Software Craftsmanship (20)

10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them 10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 
Retro Testing (DevConTLV Jan 2014)
Retro Testing (DevConTLV Jan 2014)Retro Testing (DevConTLV Jan 2014)
Retro Testing (DevConTLV Jan 2014)
 
Attract new customers and increase revenue with our Pack Leader Special.
 Attract new customers and increase revenue with our Pack Leader Special. Attract new customers and increase revenue with our Pack Leader Special.
Attract new customers and increase revenue with our Pack Leader Special.
 
Tips n' Tricks - Sprint Review
Tips n' Tricks - Sprint ReviewTips n' Tricks - Sprint Review
Tips n' Tricks - Sprint Review
 
Joy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad Failures
Joy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad FailuresJoy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad Failures
Joy Scharmen - The Virtuous Cycle: Getting Good Things Out of Bad Failures
 
When Tdd Goes Awry
When Tdd Goes AwryWhen Tdd Goes Awry
When Tdd Goes Awry
 
Agile Career Development from the trenches - XP 2013 Vienna
Agile Career Development from the trenches  -  XP 2013 ViennaAgile Career Development from the trenches  -  XP 2013 Vienna
Agile Career Development from the trenches - XP 2013 Vienna
 
DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...
DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...
DNX GLOBAL Workshop ★ Rodolphe Dutel - Finding remote work: How to start into...
 
How To Succeed
How To SucceedHow To Succeed
How To Succeed
 
Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013
Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013
Agile Coach Retreat @ Seedbox in Montreal - Sept. 7, 2013
 
Reversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy CodeReversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy Code
 
Sqa days2013
Sqa days2013Sqa days2013
Sqa days2013
 
Why projects fail
Why projects failWhy projects fail
Why projects fail
 
How to kill software quality in five steps
How to kill software quality in five stepsHow to kill software quality in five steps
How to kill software quality in five steps
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x Engineer
 
13 Tips for Getting the Most Out of Your Next Hackathon
13 Tips for Getting the Most Out of Your Next Hackathon13 Tips for Getting the Most Out of Your Next Hackathon
13 Tips for Getting the Most Out of Your Next Hackathon
 
Getting real
Getting realGetting real
Getting real
 
Tips For New SDRs - Sam Nelson
Tips For New SDRs - Sam NelsonTips For New SDRs - Sam Nelson
Tips For New SDRs - Sam Nelson
 
LO4.pptx preventing and eliminating muda
LO4.pptx preventing and eliminating mudaLO4.pptx preventing and eliminating muda
LO4.pptx preventing and eliminating muda
 

Dernier

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Dernier (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Software Craftsmanship

  • 1. Professional Software Craftsmanship 2011-10-13 Andreas Enbohm Twitter: enbohm
  • 2. The Clean Coder by @unclebobmartin 13 oktober 2011 Sida 2
  • 3. 13 oktober 2011 Sida 3 Craftsmanship ”A software craftman is a experiencedprofessionalwho quickly, butwithoutrushing, provides resonable estimates and meetscommitments. A person whichbrings to mind skill, competence and quality. A craftmanknowswhen to say no, buttrieshard to sayyes. [Software] Craftmanship is the mindsetheld by craftsmen.”
  • 4. Professionalism Professional vs. Nonprofessional It’s all abouttakingresponsibility! First, do no harm!- you must NOT createbugs! - butthatsvirtuallyimpossible All means to createbugfreecode- QA shouldfindnothing- iftheydo, learn from it to prevent it from happendagain 13 oktober 2011 Sida 4
  • 5. Professionalism Howdo you know your codeworks? Easy;- test- test again- test it up- test it down- test ALL of it- automated test suites- test upsidedown- test insideout- test left to right- TEST DRIVE IT! 13 oktober 2011 Sida 5
  • 6. Professionalism 13 oktober 2011 Sida 6 Boy Scout Rule or MercilessRefactoring
  • 7. Professionalism Work ethics- 40/20 h week- read blogs, tweets, conferences, try languages… Know your field!- Nassi-Schneidermancharts- Mealy and Moore statemachines- Quicksort withoutlooking it up- Parnastables- Tramp data- Jackson StructuredProgramming 13 oktober 2011 Sida 7
  • 8. Professionalism Practice!- Code Katas Mentoring! Know your domain!- no need to be expert- unprofessional to ’just code’ 13 oktober 2011 Sida 8
  • 9. Saying No ”Do; or do not. There is no try” 13 oktober 2011 Sida 9
  • 10. Saying No Neversay ”I’ll try” - otherswill interpret as ”Yes”- avoid (unprofessional) pleasantconversation- butwhatwould the world be ifwedidn’t try things? Try == to apply extra effort- ifthere is extra effort, whyhasn’t the team applied it before?- have you/team beenholdingeffort in reserve?- by trying, the previous plans you made are insufficient- whatbehaviorwill you change by ’trying’? Cut the scope! Negotiate – butnever try! 13 oktober 2011 Sida 10
  • 11. Handling Pressure 13 oktober 2011 Sida 11
  • 12. Handling Pressure Overtimeif, and onlyif, 1) you canpersonallyafford it 2) it is short term 3) you boss has a fallbackplan 3) is a deal breaker- if your boss don’thave a backup plan, you should not agree on overtime 13 oktober 2011 Sida 12
  • 13. Handling Pressure Stayinclean- dirtycode ALWAYS means slow!- a professional NEVER toleratemesses Trust your disciplines!- followthem at ALL times. Best way to avoidcrisis- practivethemevenharder (more tests, smallermethods..) You won’t go faster without test You won’tgo faster withoutrefactoring You won’tgo faster withoutrunning full regressions test Butit’s tempting for a novice… 13 oktober 2011 Sida 13
  • 14. Handling Pressure Commitments- do not accept unrealisticcommitments (never ’try’)- commit ONLY when you are certain Don’tpanic- eat, sleepwell- pair programming / ask for help 13 oktober 2011 Sida 14
  • 15. Time Estimates AffinityEstimation Wideband Delphi Flying Fingers Planning Poker PERT- a way to convertestimates to probability distributions suitable for managers 13 oktober 2011 Sida 15
  • 16. Time Estimates Program Evaluation and Review Technique- US Navy’s Polaris Submarine project (1957) Three number for each task- Optimistic (wildly)- Normal- Pessimistic (wildly) µ = (O + 4N + P) / 6, where µ is expected duration (’väntevärde’) σ = (P – O) / 6, whereσ is the standard deviation 13 oktober 2011 Sida 16
  • 17. PERT 13 oktober 2011 Sida 17
  • 18. Clean Coder Questions? http://slideshare.net/enbohm http://codekata.pragprog.com/ 13 oktober 2011 Sida 18