Sw Craftsmanship- Sioux weekend of code -Roy NitertOctober 2011
Agenda© Sioux Embedded Systems 2010 | Confidential | 2What is SW craftsmanship ?Exercise 1Background craftsmanship based on Pete McBreens bookSW Craftsmanship within SiouxExercise 2Wrap-up
What is SW Craftsmanship ?© Sioux Embedded Systems 2010 | Confidential | 3What do you think that it is?What activities/skills/attitude belong to it?Lets make a list
Exercise© Sioux Embedded Systems 2010 | Confidential | 4Determine what belongs to SW craftsmanship and what notIn two groupsUse flipover and notes with ‘skills’You can make new notes10 minutes to cover all notesKeep discussions to a minimum
Skills© Sioux Embedded Systems 2010 | Confidential | 5active listeningarchitectureASDBDD/ATDDbuild automationC#C++clean codecode reviewcoding dojo/katacoding standardcommunicerenconfiguration managementconflict managementcontinuous integrationdesign patternsdocument reviewdocumentingdon’t repeat yourselfeclipseestimatingjavakanbanleadershipmentoringmodel driven developmentOOA/Dpair programmingpeer recognitionpresenterenprojectmatigwerkenreadingrefactoringrequirements engineeringretrospectionRUPscrumSQSSVNTDDteam buildingtest automationtestingUMLunit testingVisual StudioV-model
SW Craftsmanship manifesto© Sioux Embedded Systems 2010 | Confidential | 6
Agile ManifestoSW craftsmanship manifestoTwo Manifestos© Sioux Embedded Systems 2010 | Confidential | 7Individuals and interactionsWorking softwareCustomer collaborationResponding to changeProcesses and toolsComprehensive documentationContract negotiationFollowing a planA community of professionalsWell-crafted softwareProductive partnershipsSteadily adding value
Software Craftsmanship book The New Imperative (1)The software business resides in a constant crisisEngineering only considers development as science, but does not address the social aspectsA different metaphor would                      be more suitable© Sioux Embedded Systems 2010 | Confidential | 8
Software Craftsmanship book The New Imperative (2)Traditional craft: Technical knowledge, practiced skill and aesthetics© Sioux Embedded Systems 2010 | Confidential | 9Roles: Master craftsman, Journeyman, ApprenticeSoftware Craftsmanship book The New Imperative (3)© Sioux Embedded Systems 2010 | Confidential | 10ObjectiveObtain mastery over science and engineering so that we can continually refine our craftRaising the barContinually work to improve your skillsPerpetual learning encourage participation in conferences
create a learning environmentSoftware Craftsmanship book The New Imperative (4)© Sioux Embedded Systems 2010 | Confidential | 11Master craftsmanLeads a team of journeymen and apprentices
Infects the team with enthusiasm and passion for the craft
Has delivered many successful, robust, high-quality applications
Is recognized by users, customers and developers
Is responsible for passing on the craft
Chooses his own teamSoftware Craftsmanship book The New Imperative (5)JourneymanHas worked for several years with a master
Small teams
Coach apprentices
Learn from masters
Spread knowledge between masters
Focused on delivering applications
Does not work without master or other journeyman© Sioux Embedded Systems 2010 | Confidential | 12
Software Craftsmanship book The New Imperative (6)© Sioux Embedded Systems 2010 | Confidential | 13ApprenticeContribute to simple tasks
Learn from journeyman
Situated learning

SW Craftsmanship in Sioux Embedded Systems

  • 1.
    Sw Craftsmanship- Siouxweekend of code -Roy NitertOctober 2011
  • 2.
    Agenda© Sioux EmbeddedSystems 2010 | Confidential | 2What is SW craftsmanship ?Exercise 1Background craftsmanship based on Pete McBreens bookSW Craftsmanship within SiouxExercise 2Wrap-up
  • 3.
    What is SWCraftsmanship ?© Sioux Embedded Systems 2010 | Confidential | 3What do you think that it is?What activities/skills/attitude belong to it?Lets make a list
  • 4.
    Exercise© Sioux EmbeddedSystems 2010 | Confidential | 4Determine what belongs to SW craftsmanship and what notIn two groupsUse flipover and notes with ‘skills’You can make new notes10 minutes to cover all notesKeep discussions to a minimum
  • 5.
    Skills© Sioux EmbeddedSystems 2010 | Confidential | 5active listeningarchitectureASDBDD/ATDDbuild automationC#C++clean codecode reviewcoding dojo/katacoding standardcommunicerenconfiguration managementconflict managementcontinuous integrationdesign patternsdocument reviewdocumentingdon’t repeat yourselfeclipseestimatingjavakanbanleadershipmentoringmodel driven developmentOOA/Dpair programmingpeer recognitionpresenterenprojectmatigwerkenreadingrefactoringrequirements engineeringretrospectionRUPscrumSQSSVNTDDteam buildingtest automationtestingUMLunit testingVisual StudioV-model
  • 6.
    SW Craftsmanship manifesto©Sioux Embedded Systems 2010 | Confidential | 6
  • 7.
    Agile ManifestoSW craftsmanshipmanifestoTwo Manifestos© Sioux Embedded Systems 2010 | Confidential | 7Individuals and interactionsWorking softwareCustomer collaborationResponding to changeProcesses and toolsComprehensive documentationContract negotiationFollowing a planA community of professionalsWell-crafted softwareProductive partnershipsSteadily adding value
  • 8.
    Software Craftsmanship bookThe New Imperative (1)The software business resides in a constant crisisEngineering only considers development as science, but does not address the social aspectsA different metaphor would be more suitable© Sioux Embedded Systems 2010 | Confidential | 8
  • 9.
    Software Craftsmanship bookThe New Imperative (2)Traditional craft: Technical knowledge, practiced skill and aesthetics© Sioux Embedded Systems 2010 | Confidential | 9Roles: Master craftsman, Journeyman, ApprenticeSoftware Craftsmanship book The New Imperative (3)© Sioux Embedded Systems 2010 | Confidential | 10ObjectiveObtain mastery over science and engineering so that we can continually refine our craftRaising the barContinually work to improve your skillsPerpetual learning encourage participation in conferences
  • 10.
    create a learningenvironmentSoftware Craftsmanship book The New Imperative (4)© Sioux Embedded Systems 2010 | Confidential | 11Master craftsmanLeads a team of journeymen and apprentices
  • 11.
    Infects the teamwith enthusiasm and passion for the craft
  • 12.
    Has delivered manysuccessful, robust, high-quality applications
  • 13.
    Is recognized byusers, customers and developers
  • 14.
    Is responsible forpassing on the craft
  • 15.
    Chooses his ownteamSoftware Craftsmanship book The New Imperative (5)JourneymanHas worked for several years with a master
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    Does not workwithout master or other journeyman© Sioux Embedded Systems 2010 | Confidential | 12
  • 22.
    Software Craftsmanship bookThe New Imperative (6)© Sioux Embedded Systems 2010 | Confidential | 13ApprenticeContribute to simple tasks
  • 23.
  • 24.
  • 25.
    Review work ofthe master
  • 26.
    Progression through demonstratedprogressSoftware Craftsmanship book The New Imperative (7)© Sioux Embedded Systems 2010 | Confidential | 14Put back pride into SW developmentSign your work
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
    Peer recommendationSoftware Craftsmanshipbook The New Imperative (8)© Sioux Embedded Systems 2010 | Confidential | 15Management styleNo horde of average programmers
  • 32.
    Small team ofgood developers
  • 33.
    No detailed instructionsor command and control
  • 34.
  • 35.
  • 36.
    Pay them well(3 times as much as average developers)
  • 37.
    More information© SiouxEmbedded Systems 2010 | Confidential | 16Books:McBreen, Pete (2001). Software Craftsmanship: The New Imperative. Addison Wesley. ISBN 0201733862.
  • 38.
    Martin, Robert C.(2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. ISBN 0132350882.
  • 39.
    Martin, Robert C.(2011). The Clean Coder: A Code of Conduct for Professional Programmers. Prentice Hall. ISBN 0137081073.
  • 40.
    Hoover, Dave; Oshineye,Adewale. (2009) Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. O'Reilly. ISBN 0596518382.
  • 41.
    Hunt, Andrew; Thomas,Dave (1999). The Pragmatic Programmer: From Journeyman to Master. Addison Wesley. ISBN 020161622XManifesto: http://manifesto.softwarecraftsmanship.org/Wiki: http://en.wikipedia.org/wiki/Software_Craftsmanship
  • 42.
    Think tank© SiouxEmbedded Systems 2010 | Confidential | 17SW Craftsmanship Think tankMembers: Duncan Stiphout, Roy Nitert, Tjakko KleinhuisGoal: Improve SW engineering skills by creating a continuous learning environmentActivities:Define engineering skills
  • 43.
    Follow up onDC survey (Roy)
  • 44.
  • 45.
    Lunch sessions (Tjakko)Mentoring©Sioux Embedded Systems 2010 | Confidential | 18Mentoring is a first step towards master-journeyman-apprentice modelFacilitate pairs of coach and coacheeList of potential coaches availableCoachees are approached during PM talks You can also subscribe yourselfIndication: 2 to 4 hours a monthPaid by personal training budget
  • 46.
    Lunch sessions© SiouxEmbedded Systems 2010 | Confidential | 19Monthly session by different speakerCase driven / with codePossible subjects:Explain one design pattern in depth
  • 47.
  • 48.
    Explain one ofthe SOLID principles
  • 49.
  • 50.
  • 51.
  • 52.
    Code reviewsExercise© SiouxEmbedded Systems 2010 | Confidential | 20Againdeterminewhatbelongs to SW craftsmanship and whatnotAdd more skills5 minutes
  • 53.
    Discussion© Sioux EmbeddedSystems 2010 | Confidential | 21Do these skillsbelong to SW craftsmanship?Skill1Skill2…
  • 54.
    Coming up© SiouxEmbedded Systems 2010 | Confidential | 22Cursus cafetariaHot-or-notCraftsmanshipPremium courseCraftsmanshipLunch sessionsMentoringKevlinHenney
  • 55.
    SW Craftsmanship© SiouxEmbedded Systems 2010 | Confidential | 23Verbeter je skills,begin bijjezelf
  • 56.
    24© Sioux EmbeddedSystems 2010 | Confidential | roy.nitert@sioux.eu+31 40 2677100roy.nitert

Editor's Notes

  • #2 Intro:Craftsmanship is eenbenadering van SW ontwikkelingdatnadruklegt op programeerkwaliteiten van de ontwikkelaars. Het is eenantwoord op de benaderingwaarbijontwikkelaarszichzienalsingenieurs, waarbij de nadrukligt op goedgedefinieerdestatistischanalyse en processen en daaraangekoppeldelicenties en certificering. De agile manifesto gaathier al tegenin door individuen en interactiebovenprocessen en tools testellen. SW craftsmanship breidtditverderuit door tekijkennaar het Middeleeuwse ‘apprenticeship’ model van leerling-gezel-meester.De bewegingheeftzijnwortels in boeken (pragmatic programmer, SW craftsmanship, clean coder).
  • #4 Vraagpubliekomdingentenoemen.Schrijf die op. 5 minutenIntroductie tot de volgendeoefening
  • #5 10 minuten
  • #6 Loop rondomuitlegtegevenbij de ‘skills’Nietalleenskills: ook tools of activitiesStop oefeningom 15:45
  • #7 Time 15:45In Februari 2009werd de eersteinternationale SW craftsmanship conferensie in Londengehouden.Eenmaand later, nawatdiscussies, werdereensamenvattinggemaakt, en werdditgepubliceerdals manifesto.Origineelgetekend dooro.a. Robert Martin (clean code), Dave Hoover (patterns), Ron Jeffries (XP)Ikheb ‘m ookgetekend.Read out the first part: as aspiring SW craftsmen4 values …. Zoals agile manifesto.
  • #8 SW craftsmanship manifesto is eenuitbreiding van de Agile manifesto.
  • #9 McBreen, Pete (2001). Software Craftsmanship: The New Imperative. Addison Wesley. ISBN 0201733862. Crisis -> over budget, over time, low qualityHijsteltvoordat SW ontwikkelaarszichzelfniethoeventezienalsingenieurs, maardateenanderemetafoorbeter op z’nplaatszouzijn.
  • #10 Hijkijksnaar de gildesuit de Middeleeuwen.Picture: Houtbewerking.Nietalleen KENNIS, maarook VAARDIGHEDEN en zelfs SCHOONHEID/CREATIVITEITMeester – gezel - leerling
  • #11 Doel …Verbeteringalsindividu …Leren door doen …Het gaatomvaardighedenopdoen en verbeteren, en nietmeeromprocesverbetering.
  • #12 Applicatiesopleveren, en daarmeeeengoedereputatieopbouwen.Nietalleen managing, maar is betrokkenbijalleaspecten van programmeren.
  • #13 Gezel is de basis waaropkleineeffectieve teams zijngebouwd, en die geleidworden door eenmeester.Picture: verhuizennaareenanderemeester met eenrugzakvolkennis en vaardighedenSommigegezellenwordennaverloop van tijdmeester, maarveleblijvengezelvoor de rest van huncarriere.
  • #14 Tijd 15.55Situated learning: Oefenvaardigheden in eenrealistisch project onderbegeleiding van eenervarengezel die veel feedback geeft.Review: leerlingleest code van eenmeester en leertzo indirect.Belangrijksteeigenschap van eenleerling is de houdingomvaardighedenteleren en verbeteren.
  • #15 TrotsOnderteken je werkZoalsookarchitecteneentegel in eengebouwplaatsenZoalsgebruikelijk is in de open source gemeenschap- Zoalsgebruikelijk in Hollywood met de ‘credit list’ aan het eind van elke film.Licensie en certificering is eenillusie, omdat het veronderstelddat het mogelijk is omkwaliteit in eenproduktteinspecteren.Persoonlijk: Behandeliederafzonderlijk met zijn/haarunieketalenten en mogelijkheden.
  • #16 Pay them well: Nietalleen KENNIS (ervaring), maar VAARDIGHEDEN moetenbeterwordenbeloondPay: instead of 10 times 100k, pay 300k + 2x 200k + 3x 100k
  • #19 Coach – coacheeplannenzelf de coach contact uren.
  • #20 SOLID: OOD principles:SRP: single responsibility principle: object should only be responsible for one thing(Open/closed, Liskov substitution, interface segregation, dependency inversion)
  • #21 Tijd: 16.05Loop rond en schrijf deverschillen op tussen de 2 groepen.Dit is startpunt van de discussie: schrijf 5 skills op de volgende sheet
  • #22 Tijd: 16.15Schrijfhier 5 skills waar de 2 groepen het niet over eenszijn.Vraag de groepenhunkeuze toe telichten en de anderegroepteovertuigenHoud twee minuten per skill aan
  • #23 Tijd 16:25 Wrap upCafetaria: UML, OOD, review, TDD, etcSpreker: KevlinHenney
  • #24 Voorwiemeerwilweten, lees de boeken en online links.Als je geinteresseerd bent meetehelpenom SW craftsmanship binnen Sioux uitterollen, laat het me weten.