Professional Software Craftsmanship<br />2011-10-13<br />Andreas Enbohm<br />Twitter: enbohm<br />
The Clean Coder by @unclebobmartin<br />13 oktober 2011<br />Sida 2<br />
13 oktober 2011<br />Sida 3<br />Craftsmanship<br />”A software craftman is a experiencedprofessionalwho quickly, butwitho...
Professionalism<br />Professional vs. Nonprofessional<br />It’s all abouttakingresponsibility!<br />First, do no harm!- yo...
Professionalism<br />Howdo you know your codeworks?<br />Easy;- test- test again- test it up- test it down- test ALL of it...
Professionalism<br />13 oktober 2011<br />Sida 6<br />Boy Scout Rule<br />or <br />MercilessRefactoring<br />
Professionalism<br />Work ethics- 40/20 h week- read blogs, tweets, conferences, try languages…<br />Know your field!- Nas...
Professionalism<br />Practice!- Code Katas<br />Mentoring!<br />Know your domain!- no need to be expert- unprofessional to...
Saying No<br />”Do; or do not. There is no try”<br />13 oktober 2011<br />Sida 9<br />
Saying No<br />Neversay ”I’ll try” - otherswill interpret as ”Yes”- avoid (unprofessional) pleasantconversation- butwhatwo...
Handling Pressure<br />13 oktober 2011<br />Sida 11<br />
Handling Pressure<br />Overtimeif, and onlyif, 1) you canpersonallyafford it 2) it is short term 3) you boss has a fallbac...
Handling Pressure<br />Stayinclean- dirtycode ALWAYS means slow!- a professional NEVER toleratemesses<br />Trust your disc...
Handling Pressure<br />Commitments- do not accept unrealisticcommitments (never ’try’)- commit ONLY when you are certain<b...
Time Estimates<br />AffinityEstimation<br />Wideband Delphi<br />Flying Fingers<br />Planning Poker<br />PERT- a way to co...
Time Estimates<br />Program Evaluation and Review Technique- US Navy’s Polaris Submarine project (1957)<br />Three number ...
PERT<br />13 oktober 2011<br />Sida 17<br />
Clean Coder<br />Questions?<br />http://slideshare.net/enbohm<br />http://codekata.pragprog.com/<br />13 oktober 2011<br /...
Upcoming SlideShare
Loading in...5
×

Software Craftsmanship

1,331

Published on

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

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,331
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Software Craftsmanship

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

    Clipping is a handy way to collect important slides you want to go back to later.

×