Your SlideShare is downloading. ×
Software Craftsmanship
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Software Craftsmanship


Published on

A presentation about Software Craftsmanship. Inspired by 'Uncle Bob' and his books.

A presentation about Software Craftsmanship. Inspired by 'Uncle Bob' and his books.

Published in: Technology, Business

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Professional Software Craftsmanship
    Andreas Enbohm
    Twitter: enbohm
  • 2. The Clean Coder by @unclebobmartin
    13 oktober 2011
    Sida 2
  • 3. 13 oktober 2011
    Sida 3
    ”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
  • 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
    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
    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
    13 oktober 2011
    Sida 18