implementing programmer anarchy - goto...

30
Copyright © 2011-2014 by Fred George Implementing PROGRAMMER ANARCHY Fred George fred@ Outpace .com @fgeorge52 1

Upload: others

Post on 14-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Implementing PROGRAMMER ANARCHYFred George [email protected] @fgeorge52

1

Page 2: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred GeorgeCopyright © 2012-2013 by Fred George. All rights reserved.

Emerging Experiences at...

2

Page 3: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Agile is a Social Change✦ C-level executives understand this

✦ Middle management scared of this

✦ Result: Half-baked Agile implemented

3

Page 4: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

✦ Development driven by stories ✦ Stories small ✦ Priority set by customer ✦ Story-level estimates and metrics

Agile Side Effect: Story Tyranny

Problem:

4

Developers become disconnected from business problem (Drones)

Page 5: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Requirements Hierarchy

5

Tasks

Stories

Features

Projects

Initiatives

Credit: Greg Reiser, ThoughtWorks, 2005

Page 6: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George 6

Agile Roles

!Agile Roles

developmentbusiness

management

programmercustomerBA QA

DBA UI designerarchitect

project manager

iteration manager

developer

Page 7: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George 7

Anarchy Roles

✦ Customer ✦ Project manager ✦ Business analyst

✦ Developer ✦ Quality assurance / tester

✓ X

✓ X

X ✦ Manager of programmers X

Page 8: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George 8

Fate of Roles:

!Agile Roles

developmentbusiness

management

customerBA QA

project manager

iteration manager

developer

QA✦ QA tools are Programming tools

✦ Selenium ✦ Cucumber

✦ Service Architecture creates complex systems ✦ Need architecture skills to properly test

✦ Shift toward monitoring over acceptance testing

Page 9: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

BA

9

Fate of Roles:

!Agile Roles

developmentbusiness

management

customer

project manager

iteration manager

developer

BAToo complex for programmers!

Programmers can’t talk

Programmers lack “social

skills”

Page 10: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George 10

Fate of Roles:

!Agile Roles

developmentbusiness

management

customer

project manager

iteration manager

developer

X

Page 11: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George 11

Fate of Roles: ManagerClerkLeaderAmbassadorCoach/mentorConciergePower- Hungry

Boss

Page 12: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George 12

Anarchy Roles

!Agile Roles

developmentbusiness

management

customer developer

Page 13: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

forwardtechnology.co.uk

13

Page 14: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Example: Energy Revolution✦ Prior system:

✦ .NET with SQLServer ✦ New system:

✦ Ruby, Clojure, C++, Node.js, R ✦ MySQL, MongoDB ✦ HAML, SASS

14

Page 15: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Example: Energy Revolution✦ Ruby for energy calculation - big improvement! ✦ Rewrote in Clojure ✦ Rewrote in Clojure (again)

!

Question: What manager would let them to do it? Hence: No manager!

15

Page 16: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Example: Click Tracking✦ Old system:

✦ Ruby-based, 32 servers with 40% utilization ✦ New system:

✦ Node.js, 22 servers with 10% utilization and lower latency

16

Page 17: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Agile Best Practices

✦ Stand ups ✦ Story narratives ✦ Retrospectives ✦ Estimates ✦ Iterations ✦ Mandatory pairing

17

✦ Unit tests ✦ Acceptance tests ✦ Refactoring ✦ Patterns ✦ Continuous integration

Trust w collocation

Results, not blame

Small, short-lived

apps

Continuous deployment

Not Used

Page 18: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Agile 2013: Implementing Anarchy

18

✦ Online version of Daily Mail ✦ Company established in late 1800’s ✦ MailOnline largest online newspaper in world ✦ Challenge: Introduce Anarchy to an established IT

Page 19: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Transformation Summary

19

Was 2013✦ Project focus

✦ 3-6 month ✦ BAU for smaller

✦ Specialists ✦ Front-end ✦ Back-end ✦ Design ✦ Test ✦ Deployment

✦ SCRUM ✦ Story & task

focus

✦ Feature focus ✦ 1 month or less ✦ Longer for new

platforms ✦ Poly-skilled

✦ Broadly-skilled developers == Experts

✦ Experts float amongst efforts

✦ Aggressive Agile ✦ Table-based

teams of 5-8 ✦ Rotation to

balance & broaden

Page 20: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Pervasive Change Required: …so change everything!✦ Change the titles (and job descriptions)

✦ Change technology stack (with intense training)

✦ Change physical layout

20

Page 21: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2009-2014 by Fred George

Master

Journeyman

Apprentice

21

Page 22: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2009-2014 by Fred George 22

Master

Journeyman

Apprentice

2-6 Months

2 Years - Never

Page 23: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

People Focus

23

Master

Journeyman

Apprentice

Key Business Tech

Platform iOS

Android Databases Big Data

Languages HTML/CSS/JS

Java Ruby

Server-side JS

Software Delivery Agile management OOD / Architecture

Testing

Page 24: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Matching HR Focus

24

Competent in at least 1 key technology

Graduate Dev

Developer

Not yet competent in a key technology

Senior Dev Master (expert) in at least 1 key technologySystems Dev

Competent in 5-7 key technologies

Master Dev Master in 3+ key technologies

Dual career path for Developers

Page 25: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

✦ Intensive OO training class (40 hourse, off-site)

✦ Developers, tech leads, QA, and SCRUM masters

✦ Everyone encouraged to participate (but still optional)

Training in Working Together

25

Page 26: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Flexible Project Approach

26

Developers

time

“Tables”

A

B

C

D

E

F

G H

Page 27: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

MailOnline Scorecard

✦ Absorbed 20 more developers 1 Jan - 1 Mar ✦ By April 15

✦ Delivering LeaderBoard, a new page (Ruby, Node.js) ✦ Building first replacement page (Clojure, Node.js) ✦ Explored numerous message bus technologies

✦ Supporting MicroService architecture ✦ Rebuilt Android application

✦ By September, replaced front-end completely ✦ 130K Java with 4K Clojure + Node.js micro-services monitoring

27

Page 28: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

For last year, creating …

28

Page 29: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

Like MailOnline, Plus…

✦ Titles: Only “Developer” ✦ Remote pairing (4 time zones in US + Canada)

✦ Still meet developers face-to-face for the first time quarterly ✦ Teams decide assignments/roles each day ✦ New technologies/processes for most developers

✦ Clojure ✦ Micro-services ✦ Flat, self-organizing teams

29

Page 30: implementing programmer anarchy - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/FredGeorge_Implementing... · BA 9 Fate of Roles:! Agile Roles business development management

Copyright © 2011-2014 by Fred George

PROGRAMMER

30

ANARCHY