Software Craftsmanship
Upcoming SlideShare
Loading in...5

Software Craftsmanship



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

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



Total Views
Views on SlideShare
Embed Views



2 Embeds 2 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Software Craftsmanship Software Craftsmanship Presentation Transcript

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