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

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

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