SlideShare a Scribd company logo
1 of 46
Technical	
  Excellence	
  Doesn't	
  Just	
  
Happen	
  –	
  Igniting	
  a	
  
Craftsmanship	
  Culture	
  	
  
By	
  Allison	
  Pollard	
  and	
  Mike	
  Rieser	
  
INTRODUCTIONS	
  
This	
  is	
  us!	
  
Allison	
  Pollard	
  
•  Agile	
  Process	
  Coach	
  and	
  
Consultant	
  
•  Firm	
  Believer	
  in	
  
Con=nuous	
  
Improvement	
  
•  DFW	
  Scrum	
  User	
  Group	
  
leader	
  and	
  Dallas	
  Agile	
  
Leadership	
  Network	
  
board	
  member	
  
•  Glasses	
  wearer	
  
Mike	
  Rieser	
  (ree-­‐sir)	
  
•  Agile	
  Coach	
  and	
  
Consultant	
  
•  Technical	
  Prac=ces	
  
Coach	
  
•  “Programmer	
  shirt”	
  
wearer	
  
TECHNICAL	
  EXCELLENCE	
  
“In	
  an	
  agile	
  project,	
  technical	
  excellence	
  is	
  measured	
  by	
  
both	
  capacity	
  to	
  deliver	
  customer	
  value	
  today	
  and	
  create	
  an	
  
adaptable	
  product	
  for	
  tomorrow.”	
  	
  
–	
  Jim	
  Highsmith	
  
Who’s	
  problem	
  is	
  it?	
  
How	
  many	
  programmers	
  
does	
  it	
  take	
  to	
  change	
  a	
  
light	
  bulb?	
  
6	
  
hUps://www.flickr.com/photos/belobaba/6058142799/	
  
Who’s	
  problem	
  is	
  it?	
  
Who	
  should	
  be	
  
concerned	
  with	
  the	
  
long-­‐term	
  viability	
  of	
  
the	
  codebase?	
  
7	
  
hUps://www.flickr.com/photos/f-­‐oxymoron/5005673112/	
  
The	
  9th	
  Agile	
  Principle	
  	
  
Con$nuous	
  a)en$on	
  
to	
  technical	
  excellence	
  
and	
  good	
  design	
  
enhances	
  agility.	
  
	
  
hUps://www.flickr.com/photos/ikoka/16843413711/	
  
Agile:	
  build	
  the	
  right	
  thing	
  and	
  build	
  it	
  right.	
  
•  Building	
  it	
  right	
  means	
  it	
  
has	
  a	
  simple	
  design,	
  and	
  
is	
  maintainable	
  and	
  
flexible.	
  
•  Successful	
  socware	
  
needs	
  to	
  be	
  able	
  to	
  
evolve	
  to	
  meet	
  
expanding	
  needs.	
  Photo	
  by	
  Yann,	
  hUps://en.wikipedia.org/wiki/File:Taj_Mahal_(Edited).jpeg	
  
GROUP	
  ACTIVITY	
  
Discuss	
  
•  In	
  small	
  groups:	
  
•  Come	
  up	
  with	
  at	
  least	
  1	
  anecdote	
  of	
  an	
  extreme	
  in	
  technical	
  
excellence.	
  Either	
  “too	
  much”	
  or	
  “not	
  enough”	
  that	
  you	
  can	
  share	
  
in	
  30-­‐60	
  seconds.	
  
•  We’ll	
  try	
  to	
  hear	
  from	
  1	
  or	
  2	
  of	
  the	
  groups	
  acerward.	
  
	
  
	
  
	
  
KINDLING	
  CRAFTSMANSHIP	
  
What	
  will	
  spark	
  your	
  culture	
  change?	
  
Flaccid	
  Scrum	
  –	
  Martin	
  Fowler	
  
•  They	
  want	
  to	
  use	
  an	
  agile	
  process,	
  and	
  pick	
  Scrum	
  
•  They	
  adopt	
  Scrum	
  prac=ces,	
  and	
  maybe	
  even	
  the	
  principles	
  
•  Acer	
  a	
  while	
  progress	
  is	
  slow	
  because	
  the	
  code	
  base	
  is	
  a	
  mess	
  
Five	
  Years	
  of	
  Flaccid	
  Scrum	
  
My	
  advice	
  s$ll	
  stands	
  -­‐	
  ensure	
  you	
  take	
  technical	
  prac$ces	
  
seriously	
  when	
  introducing	
  Scrum	
  (or	
  indeed	
  any	
  agile	
  
approach).	
  –	
  Mar=n	
  Fowler:	
  29	
  Jan	
  2014	
  
From	
  Flaccid	
  to	
  Awesome!	
  
Internal	
  Quality	
  
(Developer	
  Facing)	
  
External	
  Quality	
  
(Customer	
  Facing)	
  
Advice	
  
High	
   High	
   You’re	
  awesome!	
  
High	
   Low	
   Get	
  Customer-­‐focused!	
  
Low	
   High	
   It	
  won’t	
  Last.	
  Refactor	
  now!	
  
Low	
   Low	
   Refactor	
  versus	
  Rewrite?!	
  
Agile	
  Requires	
  Quality	
  
Waterfall	
   Agile	
  
0	
  
20	
  
40	
  
60	
  
80	
  
100	
  
120	
  
0	
   18	
   36	
   54	
  
Quality	
  over	
  Time	
  
0	
  
20	
  
40	
  
60	
  
80	
  
100	
  
120	
  
0	
   4	
   8	
   12	
   16	
   20	
   24	
   28	
   32	
   36	
   40	
   44	
   48	
   52	
   56	
   60	
  
Quality	
  over	
  Time	
  
Process	
  Dependencies	
  
16	
  
Waterfall	
  
Upfront Requirements	
  
Upfront Design	
  
Agile	
  
EvoluConary Design	
  
Refactoring	
  
Automated Developer
Tests	
  
Test	
  First	
  
Test	
  ADer	
  
Software	
  Costs	
  
!
Cost!"#$%&'( = Cost!"#"$%&'"() + Cost!"#$%&$"$'& + Cost!"#$%&'()*! (1)!
Cost!"#"$%&'"() ≪ Cost!"#$%&$"$'&! (2)!
Cost!"#$%&$"$'& = Cost!"#$%&'("# + Cost!"#$%& + Cost!"#$! (3)!
!
!
What	
  is	
  Technical	
  Debt?	
  
How	
  Does	
  Technical	
  Debt	
  Occur?	
  
How	
  Does	
  Technical	
  Debt	
  Occur?	
  
•  Ignorance	
  –	
  an	
  incomplete	
  understanding	
  of	
  how	
  the	
  system	
  works	
  
•  Complex	
  Requirements	
  –	
  producing	
  overly	
  complicated	
  
implementa=ons,	
  unreduced	
  complexity	
  
•  Over	
  Engineering	
  –	
  developers	
  building	
  more	
  sophis=cated	
  code	
  
than	
  is	
  necessary	
  (Specula=ve	
  Development).	
  [Gold	
  Pla=ng]	
  
•  Undone	
  Work	
  –	
  deciding	
  “wri=ng	
  automated	
  tests	
  slows	
  us	
  down”	
  
•  Good	
  code	
  /	
  wrong	
  place	
  
•  CuJng	
  Corners	
  –	
  “quick	
  and	
  dirty”	
  	
  
Faster	
  is	
  Slower	
  
We’ll	
  “fix	
  it	
  later.”	
  
hUps://www.flickr.com/photos/9266144@N02/1074851879	
  
The	
  Business	
  Made	
  Me	
  Do	
  It!	
  
What	
  a	
  Tech	
  Lead	
  says	
  to	
  his	
  Product	
  Owner:	
  	
  
“To	
  do	
  it	
  right	
  will	
  take	
  2	
  Itera$ons.	
  If	
  we	
  do	
  it	
  this	
  other	
  way,	
  we	
  can	
  
do	
  it	
  in	
  2	
  days,	
  but	
  the	
  developers	
  will	
  be	
  forever	
  burdened	
  with	
  fragile	
  
code	
  and	
  it	
  will	
  impact	
  our	
  delivery	
  on	
  every	
  project	
  in	
  the	
  future.”	
  
	
  
What	
  the	
  Product	
  Owner	
  hears:	
  
“You	
  can	
  have	
  it	
  in	
  2	
  days!”	
  
	
  
Moral:	
  
Be	
  sure	
  you	
  can	
  live	
  with	
  the	
  op$ons	
  you	
  present.	
  
Enhances.	
  Really?	
  
Compare	
  	
  
“Con$nuous	
  a)en$on	
  to	
  technical	
  
excellence	
  and	
  good	
  design	
  enhances	
  
agility.”	
  
	
  –	
  9th	
  Principle,	
  Agile	
  Manifesto	
  
with	
  
“Speed	
  is	
  a	
  long-­‐term	
  side-­‐effect	
  of	
  
producing	
  code	
  with	
  the	
  highest	
  
possible	
  internal	
  quality.”	
  
–	
  Agile	
  Tes$ng	
  by	
  Lisa	
  Crispin,	
  Janet	
  
Gregory	
  
perhaps	
  
Con$nuous	
  a)en$on	
  to	
  technical	
  
excellence	
  and	
  good	
  design	
  sustains	
  
agility.	
  	
  
hUps://www.flickr.com/photos/mr_t_in_dc/2322412546/	
  
WHAT	
  WE	
  TRIED	
  
And	
  now	
  for	
  something	
  completely	
  different.	
  
•  Working	
  Effec@vely	
  With	
  Legacy	
  Code	
  
•  Provides	
  real	
  examples	
  of	
  “geqng	
  out	
  of”	
  a	
  legacy	
  codebase,	
  
organized	
  by	
  “reason	
  it	
  can’t	
  be	
  done”…	
  
•  Legacy	
  Code	
  is	
  code	
  wriUen	
  without	
  tests.	
  Establishes	
  a	
  common	
  
language	
  across	
  the	
  technical	
  team	
  for	
  the	
  daily	
  problems	
  they’ll	
  
face	
  	
  
Outcome	
  
•  Some	
  read	
  it	
  (especially	
  those	
  in	
  the	
  book	
  club)	
  
•  Some	
  did	
  not	
  
•  Was	
  nice	
  to	
  be	
  able	
  to	
  say,	
  “go	
  read	
  Chapter	
  
15”	
  in	
  the	
  book	
  
Free	
  Book	
  
Book	
  Club	
  
•  Engage	
  people	
  in	
  discussion	
  about	
  the	
  contents	
  of	
  the	
  book,	
  
create	
  community	
  ‘buzz’	
  about	
  the	
  concepts	
  in	
  the	
  book.	
  
•  No	
  real	
  disagreements	
  have	
  been	
  encountered!	
  	
  
Outcome	
  
•  Book	
  club	
  started	
  very	
  successfully,	
  we	
  finished	
  Legacy	
  Code	
  
and	
  Clean	
  Code	
  
•  Observa=on:	
  Millennials	
  do	
  not	
  read	
  books	
  
•  Third	
  Book	
  –	
  folks	
  lost	
  interest.	
  Will	
  do	
  a	
  reboot	
  
Code	
  Ninjas	
  
•  Crea=ng	
  a	
  community	
  where	
  con=nuing	
  educa=on	
  is	
  
the	
  goal…	
  This	
  is	
  not	
  intended	
  to	
  be	
  a	
  one-­‐man	
  
show…	
  any	
  and	
  all	
  are	
  welcome	
  to	
  bring	
  interes=ng	
  
topics.	
  
•  Low	
  ceremony!	
  	
  
•  PowerPoint	
  okay,	
  Code	
  preferred.	
  
Outcome	
  
•  Seen	
  as	
  an	
  “output”	
  device,	
  a	
  way	
  to	
  get	
  a	
  message	
  
out.	
  
•  Not	
  good	
  as	
  an	
  “input”	
  device	
  for	
  determining	
  
direc=on.	
   Photo	
  by	
  ReRaise,	
  hUps://
commons.wikimedia.org/wiki/
File:Ninjaaa.jpg	
  
TDD	
  Training	
  
•  Introduces	
  the	
  prac=ce	
  of	
  Test	
  Driven	
  Development	
  
•  Refreshers	
  welcome	
  	
  
•  ‘Ignites	
  the	
  spark’	
  around	
  Test	
  Driven	
  Development	
  and	
  why	
  
we	
  need	
  it	
  
Outcomes	
  
•  Shoot	
  for	
  “Test-­‐Infected,”	
  coach	
  the	
  rest	
  
•  18,000	
  Unit	
  Tests	
  with	
  100%	
  pass	
  rate	
  every	
  build	
  
•  Tasks	
  for	
  “Unit	
  Tests”	
  have	
  disappeared	
  
Red	
  
Green	
  Refactor	
  
Maturity	
  Model	
  for	
  TDD	
  
34
SHU	
  
(Follow)	
  
HA
(Break Free)
RI	
  
(Transcend)	
  
§  S=ll	
  learning,	
  follows	
  but	
  may	
  
not	
  know	
  why.	
  
§  New	
  code	
  comes	
  with	
  new	
  
tests.	
  
§  Changed	
  code	
  comes	
  with	
  
tests	
  around	
  the	
  changes.	
  
§  Internalized	
  prac=ce,	
  but	
  s=ll	
  
needs	
  a	
  coach.	
  
§  Understands	
  pros	
  and	
  cons.	
  
§  All	
  code	
  is	
  wriOen	
  test-­‐first.	
  
§  Able	
  to	
  go	
  beyond	
  what	
  has	
  
been	
  taught	
  	
  
§  Creates	
  a	
  unit	
  tesCng	
  
framework	
  because	
  they	
  
needed	
  one	
  and	
  it	
  didn’t	
  exist.	
  
Code	
  Clinics	
  
•  A	
  non-­‐judgmental	
  place	
  where	
  developers	
  can	
  bring	
  their	
  
coding	
  issues	
  to	
  look	
  for	
  feedback	
  or	
  work	
  collabora=vely	
  on	
  
solu=ons,	
  watch	
  and	
  help	
  others,	
  get	
  mentoring	
  if	
  needed,	
  
iden=fy	
  how	
  to	
  apply	
  concepts	
  from	
  the	
  book	
  or	
  get	
  some	
  
code	
  under	
  test.	
  
Outcome	
  
•  Some=mes	
  repurposed	
  into	
  “Code	
  Review”	
  
•  A	
  few	
  dedicated	
  “Lurkers”	
  
•  As	
  delivery	
  pressure	
  increases,	
  aUendance	
  decreases	
  
•  Found	
  “classroom	
  exercises”	
  this	
  way	
   hUps://www.flickr.com/photos/lloyds-­‐
screenies/2696378369/	
  
Transferring	
  Code	
  Ownership	
  
Devs:	
  	
  
This	
  is	
  horrible!	
  They	
  ought	
  to	
  do	
  something	
  about	
  this!	
  
Coach:	
  
Management	
  wants	
  you	
  to	
  have	
  a	
  nice	
  code	
  base	
  to	
  work	
  in,	
  but	
  they	
  
aren’t	
  in	
  the	
  code	
  every	
  day.	
  
This	
  is	
  where	
  you	
  work	
  every	
  day.	
  	
  
If	
  you	
  want	
  a	
  nice	
  place	
  to	
  work,	
  you’re	
  going	
  to	
  have	
  to	
  clean	
  it	
  up.	
  
“You”	
  are	
  “they.”	
  
Outcome	
  
“Don’t	
  touch	
  that!”	
  replaced	
  with	
  
“Why	
  didn’t	
  you	
  clean	
  that	
  up?”	
  
“What”	
  is	
  Negotiable,	
  Not	
  “How”	
  
•  There	
  is	
  an	
  ‘N’	
  in	
  INVEST,	
  but	
  that	
  is	
  concerned	
  with	
  scope	
  
•  Do	
  not	
  let	
  the	
  Product	
  Owner	
  and	
  the	
  Developers	
  get	
  into	
  a	
  
nego=a=on	
  around	
  whether	
  certain	
  prac=ces	
  will	
  or	
  will	
  not	
  
be	
  followed	
  
hUps://www.flickr.com/photos/bellatrix6/168479364/in/photostream/	
  
Outcome	
  
•  Have	
  a	
  clear	
  Organiza=onal	
  Defini=on	
  of	
  
Done	
  
which	
  specifies	
  standards	
  
•  Business	
  not	
  happy,	
  but	
  …	
  
•  Avoid	
  technical-­‐only	
  projects	
  
	
  
Tech	
  Lead	
  Interview	
  Process	
  
•  Recrui=ng	
  Tech	
  Leads	
  that	
  are	
  evangelists	
  and	
  mentors	
  for	
  the	
  
concepts	
  we	
  care	
  about	
  (TDD,	
  Quality,	
  Refactoring,	
  OO	
  Design)	
  
•  Interview	
  includes:	
  a	
  coding	
  problem,	
  a	
  code	
  review	
  problem,	
  a	
  non-­‐
technical-­‐solu=on	
  problem	
  
•  Allowed	
  no	
  excep=ons	
  for	
  folks	
  hired	
  into	
  a	
  Tech	
  Lead	
  role	
  
Outcome	
  
•  “New	
  DNA”	
  rejec=ng	
  “Old	
  DNA”	
  
•  “Supervisor”	
  Tech	
  Leads	
  did	
  not	
  do	
  well	
  
•  Hit	
  most	
  on:	
  Senior	
  Devs	
  looking	
  for	
  their	
  next	
  level	
  
hUp://disney.wikia.com/wiki/
File:Star_wars_movies_darth_maul_obi-­‐
wan_wars_hd-­‐wallpaper-­‐481469.jpg	
  
Code	
  Reviews	
  
•  Originally	
  no	
  defini=on	
  of	
  “Produc=on	
  Worthy”	
  
•  Code	
  is	
  con=nually	
  ‘assessed’	
  (every	
  itera=on)	
  and	
  
feedback	
  given	
  to	
  ensure	
  we	
  con=nue	
  to	
  steer	
  away	
  
from	
  the	
  addi=on	
  of	
  debt	
  to	
  the	
  codebase	
  
•  The	
  more	
  frequent	
  the	
  code	
  reviews,	
  the	
  more	
  likely	
  
we	
  are	
  to	
  avoid	
  pixalls	
  at	
  the	
  end	
  of	
  a	
  project	
  
Outcome	
  
•  Reviews	
  with	
  different	
  teams	
  were	
  at	
  different	
  levels	
  
•  Smell:	
  sign-­‐off	
  became	
  “required”	
  
•  Now	
  community	
  owned	
  
hUps://www.flickr.com/photos/ericvaughn/
9728829199	
  
hUps://www.flickr.com/photos/dmcdevit/
1143743631	
  
hUps://www.flickr.com/photos/
26116471@N03/6788264645	
  
Continuous	
  Isolation	
  vs	
  Integration	
  
•  Providing	
  a	
  place	
  for	
  development	
  teams	
  to	
  fast-­‐track	
  
characteriza=on	
  tests,	
  safe	
  code	
  refactors	
  /	
  improvements	
  to	
  all	
  
teams	
  early,	
  outside	
  of	
  a	
  release	
  cycle	
  
•  Refactoring	
  code	
  in	
  this	
  stream	
  gives	
  fellow	
  teams	
  the	
  benefits	
  of	
  
refactored	
  code	
  and	
  debt	
  reduc=on	
  without	
  wai=ng	
  for	
  a	
  given	
  
project	
  to	
  ‘go	
  live’	
  
Outcome	
  
•  Before	
  this	
  code	
  cleanup	
  had	
  a	
  reverse	
  	
  
incen=ve	
  due	
  to	
  custodianship	
  
•  Every	
  team	
  has	
  used	
  it	
  at	
  least	
  once	
  
•  A	
  few	
  stars	
  are	
  huge	
  contributors	
  
hUps://www.flickr.com/photos/luizfilipe/2722089483/	
  
Birds	
  of	
  a	
  Feather	
  
•  Spontaneously	
  grew	
  organically	
  out	
  of	
  need	
  for	
  decisions	
  and	
  
conven=ons	
  
•  Technology	
  related:	
  “How	
  do	
  we	
  use	
  SpringMVC?”	
  
•  Not	
  formally	
  created	
  
hUps://www.flickr.com/photos/tambako/8011612529	
  
Outcome	
  
•  Email	
  distribu=on	
  lists	
  were	
  created	
  
for	
  each	
  interest	
  
•  Encourage	
  and	
  nurture	
  this	
  type	
  of	
  
self-­‐organizing	
  solu=on	
  process	
  
	
  
Practices	
  &	
  Process	
  	
  
•  No=ce	
  the	
  upper	
  
right	
  (highly	
  rated	
  
on	
  prac=ces	
  and	
  
on	
  process).	
  
•  Focus	
  on	
  process	
  
and	
  prac=ces	
  and	
  
you’ll	
  get	
  delivery!	
  
•  Where	
  would	
  
focusing	
  only	
  on	
  
delivery	
  get	
  you?	
  
Process	
  
Technical	
  Excellence	
  
WRAP	
  UP!	
  
Invest	
  in	
  your	
  people	
  
	
  
CFO:	
  What	
  if	
  we	
  train	
  them,	
  and	
  they	
  leave?	
  
COO:	
  What	
  if	
  we	
  don’t,	
  and	
  they	
  stay?	
  
Copyright:	
  David	
  Franklin/ShuUerstock	
  
Create	
  a	
  Safe	
  Environment	
  
“Ini=a=ve	
  is	
  punishable.”	
  
	
  –	
  Russian	
  Proverb	
  
•  If	
  you	
  want	
  teams	
  to	
  take	
  
ini=a=ve,	
  you	
  must	
  allow	
  
for	
  failure.	
  
•  Mistakes	
  are	
  an	
  indicator	
  
of	
  trying	
  something	
  new.	
  
•  Teams	
  require	
  autonomy	
  
to	
  achieve	
  excellence.	
  
Fan	
  the	
  Flame!	
  
•  There	
  really	
  is	
  no	
  
subs=tute	
  for	
  a	
  
developer	
  that	
  has	
  a	
  
spark	
  to	
  make	
  it	
  
right.	
  
•  When	
  you	
  see	
  the	
  
spark,	
  encourage	
  the	
  
flame!	
  Photo	
  by	
  Billy	
  Hathorn,	
  hUps://commons.wikimedia.org/wiki/
File:Kindling_for_star=ng_a_campfire_IMG_2454.JPG	
  
Perfect	
  (v.)	
  	
  
•  Con=nuous	
  Improvement	
  requires	
  con=nuous	
  learning	
  –	
  
encourage	
  a	
  learning	
  environment.	
  
•  Problems	
  are	
  one	
  of	
  the	
  first	
  signs	
  that	
  something	
  needs	
  
changed.	
  
•  Get	
  to	
  the	
  root	
  cause,	
  and	
  fix	
  it.	
  The	
  symptoms	
  will	
  go	
  
away.	
  
hUps://pixabay.com/en/learn-­‐note-­‐sign-­‐
directory-­‐64058/	
  
Long	
  Term	
  Viability	
  Requires	
  Discipline	
  
“Just	
  put	
  it	
  anywhere”	
  only	
  works	
  for	
  a	
  short	
  =me!	
  
Image	
  from	
  Raiders	
  of	
  the	
  Lost	
  Ark	
  
THE	
  END	
  
Best	
  Measure	
  of	
  Code	
  Quality	
  
•  Hard	
  to	
  game.	
  
Scrum	
  &	
  Extreme	
  Programming	
  (XP)	
  
#59	
  
“People	
  have	
  told	
  me	
  that	
  they	
  see	
  Scrum	
  as	
  the	
  
management	
  approach	
  to	
  agile	
  development	
  and	
  XP	
  as	
  the	
  
engineering	
  prac$ces	
  that	
  make	
  it	
  effec$ve,	
  both	
  bonded	
  
together	
  by	
  complimentary	
  prac$ces	
  and	
  goals.”	
  	
  
–	
  Ken	
  Schwaber	
  	
  

More Related Content

What's hot

Scrum intro ILTechTalks
Scrum intro ILTechTalksScrum intro ILTechTalks
Scrum intro ILTechTalks
Elad Sofer
 
Undercover Scrum Master - Agile2019
Undercover Scrum Master - Agile2019Undercover Scrum Master - Agile2019
Undercover Scrum Master - Agile2019
Dane Weber
 

What's hot (20)

Refactoring workshop
Refactoring workshop Refactoring workshop
Refactoring workshop
 
Agile & Scrum – intro slides
Agile & Scrum – intro slidesAgile & Scrum – intro slides
Agile & Scrum – intro slides
 
Agile - One Size Does Not Fit All
Agile - One Size Does Not Fit AllAgile - One Size Does Not Fit All
Agile - One Size Does Not Fit All
 
Atlassian Summit 2015 Lean QA and Agile Testing
Atlassian Summit 2015 Lean QA and Agile TestingAtlassian Summit 2015 Lean QA and Agile Testing
Atlassian Summit 2015 Lean QA and Agile Testing
 
Getting Agile Right - Rebooting an Agile organization in 100 days - Agile Tou...
Getting Agile Right - Rebooting an Agile organization in 100 days - Agile Tou...Getting Agile Right - Rebooting an Agile organization in 100 days - Agile Tou...
Getting Agile Right - Rebooting an Agile organization in 100 days - Agile Tou...
 
Scrum intro ILTechTalks
Scrum intro ILTechTalksScrum intro ILTechTalks
Scrum intro ILTechTalks
 
Agile and scrum masterclass
Agile and scrum masterclassAgile and scrum masterclass
Agile and scrum masterclass
 
Getting Agile Right - Rebooting an Agile Organization in 100 days - Agile Tou...
Getting Agile Right - Rebooting an Agile Organization in 100 days - Agile Tou...Getting Agile Right - Rebooting an Agile Organization in 100 days - Agile Tou...
Getting Agile Right - Rebooting an Agile Organization in 100 days - Agile Tou...
 
Titas Lapinskas - Technical Team Leader in Agile
Titas Lapinskas - Technical Team Leader in AgileTitas Lapinskas - Technical Team Leader in Agile
Titas Lapinskas - Technical Team Leader in Agile
 
Scaling Quality by Building It In - Agile Tour Montreal 2017
Scaling Quality by Building It In - Agile Tour Montreal 2017Scaling Quality by Building It In - Agile Tour Montreal 2017
Scaling Quality by Building It In - Agile Tour Montreal 2017
 
Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone
Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone
Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone
 
Kanban for scrummers
Kanban for scrummersKanban for scrummers
Kanban for scrummers
 
Building Cross-Functional Scrum-Teams in a Hardware Project
Building Cross-Functional Scrum-Teams in a Hardware ProjectBuilding Cross-Functional Scrum-Teams in a Hardware Project
Building Cross-Functional Scrum-Teams in a Hardware Project
 
Scaling Quality by Building it in - Agile Tour Ottawa 2017
Scaling Quality by Building it in - Agile Tour Ottawa 2017Scaling Quality by Building it in - Agile Tour Ottawa 2017
Scaling Quality by Building it in - Agile Tour Ottawa 2017
 
Value Streams and the Scaled Agile Framework
Value Streams and the Scaled Agile FrameworkValue Streams and the Scaled Agile Framework
Value Streams and the Scaled Agile Framework
 
Lean Discovery, Agile Delivery & the DevOps Mindset
Lean Discovery, Agile Delivery & the DevOps MindsetLean Discovery, Agile Delivery & the DevOps Mindset
Lean Discovery, Agile Delivery & the DevOps Mindset
 
Agile
AgileAgile
Agile
 
The Ultimate Agile Mix Tape (Agile 2017)
The Ultimate Agile Mix Tape (Agile 2017)The Ultimate Agile Mix Tape (Agile 2017)
The Ultimate Agile Mix Tape (Agile 2017)
 
Agile leadership assessment
Agile leadership assessmentAgile leadership assessment
Agile leadership assessment
 
Undercover Scrum Master - Agile2019
Undercover Scrum Master - Agile2019Undercover Scrum Master - Agile2019
Undercover Scrum Master - Agile2019
 

Similar to Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture

50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
asidharath
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97
akshay8835
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
Zivtech, LLC
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....
Mike Harris
 

Similar to Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture (20)

Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016
 
Effective Scrum
Effective ScrumEffective Scrum
Effective Scrum
 
Will The Test Leaders Stand Up?
Will The Test Leaders Stand Up?Will The Test Leaders Stand Up?
Will The Test Leaders Stand Up?
 
Turning Human Capital into High Performance Organizational Capital
Turning Human Capital into High Performance Organizational CapitalTurning Human Capital into High Performance Organizational Capital
Turning Human Capital into High Performance Organizational Capital
 
Secrets of Scrum
Secrets of ScrumSecrets of Scrum
Secrets of Scrum
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware
 
Agile ux fullday-uxpa2016
Agile ux fullday-uxpa2016Agile ux fullday-uxpa2016
Agile ux fullday-uxpa2016
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
Scrum intro
Scrum intro Scrum intro
Scrum intro
 
The Clash Between Devops and Quality Assurance
The Clash Between Devops and Quality AssuranceThe Clash Between Devops and Quality Assurance
The Clash Between Devops and Quality Assurance
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
03 fse agiledevelopment
03 fse agiledevelopment03 fse agiledevelopment
03 fse agiledevelopment
 
141015 Discovering Scrum at Scrum Roma
141015 Discovering Scrum at Scrum Roma141015 Discovering Scrum at Scrum Roma
141015 Discovering Scrum at Scrum Roma
 
Supersize me: Making Drupal go large
Supersize me: Making Drupal go largeSupersize me: Making Drupal go large
Supersize me: Making Drupal go large
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 

More from Allison Pollard

Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...
Allison Pollard
 
Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...
Allison Pollard
 
Getting Real without Getting Fired - Saying Things in a Way People Can Heart
Getting Real without Getting Fired - Saying Things in a Way People Can HeartGetting Real without Getting Fired - Saying Things in a Way People Can Heart
Getting Real without Getting Fired - Saying Things in a Way People Can Heart
Allison Pollard
 
Change your questions change your world - Houston TechFest 2014
Change your questions change your world - Houston TechFest 2014Change your questions change your world - Houston TechFest 2014
Change your questions change your world - Houston TechFest 2014
Allison Pollard
 

More from Allison Pollard (20)

Resilient Relationships
Resilient RelationshipsResilient Relationships
Resilient Relationships
 
Getting to Better Problems (AgileShift conference)
Getting to Better Problems (AgileShift conference)Getting to Better Problems (AgileShift conference)
Getting to Better Problems (AgileShift conference)
 
Getting to better problems
Getting to better problemsGetting to better problems
Getting to better problems
 
Strength of our Strengths
Strength of our StrengthsStrength of our Strengths
Strength of our Strengths
 
Little Rock Tech Fest - Change your questions change your world
Little Rock Tech Fest - Change your questions change your worldLittle Rock Tech Fest - Change your questions change your world
Little Rock Tech Fest - Change your questions change your world
 
Transforming, not transformations
Transforming, not transformationsTransforming, not transformations
Transforming, not transformations
 
Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...
 
Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...Everyday beliefs come true - Creating greatness through the stories we tell @...
Everyday beliefs come true - Creating greatness through the stories we tell @...
 
Getting Real without Getting Fired - Saying Things in a Way People Can Heart
Getting Real without Getting Fired - Saying Things in a Way People Can HeartGetting Real without Getting Fired - Saying Things in a Way People Can Heart
Getting Real without Getting Fired - Saying Things in a Way People Can Heart
 
Getting real without getting fired
Getting real without getting firedGetting real without getting fired
Getting real without getting fired
 
Introducing Engineering Practices without being hands-on
Introducing Engineering Practices without being hands-onIntroducing Engineering Practices without being hands-on
Introducing Engineering Practices without being hands-on
 
Brewing great agile team dynamics
Brewing great agile team dynamicsBrewing great agile team dynamics
Brewing great agile team dynamics
 
Emerging Leadership - DevOps Days Dallas 2016
Emerging Leadership - DevOps Days Dallas 2016Emerging Leadership - DevOps Days Dallas 2016
Emerging Leadership - DevOps Days Dallas 2016
 
Changing organizational mindset
Changing organizational mindsetChanging organizational mindset
Changing organizational mindset
 
Information radiators
Information radiatorsInformation radiators
Information radiators
 
Beyond Removing Impediments - Scrum Master as Team Coach - Houston TechFest 2014
Beyond Removing Impediments - Scrum Master as Team Coach - Houston TechFest 2014Beyond Removing Impediments - Scrum Master as Team Coach - Houston TechFest 2014
Beyond Removing Impediments - Scrum Master as Team Coach - Houston TechFest 2014
 
Change your questions change your world - Houston TechFest 2014
Change your questions change your world - Houston TechFest 2014Change your questions change your world - Houston TechFest 2014
Change your questions change your world - Houston TechFest 2014
 
Agile Retrospectives
Agile RetrospectivesAgile Retrospectives
Agile Retrospectives
 
Creating strong & passionate agile communities of practice
Creating strong & passionate agile communities of practiceCreating strong & passionate agile communities of practice
Creating strong & passionate agile communities of practice
 
Beyond removing impediments - Scrum Master as team coach
Beyond removing impediments - Scrum Master as team coachBeyond removing impediments - Scrum Master as team coach
Beyond removing impediments - Scrum Master as team coach
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture

  • 1. Technical  Excellence  Doesn't  Just   Happen  –  Igniting  a   Craftsmanship  Culture     By  Allison  Pollard  and  Mike  Rieser  
  • 3. Allison  Pollard   •  Agile  Process  Coach  and   Consultant   •  Firm  Believer  in   Con=nuous   Improvement   •  DFW  Scrum  User  Group   leader  and  Dallas  Agile   Leadership  Network   board  member   •  Glasses  wearer  
  • 4. Mike  Rieser  (ree-­‐sir)   •  Agile  Coach  and   Consultant   •  Technical  Prac=ces   Coach   •  “Programmer  shirt”   wearer  
  • 5. TECHNICAL  EXCELLENCE   “In  an  agile  project,  technical  excellence  is  measured  by   both  capacity  to  deliver  customer  value  today  and  create  an   adaptable  product  for  tomorrow.”     –  Jim  Highsmith  
  • 6. Who’s  problem  is  it?   How  many  programmers   does  it  take  to  change  a   light  bulb?   6   hUps://www.flickr.com/photos/belobaba/6058142799/  
  • 7. Who’s  problem  is  it?   Who  should  be   concerned  with  the   long-­‐term  viability  of   the  codebase?   7   hUps://www.flickr.com/photos/f-­‐oxymoron/5005673112/  
  • 8. The  9th  Agile  Principle     Con$nuous  a)en$on   to  technical  excellence   and  good  design   enhances  agility.     hUps://www.flickr.com/photos/ikoka/16843413711/  
  • 9. Agile:  build  the  right  thing  and  build  it  right.   •  Building  it  right  means  it   has  a  simple  design,  and   is  maintainable  and   flexible.   •  Successful  socware   needs  to  be  able  to   evolve  to  meet   expanding  needs.  Photo  by  Yann,  hUps://en.wikipedia.org/wiki/File:Taj_Mahal_(Edited).jpeg  
  • 11. Discuss   •  In  small  groups:   •  Come  up  with  at  least  1  anecdote  of  an  extreme  in  technical   excellence.  Either  “too  much”  or  “not  enough”  that  you  can  share   in  30-­‐60  seconds.   •  We’ll  try  to  hear  from  1  or  2  of  the  groups  acerward.        
  • 12. KINDLING  CRAFTSMANSHIP   What  will  spark  your  culture  change?  
  • 13. Flaccid  Scrum  –  Martin  Fowler   •  They  want  to  use  an  agile  process,  and  pick  Scrum   •  They  adopt  Scrum  prac=ces,  and  maybe  even  the  principles   •  Acer  a  while  progress  is  slow  because  the  code  base  is  a  mess   Five  Years  of  Flaccid  Scrum   My  advice  s$ll  stands  -­‐  ensure  you  take  technical  prac$ces   seriously  when  introducing  Scrum  (or  indeed  any  agile   approach).  –  Mar=n  Fowler:  29  Jan  2014  
  • 14. From  Flaccid  to  Awesome!   Internal  Quality   (Developer  Facing)   External  Quality   (Customer  Facing)   Advice   High   High   You’re  awesome!   High   Low   Get  Customer-­‐focused!   Low   High   It  won’t  Last.  Refactor  now!   Low   Low   Refactor  versus  Rewrite?!  
  • 15. Agile  Requires  Quality   Waterfall   Agile   0   20   40   60   80   100   120   0   18   36   54   Quality  over  Time   0   20   40   60   80   100   120   0   4   8   12   16   20   24   28   32   36   40   44   48   52   56   60   Quality  over  Time  
  • 16. Process  Dependencies   16   Waterfall   Upfront Requirements   Upfront Design   Agile   EvoluConary Design   Refactoring   Automated Developer Tests   Test  First   Test  ADer  
  • 17. Software  Costs   ! Cost!"#$%&'( = Cost!"#"$%&'"() + Cost!"#$%&$"$'& + Cost!"#$%&'()*! (1)! Cost!"#"$%&'"() ≪ Cost!"#$%&$"$'&! (2)! Cost!"#$%&$"$'& = Cost!"#$%&'("# + Cost!"#$%& + Cost!"#$! (3)! ! !
  • 18. What  is  Technical  Debt?  
  • 19. How  Does  Technical  Debt  Occur?  
  • 20. How  Does  Technical  Debt  Occur?   •  Ignorance  –  an  incomplete  understanding  of  how  the  system  works   •  Complex  Requirements  –  producing  overly  complicated   implementa=ons,  unreduced  complexity   •  Over  Engineering  –  developers  building  more  sophis=cated  code   than  is  necessary  (Specula=ve  Development).  [Gold  Pla=ng]   •  Undone  Work  –  deciding  “wri=ng  automated  tests  slows  us  down”   •  Good  code  /  wrong  place   •  CuJng  Corners  –  “quick  and  dirty”    
  • 21. Faster  is  Slower   We’ll  “fix  it  later.”   hUps://www.flickr.com/photos/9266144@N02/1074851879  
  • 22. The  Business  Made  Me  Do  It!   What  a  Tech  Lead  says  to  his  Product  Owner:     “To  do  it  right  will  take  2  Itera$ons.  If  we  do  it  this  other  way,  we  can   do  it  in  2  days,  but  the  developers  will  be  forever  burdened  with  fragile   code  and  it  will  impact  our  delivery  on  every  project  in  the  future.”     What  the  Product  Owner  hears:   “You  can  have  it  in  2  days!”     Moral:   Be  sure  you  can  live  with  the  op$ons  you  present.  
  • 23. Enhances.  Really?   Compare     “Con$nuous  a)en$on  to  technical   excellence  and  good  design  enhances   agility.”    –  9th  Principle,  Agile  Manifesto   with   “Speed  is  a  long-­‐term  side-­‐effect  of   producing  code  with  the  highest   possible  internal  quality.”   –  Agile  Tes$ng  by  Lisa  Crispin,  Janet   Gregory   perhaps   Con$nuous  a)en$on  to  technical   excellence  and  good  design  sustains   agility.     hUps://www.flickr.com/photos/mr_t_in_dc/2322412546/  
  • 24. WHAT  WE  TRIED   And  now  for  something  completely  different.  
  • 25. •  Working  Effec@vely  With  Legacy  Code   •  Provides  real  examples  of  “geqng  out  of”  a  legacy  codebase,   organized  by  “reason  it  can’t  be  done”…   •  Legacy  Code  is  code  wriUen  without  tests.  Establishes  a  common   language  across  the  technical  team  for  the  daily  problems  they’ll   face     Outcome   •  Some  read  it  (especially  those  in  the  book  club)   •  Some  did  not   •  Was  nice  to  be  able  to  say,  “go  read  Chapter   15”  in  the  book   Free  Book  
  • 26. Book  Club   •  Engage  people  in  discussion  about  the  contents  of  the  book,   create  community  ‘buzz’  about  the  concepts  in  the  book.   •  No  real  disagreements  have  been  encountered!     Outcome   •  Book  club  started  very  successfully,  we  finished  Legacy  Code   and  Clean  Code   •  Observa=on:  Millennials  do  not  read  books   •  Third  Book  –  folks  lost  interest.  Will  do  a  reboot  
  • 27. Code  Ninjas   •  Crea=ng  a  community  where  con=nuing  educa=on  is   the  goal…  This  is  not  intended  to  be  a  one-­‐man   show…  any  and  all  are  welcome  to  bring  interes=ng   topics.   •  Low  ceremony!     •  PowerPoint  okay,  Code  preferred.   Outcome   •  Seen  as  an  “output”  device,  a  way  to  get  a  message   out.   •  Not  good  as  an  “input”  device  for  determining   direc=on.   Photo  by  ReRaise,  hUps:// commons.wikimedia.org/wiki/ File:Ninjaaa.jpg  
  • 28. TDD  Training   •  Introduces  the  prac=ce  of  Test  Driven  Development   •  Refreshers  welcome     •  ‘Ignites  the  spark’  around  Test  Driven  Development  and  why   we  need  it   Outcomes   •  Shoot  for  “Test-­‐Infected,”  coach  the  rest   •  18,000  Unit  Tests  with  100%  pass  rate  every  build   •  Tasks  for  “Unit  Tests”  have  disappeared   Red   Green  Refactor  
  • 29. Maturity  Model  for  TDD   34 SHU   (Follow)   HA (Break Free) RI   (Transcend)   §  S=ll  learning,  follows  but  may   not  know  why.   §  New  code  comes  with  new   tests.   §  Changed  code  comes  with   tests  around  the  changes.   §  Internalized  prac=ce,  but  s=ll   needs  a  coach.   §  Understands  pros  and  cons.   §  All  code  is  wriOen  test-­‐first.   §  Able  to  go  beyond  what  has   been  taught     §  Creates  a  unit  tesCng   framework  because  they   needed  one  and  it  didn’t  exist.  
  • 30. Code  Clinics   •  A  non-­‐judgmental  place  where  developers  can  bring  their   coding  issues  to  look  for  feedback  or  work  collabora=vely  on   solu=ons,  watch  and  help  others,  get  mentoring  if  needed,   iden=fy  how  to  apply  concepts  from  the  book  or  get  some   code  under  test.   Outcome   •  Some=mes  repurposed  into  “Code  Review”   •  A  few  dedicated  “Lurkers”   •  As  delivery  pressure  increases,  aUendance  decreases   •  Found  “classroom  exercises”  this  way   hUps://www.flickr.com/photos/lloyds-­‐ screenies/2696378369/  
  • 31. Transferring  Code  Ownership   Devs:     This  is  horrible!  They  ought  to  do  something  about  this!   Coach:   Management  wants  you  to  have  a  nice  code  base  to  work  in,  but  they   aren’t  in  the  code  every  day.   This  is  where  you  work  every  day.     If  you  want  a  nice  place  to  work,  you’re  going  to  have  to  clean  it  up.   “You”  are  “they.”   Outcome   “Don’t  touch  that!”  replaced  with   “Why  didn’t  you  clean  that  up?”  
  • 32. “What”  is  Negotiable,  Not  “How”   •  There  is  an  ‘N’  in  INVEST,  but  that  is  concerned  with  scope   •  Do  not  let  the  Product  Owner  and  the  Developers  get  into  a   nego=a=on  around  whether  certain  prac=ces  will  or  will  not   be  followed   hUps://www.flickr.com/photos/bellatrix6/168479364/in/photostream/   Outcome   •  Have  a  clear  Organiza=onal  Defini=on  of   Done   which  specifies  standards   •  Business  not  happy,  but  …   •  Avoid  technical-­‐only  projects    
  • 33. Tech  Lead  Interview  Process   •  Recrui=ng  Tech  Leads  that  are  evangelists  and  mentors  for  the   concepts  we  care  about  (TDD,  Quality,  Refactoring,  OO  Design)   •  Interview  includes:  a  coding  problem,  a  code  review  problem,  a  non-­‐ technical-­‐solu=on  problem   •  Allowed  no  excep=ons  for  folks  hired  into  a  Tech  Lead  role   Outcome   •  “New  DNA”  rejec=ng  “Old  DNA”   •  “Supervisor”  Tech  Leads  did  not  do  well   •  Hit  most  on:  Senior  Devs  looking  for  their  next  level   hUp://disney.wikia.com/wiki/ File:Star_wars_movies_darth_maul_obi-­‐ wan_wars_hd-­‐wallpaper-­‐481469.jpg  
  • 34. Code  Reviews   •  Originally  no  defini=on  of  “Produc=on  Worthy”   •  Code  is  con=nually  ‘assessed’  (every  itera=on)  and   feedback  given  to  ensure  we  con=nue  to  steer  away   from  the  addi=on  of  debt  to  the  codebase   •  The  more  frequent  the  code  reviews,  the  more  likely   we  are  to  avoid  pixalls  at  the  end  of  a  project   Outcome   •  Reviews  with  different  teams  were  at  different  levels   •  Smell:  sign-­‐off  became  “required”   •  Now  community  owned   hUps://www.flickr.com/photos/ericvaughn/ 9728829199   hUps://www.flickr.com/photos/dmcdevit/ 1143743631   hUps://www.flickr.com/photos/ 26116471@N03/6788264645  
  • 35. Continuous  Isolation  vs  Integration   •  Providing  a  place  for  development  teams  to  fast-­‐track   characteriza=on  tests,  safe  code  refactors  /  improvements  to  all   teams  early,  outside  of  a  release  cycle   •  Refactoring  code  in  this  stream  gives  fellow  teams  the  benefits  of   refactored  code  and  debt  reduc=on  without  wai=ng  for  a  given   project  to  ‘go  live’   Outcome   •  Before  this  code  cleanup  had  a  reverse     incen=ve  due  to  custodianship   •  Every  team  has  used  it  at  least  once   •  A  few  stars  are  huge  contributors   hUps://www.flickr.com/photos/luizfilipe/2722089483/  
  • 36. Birds  of  a  Feather   •  Spontaneously  grew  organically  out  of  need  for  decisions  and   conven=ons   •  Technology  related:  “How  do  we  use  SpringMVC?”   •  Not  formally  created   hUps://www.flickr.com/photos/tambako/8011612529   Outcome   •  Email  distribu=on  lists  were  created   for  each  interest   •  Encourage  and  nurture  this  type  of   self-­‐organizing  solu=on  process    
  • 37. Practices  &  Process     •  No=ce  the  upper   right  (highly  rated   on  prac=ces  and   on  process).   •  Focus  on  process   and  prac=ces  and   you’ll  get  delivery!   •  Where  would   focusing  only  on   delivery  get  you?   Process   Technical  Excellence  
  • 39. Invest  in  your  people     CFO:  What  if  we  train  them,  and  they  leave?   COO:  What  if  we  don’t,  and  they  stay?   Copyright:  David  Franklin/ShuUerstock  
  • 40. Create  a  Safe  Environment   “Ini=a=ve  is  punishable.”    –  Russian  Proverb   •  If  you  want  teams  to  take   ini=a=ve,  you  must  allow   for  failure.   •  Mistakes  are  an  indicator   of  trying  something  new.   •  Teams  require  autonomy   to  achieve  excellence.  
  • 41. Fan  the  Flame!   •  There  really  is  no   subs=tute  for  a   developer  that  has  a   spark  to  make  it   right.   •  When  you  see  the   spark,  encourage  the   flame!  Photo  by  Billy  Hathorn,  hUps://commons.wikimedia.org/wiki/ File:Kindling_for_star=ng_a_campfire_IMG_2454.JPG  
  • 42. Perfect  (v.)     •  Con=nuous  Improvement  requires  con=nuous  learning  –   encourage  a  learning  environment.   •  Problems  are  one  of  the  first  signs  that  something  needs   changed.   •  Get  to  the  root  cause,  and  fix  it.  The  symptoms  will  go   away.   hUps://pixabay.com/en/learn-­‐note-­‐sign-­‐ directory-­‐64058/  
  • 43. Long  Term  Viability  Requires  Discipline   “Just  put  it  anywhere”  only  works  for  a  short  =me!   Image  from  Raiders  of  the  Lost  Ark  
  • 45. Best  Measure  of  Code  Quality   •  Hard  to  game.  
  • 46. Scrum  &  Extreme  Programming  (XP)   #59   “People  have  told  me  that  they  see  Scrum  as  the   management  approach  to  agile  development  and  XP  as  the   engineering  prac$ces  that  make  it  effec$ve,  both  bonded   together  by  complimentary  prac$ces  and  goals.”     –  Ken  Schwaber