implementing programmer anarchy - GOTO...

Post on 14-Oct-2020

5 views 0 download

Transcript of implementing programmer anarchy - GOTO...

Copyright © 2011-2014 by Fred George

Implementing PROGRAMMER ANARCHYFred George fred@Outpace.com @fgeorge52

1

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

Emerging Experiences at...

2

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

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)

Copyright © 2011-2014 by Fred George

Requirements Hierarchy

5

Tasks

Stories

Features

Projects

Initiatives

Credit: Greg Reiser, ThoughtWorks, 2005

Copyright © 2011-2014 by Fred George 6

Agile Roles

!Agile Roles

developmentbusiness

management

programmercustomerBA QA

DBA UI designerarchitect

project manager

iteration manager

developer

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

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

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”

Copyright © 2011-2014 by Fred George 10

Fate of Roles:

!Agile Roles

developmentbusiness

management

customer

project manager

iteration manager

developer

X

Copyright © 2011-2014 by Fred George 11

Fate of Roles: ManagerClerkLeaderAmbassadorCoach/mentorConciergePower- Hungry

Boss

Copyright © 2011-2014 by Fred George 12

Anarchy Roles

!Agile Roles

developmentbusiness

management

customer developer

Copyright © 2011-2014 by Fred George

forwardtechnology.co.uk

13

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

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

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

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

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

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

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

Copyright © 2009-2014 by Fred George

Master

Journeyman

Apprentice

21

Copyright © 2009-2014 by Fred George 22

Master

Journeyman

Apprentice

2-6 Months

2 Years - Never

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

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

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

Copyright © 2011-2014 by Fred George

Flexible Project Approach

26

Developers

time

“Tables”

A

B

C

D

E

F

G H

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

Copyright © 2011-2014 by Fred George

For last year, creating …

28

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

Copyright © 2011-2014 by Fred George

PROGRAMMER

30

ANARCHY