SW Craftsmanship in Sioux Embedded Systems

download SW Craftsmanship in Sioux Embedded Systems

of 24

  • date post

    19-Oct-2014
  • Category

    Technology

  • view

    969
  • download

    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