Download - SW Craftsmanship in Sioux Embedded Systems

Transcript
Page 1: SW Craftsmanship in Sioux Embedded Systems

Sw Craftsmanship

- Sioux weekend of code -

Roy Nitert

October 2011

Page 2: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 2

Agenda

What is SW craftsmanship ? Exercise 1 Background craftsmanship based on Pete

McBreens book SW Craftsmanship within Sioux Exercise 2 Wrap-up

Page 3: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 3

What is SW Craftsmanship ?

What do you think that it is? What activities/skills/attitude belong to it? Lets make a list

Page 4: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 4

Exercise

Determine what belongs to SW craftsmanship and what not

In two groups Use flipover and notes with ‘skills’ You can make new notes 10 minutes to cover all notes Keep discussions to a minimum

Page 5: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 5

Skills

active listening architecture ASD BDD/ATDD build automation C# C++ clean code code review coding dojo/kata coding standard communiceren configuration management conflict management continuous integration design patterns document review documenting don’t repeat yourself eclipse estimating java kanban leadership

mentoring model driven development OOA/D pair programming peer recognition presenteren projectmatig werken reading refactoring requirements engineering retrospection RUP scrum SQS SVN TDD team building test automation testing UML unit testing Visual Studio V-model

Page 6: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 6

SW Craftsmanship manifesto

Page 7: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 7

Agile Manifesto

SW craftsmanship manifesto

Two Manifestos

Processes and tools

Comprehensive documentation

Contract negotiation

Following a plan

Individuals and interactions

Working software

Customer collaboration

Responding to change

A community of professionals

Well-crafted software

Productive partnerships

Steadily adding value

Page 8: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 8

Software Craftsmanship book The New Imperative (1)

The software business resides in a constant crisis

Engineering only considers development as science, but does not address the social aspects

A different metaphor would be more suitable

Page 9: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 9

Software Craftsmanship book The New Imperative (2)

Traditional craft: Technical knowledge, practiced skill and aesthetics

Roles: Master craftsman, Journeyman, Apprentice

Page 10: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 10

Software Craftsmanship book The New Imperative (3)

Objective

Obtain mastery over science and engineering so that we can continually refine our craft

Raising the bar

Continually work to improve your skills

Perpetual learning

•encourage participation in conferences •create a learning environment

Page 11: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 11

Software Craftsmanship book The New Imperative (4)

Master craftsman

•Leads 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 team

Page 12: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 12

Software Craftsmanship book The New Imperative (5)

Journeyman

• Has 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

Page 13: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 13

Software Craftsmanship book The New Imperative (6)

Apprentice

•Contribute to simple tasks•Learn from journeyman•Situated learning•Review work of the master•Progression through demonstrated progress

Page 14: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 14

Software Craftsmanship book The New Imperative (7)

Put back pride into SW development

•Sign your work•Take credit•Accountability•Reputation

No licensing/certification

•Craftsmanship is personal•Peer recognition•Peer recommendation

Page 15: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 15

Software Craftsmanship book The New Imperative (8)

Management style

•No horde of average programmers•Small team of good developers

•No detailed instructions or command and control•Facilitating and coordinating

•Knowledge workers•Pay them well (3 times as much as average developers)

Page 16: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 16

More information

Books:• 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

Page 17: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 17

Think tank

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 skills- Follow up on DC survey (Roy)- Mentoring (Duncan)- Lunch sessions (Tjakko)

Page 18: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 18

Mentoring

Mentoring is a first step towards master-journeyman-apprentice model

Facilitate pairs of coach and coachee List of potential coaches available Coachees are approached during PM talks You can also subscribe yourself Indication: 2 to 4 hours a month Paid by personal training budget

Page 19: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 19

Lunch sessions

Monthly session by different speaker Case driven / with code Possible subjects:

- Explain one design pattern in depth- Explain ‘don’t repeat yourself’- Explain one of the SOLID principles- Refactoring- TDD- BDD- Code reviews

Page 20: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 20

Exercise

Again determine what belongs to SW craftsmanship and what not

Add more skills 5 minutes

Page 21: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 21

Discussion

Do these skills belong to SW craftsmanship? Skill1 Skill2 …

Page 22: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 22

Coming up

Cursus cafetaria Hot-or-not Craftsmanship Premium course Craftsmanship Lunch sessions Mentoring

Kevlin Henney

Page 23: SW Craftsmanship in Sioux Embedded Systems

© Sioux Embedded Systems 2010 | Confidential | 23

SW Craftsmanship

Verbeter je skills,begin bij jezelf

Page 24: SW Craftsmanship in Sioux Embedded Systems

24© Sioux Embedded Systems 2010 | Confidential |

[email protected]

+31 40 2677100roy.nitert