coding dojos på arbetstid

Post on 18-Dec-2014

115 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Coding Dojos

på arbetstid

fredrik.wendt@squeed.com

PST, PSD, PSM I, CSM

This work by

Fredrik Wendtis licensed under a

Creative Commons Attribution-ShareAlike

3.0 Unported License

http://creativecommons.org/licenses/by-sa/3.0/

Ditt namn, vad du gör!

Vad är det?

Har du eller vän deltagit?

Erfarenheter från deltagande?

Förväntning(-ar) på denna session!

Coding Dojo!

Learning Objectives

• why you don't want to run typical generic katas

• how different exercise styles matches learning patterns, skills and objectives of the dojo

• some things to think about when facilitating dojo sessions

• how I convince companies to see coding dojos as an invest with short ROI

• what skill advancements you might expect from coding dojos

• how a successfully run dojo may impact "soft values"

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

TL;DR

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

➔ Background, context

Based on What?

2 regular user groups

12 teams, 9 customers

past ~ 2 years

50 / 50

Taxonomy: Coding Dojo

“Dojo” from martial arts/budo

Means “place for the way”

More on Coding Dojos?

15% off: scrum-alliance-las-vegas-2013

Taxonomy: Kata

“Kata” from martial arts/budo

Start from scratch, next time – try new approach

Practice until mastered

Small, 1-2 hrs

Presentation

Randori

Roundori

Break-out

biz

CHANGE!

new skills

PracticeCoding Dojo

Examples of ”Skills”

TDD, Good Tests – Test Design

Working with Legacy Code

BDD, ATDD

Clean Code, Refactoring

Patterns, New Technologies

Pair Programming

Examples of ”Change”

New Tests Are Written!

Old Tests starts passing!

Code Coverage Goes Up!

Everyone Cares when the build Fails!

Technology Shift – “On” Plan

Skill Advancement

How comfortable were/are you with SKILL?

Beginner Expert

Before

After

Today

... ... ...

Programming Language

How comfortable were/are you with the programming language?

Beginner Expert

Before

After

Today

... ... ...

IDE-editor

How comfortable were/are you with the IDE-editor?

Beginner Expert

Before

After

Today

... ... ...

Unit Tests

How often did/do you write unit tests?

Beginner Expert

Before

After

Today

... ... ...

Test-Driven Development

How good at test-driven development were/are you?

Beginner Expert

Before

After

Today

... ... ...

Mock Objects

How comfortable were/are you at using Mock objects?

Beginner Expert

Before

After

Today

... ... ...

Refactoring

How good at refactoring were/are you?

Beginner Expert

Before

After

Today

... ... ...

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

➔ Background, context

Coding dojo!

Vad tror du behövs för lärande på arbetsplatsen?

(Skills, Change – subjektiva resultat)

Pros/cons – olika sätt att organisera sig?

(Presentation, Randori, break-out)

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

➔ Background, context

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

Safe Environment for Learning

No salary setting managers in the room

Talk about how humans learn!

Show attendees –

what: learning objective

how: seeing is believing

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

Different Mind-Set!

Attend out of own interest vs told to attend

Telling is not enough

Showing is not enough

Need to experience to believe & understand

Production like, see it's doable outside dojo

Must Feel Real!

Enterprise Java Beans

Java Persistence API

javax.servlet.*

String Calculator? Fizz Buzz?

Roman Numerals? MMXIII?

Bowling? Poker Games?

Example: servlet.Filter

• Kata Java EE Authentication Filter

• Uses javax.servlet.* API

• Uses 2 custom interfaces

• Show classical vs mockist style

• 2nd time around Clean Code

request is part of HTTP Session?

get token from session

SSO token is valid?

pass request on down the filter chain

return;throw AuthException;resp.setStatus(401);

request containsSSO cookie?

SSO token is valid?

request contains un& pw parameters?

get token from cookie

get un & pw from request

un & pw valid in LDAP?

get new SSO token

store SSO token in cookie

store SSO token in session

No

No

No

Yes

Yes

Yes

Yes

Kata

Jav

a EE

Aut

hent

icat

ion

Filte

r

public interface UserAccountRegistry {

boolean credentialsAreValid(String username,

String password);

}

public interface SingleSignOnRegistry {

boolean tokenIsValid(String ssoToken);

String requireToken(String username);

void revokeToken(String ssoToken);

}

Kata

Jav

a EE

Aut

hent

icat

ion

Filte

r

Break-out

Break-out

Break-out

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

Format

15 90 15

40 – 10 – 40

Context

Understand exercise

Fail in order to learn

Tools? Techniques?

“Seeing is believing”

DO

Review, Feedback

Repetition

Participants' own

words means learning!

Input to next session

Learning by Doing

Repeat exercise

without trainer,

same time, place, people

”I can do this on my own”

vs

”only works for others”

Repetition Mother of Learning

E-mail with kata,

retrospective notes,

learning objectives,

ask if they've uncovered new

insights/experiences

➔ Safe Learning Env➔ Like Production➔ Practice, Repetition –

Learning by Doing

Summary

Learning Objectives

• why you don't want to run typical generic katas

• how different exercise styles matches learning patterns, skills and objectives of the dojo

• some things to think about when facilitating dojo sessions

• how I convince companies to see coding dojos as an invest with short ROI

• what skill advancements you might expect from coding dojos

• how a successfully run dojo may impact "soft values"

MORE!

• Fruit, Candy, Coffee, Sugar!

• Whole team vs mixed teams

• Management buy-in – S-curve/hockey stick in learning

• Production like kata – 90 minute problems != realistic

• 1h topic-intro (clean code), lunch, 2h exercise

• 2h kata, lunch, 2h kata

• 1600-1800

• Come prepared, know your audience – 20 Questions

• Plant a mystery

NO MORE!

”Anti patterns”:

• Too complex problem

• Too complex biz rules (or game rules)

• Too huge data model – poker hands kata?

• Too great skill differences, depends on kata & style

• “Hero”?

top related