SW Craftsmanship in Sioux Embedded Systems
date post
19-Oct-2014Category
Technology
view
969download
4
Embed Size (px)
description
Transcript of SW Craftsmanship in Sioux Embedded Systems
Slide 1
Sw Craftsmanship- Sioux weekend of code -Roy NitertOctober 2011
Intro:Craftsmanship is een benadering van SW ontwikkeling dat nadruk legt op programeer kwaliteiten van de ontwikkelaars. Het is een antwoord op de benadering waarbij ontwikkelaars zich zien als ingenieurs, waarbij de nadruk ligt op goed gedefinieerde statistisch analyse en processen en daaraan gekoppelde licenties en certificering. De agile manifesto gaat hier al tegenin door individuen en interactie boven processen en tools te stellen. SW craftsmanship breidt dit verder uit door te kijken naar het Middeleeuwse apprenticeship model van leerling-gezel-meester.De beweging heeft zijn wortels in boeken (pragmatic programmer, SW craftsmanship, clean coder).1Agenda Sioux Embedded Systems 2010 | Confidential | 2What is SW craftsmanship ?Exercise 1Background craftsmanship based on Pete McBreens bookSW Craftsmanship within SiouxExercise 2Wrap-up2What 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 Vraag publiek om dingen te noemen.Schrijf die op. 5 minutenIntroductie tot de volgende oefening3Exercise Sioux Embedded Systems 2010 | Confidential | 4Determine what belongs to SW craftsmanship and what notIn two groupsUse flipover and notes with skillsYou can make new notes10 minutes to cover all notesKeep discussions to a minimum
10 minuten4Skills Sioux Embedded Systems 2010 | Confidential | 5active listeningarchitectureASDBDD/ATDDbuild automationC#C++clean codecode reviewcoding dojo/katacoding standardcommunicerenconfiguration managementconflict managementcontinuous integrationdesign patternsdocument reviewdocumentingdont repeat yourselfeclipseestimatingjavakanbanleadershipmentoringmodel driven developmentOOA/Dpair programmingpeer recognitionpresenterenprojectmatig werkenreadingrefactoringrequirements engineeringretrospectionRUPscrumSQSSVNTDDteam buildingtest automationtestingUMLunit testingVisual StudioV-modelLoop rond om uitleg te geven bij de skillsNiet alleen skills: ook tools of activities
Stop oefening om 15:455SW Craftsmanship manifesto Sioux Embedded Systems 2010 | Confidential | 6
Time 15:45
In Februari 2009 werd de eerste internationale SW craftsmanship conferensie in Londen gehouden.Een maand later, na wat discussies, werd er een samenvatting gemaakt, en werd dit gepubliceerd als manifesto.
Origineel getekend door o.a. Robert Martin (clean code), Dave Hoover (patterns), Ron Jeffries (XP)
Ik heb m ook getekend.
Read out the first part: as aspiring SW craftsmen
4 values . Zoals agile manifesto.6Agile ManifestoSW craftsmanship manifestoTwo Manifestos Sioux Embedded Systems 2010 | Confidential | 7Processes and tools
Comprehensive documentation
Contract negotiation
Following a planIndividuals and interactions
Working software
Customer collaboration
Responding to changeA community of professionals
Well-crafted software
Productive partnerships
Steadily adding valueSW craftsmanship manifesto is een uitbreiding van de Agile manifesto.
7Software 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
McBreen, Pete (2001). Software Craftsmanship: The New Imperative. Addison Wesley. ISBN 0201733862.
Crisis -> over budget, over time, low quality
Hij stelt voor dat SW ontwikkelaars zichzelf niet hoeven te zien als ingenieurs, maar dat een andere metafoor beter op zn plaats zou zijn.8Software Craftsmanship book The New Imperative (2)Traditional craft: Technical knowledge, practiced skill and aesthetics Sioux Embedded Systems 2010 | Confidential | 9
Roles: Master craftsman, Journeyman, ApprenticeHij kijks naar de gildes uit de Middeleeuwen.
Picture: Houtbewerking.
Niet alleen KENNIS, maar ook VAARDIGHEDEN en zelfs SCHOONHEID/CREATIVITEIT
Meester gezel - leerling9Software Craftsmanship book The New Imperative (3) Sioux Embedded Systems 2010 | Confidential | 10Objective
Obtain mastery over science and engineering so that we can continually refine our craftRaising the bar
Continually work to improve your skillsPerpetual learning
encourage participation in conferences create a learning environment
Doel
Verbetering als individu
Leren door doen
Het gaat om vaardigheden opdoen en verbeteren, en niet meer om proces verbetering.
10
Software Craftsmanship book The New Imperative (4) Sioux Embedded Systems 2010 | Confidential | 11Master craftsman
Leads a team of journeymen and apprenticesInfects the team with enthusiasm and passion for the craftHas delivered many successful, robust, high-quality applicationsIs recognized by users, customers and developersIs responsible for passing on the craftChooses his own teamApplicaties opleveren, en daarmee een goede reputatie opbouwen.
Niet alleen managing, maar is betrokken bij alle aspecten van programmeren.
11Software Craftsmanship book The New Imperative (5)Journeyman
Has worked for several years with a masterSmall teamsCoach apprenticesLearn from mastersSpread knowledge between mastersFocused on delivering applicationsDoes not work without master or other journeyman
Sioux Embedded Systems 2010 | Confidential | 12
Gezel is de basis waarop kleine effectieve teams zijn gebouwd, en die geleid worden door een meester.
Picture: verhuizen naar een andere meester met een rugzak vol kennis en vaardigheden
Sommige gezellen worden na verloop van tijd meester, maar vele blijven gezel voor de rest van hun carriere.
12
Software Craftsmanship book The New Imperative (6) Sioux Embedded Systems 2010 | Confidential | 13Apprentice
Contribute to simple tasksLearn from journeymanSituated learningReview work of the masterProgression through demonstrated progress
Tijd 15.55
Situated learning: Oefen vaardigheden in een realistisch project onder begeleiding van een ervaren gezel die veel feedback geeft.
Review: leerling leest code van een meester en leert zo indirect.
Belangrijkste eigenschap van een leerling is de houding om vaardigheden te leren en verbeteren.
13Software Craftsmanship book The New Imperative (7) Sioux Embedded Systems 2010 | Confidential | 14Put back pride into SW development
Sign your workTake creditAccountabilityReputation
No licensing/certification
Craftsmanship is personalPeer recognitionPeer recommendationTrotsOnderteken je werkZoals ook architecten een tegel in een gebouw plaatsenZoals gebruikelijk is in de open source gemeenschap- Zoals gebruikelijk in Hollywood met de credit list aan het eind van elke film.
Licensie en certificering is een illusie, omdat het verondersteld dat het mogelijk is om kwaliteit in een produkt te inspecteren.
Persoonlijk: Behandel ieder afzonderlijk met zijn/haar unieke talenten en mogelijkheden.
14Software Craftsmanship book The New Imperative (8) Sioux Embedded Systems 2010 | Confidential | 15Management style
No horde of average programmersSmall team of good developers
No detailed instructions or command and controlFacilitating and coordinating
Knowledge workersPay them well (3 times as much as average developers)
Pay them well: Niet alleen KENNIS (ervaring), maar VAARDIGHEDEN moeten beter worden beloond
Pay: instead of 10 times 100k, pay 300k + 2x 200k + 3x 100k
15More information Sioux Embedded Systems 2010 | Confidential | 16Books:McBreen, Pete (2001). Software Craftsmanship: The New Imperative. Addison Wesley. ISBN 0201733862. Martin, Robert C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. ISBN 0132350882.Martin, Robert C. (2011). The Clean Coder: A Code of Conduct for Professional Programmers. Prentice Hall. ISBN 0137081073.Hoover, Dave; Oshineye, Adewale. (2009) Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. O'Reilly. ISBN 0596518382.Hunt, Andrew; Thomas, Dave (1999). The Pragmatic Programmer: From Journeyman to Master. Addison Wesley. ISBN 020161622X
Manifesto: http://manifesto.softwarecraftsmanship.org/
Wiki: http://en.wikipedia.org/wiki/Software_Craftsmanship
16Think tank Sioux Embedded Systems 2010 | Confidential | 17
SW Craftsmanship Think tank
Members: Duncan Stiphout, Roy Nitert, Tjakko Kleinhuis
Goal: Improve SW engineering skills by creating a continuous learning environment
Activities:Define engineering skillsFollow up on DC survey (Roy)Mentoring (Duncan)Lunch sessions (Tjakko)
17Mentoring 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
Coach coachee plannen zelf de coach contact uren.18Lunch sessions Sioux Embedded Systems 2010 | Confidential | 19Monthly session by different speakerCase driven / with codePossible subjects:Explain one design pattern in depthExplain dont repeat yourselfExplain one of the SOLID principlesRefactoringTDDBDDCode reviews
SOLID: OOD principles:SRP: single responsibility principle: object should only be responsible for one thing(Open/closed, Liskov substitution, interface segregation, dependency inversion)
19Exercise Sioux Embedded Systems 2010 | Confidential | 20Aga