programmer anarchy and managerless processes

36
Copyright © 2011-2016 by Fred George PROGRAMMER ANARCHY and MANAGERLESS PROCESSES Fred George FredGeorge@acm.org @fgeorge52 1

Upload: fred-george

Post on 14-Apr-2017

755 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

PROGRAMMER ANARCHYandMANAGERLESS PROCESSES

Fred [email protected]@fgeorge52

1

Page 2: Programmer Anarchy and Managerless Processes

Fred George

Copyright © 2015 by Fred George. All rights reserved. 2

Technologist• Computer networks – 70’s• Token Ring LAN – 80’s• GUI’s – late 80’s• OO – late 80’s• Agile – late 90’s• MicroServices – mid-2000’s

Programmer• Since 1968 (Basic)• 65,000 hours experience• 70+ languages• Computer Science Degree

1973Manager

• 17 years IBM• Business degree,

MIT Sloan School 1986• Product Owner, IBM• VP, ThoughtWorks• Co-founder, Outpace (Silicon

Valley)• Senior Advisor to 3 tech

companies

Page 3: Programmer Anarchy and Managerless Processes

Fred George

Copyright © 2015 by Fred George. All rights reserved. 3

Consulting Roles• Change Agent• Disruptor• “Hand grenade I am

throwing into development”• CTO describing Fred to his

Vice President

Page 4: Programmer Anarchy and Managerless Processes

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

Emerging Experiences at...

4

Page 5: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 5

Agile Manifesto

✦ Individuals and interactions over processes and tools

✦ Working software over comprehensive documentation

✦ Customer collaboration over contract negotiation

✦ Responding to change over following a plan

✓ ✓ ✓

Page 6: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 6

XP Values

✦ Feedback✦ Communication✦ Simplicity✦ Courage✦ Respect

✓ ✓

✓ ✓ ✓

Page 7: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

Agile Best Practices

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

pairing

7

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

integration

Not Used

Page 8: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 8

Agile Roles

AgileRoles

development

business

management

programmer

customerBA QA

DBAUI

designer

architect

project manage

r iteration manage

r

developer

Page 9: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 9

Anarchy Roles

✦ Customer✦ Project manager✦ Business analyst✦ Developer✦ Quality assurance /

tester

✓ X

✓ X

X ✦ Manager of

programmers X

Page 10: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

Process Has Many NamesStartup ModelDeveloper-DrivenDevelopmentOne Hacker

Way

Page 11: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 11

Simple

ComplicatedComplex

ChaoticCause a Effect

Cause aaa Effect

Effect? Cause?

Cause ? Effect

DisorderNew Problem Domains: The Cynefin Framework

Page 12: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 12

Simple

ComplicatedComplex

Chaotic

Page 13: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 13

Project Delivery Cycles

5 yrs.

1980 1990 2000

1 mon.

1 week

1 day

2010

1 year

Proj

ect D

urat

ion

(log) Waterfall

Waterfall

AgileAgile

A2

A2

Waterfallw OO

Page 14: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

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

Agile Side Effect:Story Tyranny

Problem:

14

Developers become disconnected from business problem (Drones)

Page 15: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

Requirements Hierarchy

15

Tasks

Stories

Features

Projects

Initiatives

Credit: Greg Reiser, ThoughtWorks, 2005

Page 16: Programmer Anarchy and Managerless Processes

Over-Specialization

Copyright © 2015 by Fred George

•Theory: • Specialist are more productive

•Practice: •Overhead of communication is under-estimated•Unbalanced workload creates delays

16

Page 17: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

✦ QA tools are Programming tools✦ Selenium✦ Cucumber

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

✦ Shift toward monitoring over acceptance testing

17

Fate of Roles:

AgileRoles

development

business

management

customerBA QA

project manage

r iteration manage

r

developer

QA

Page 18: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

BA

18

Fate of Roles:

AgileRoles

developmentbusiness

management

customer

project manage

r iteration manage

r

developer

BAToo complex

for programmers!

Programmers can’t talk

Programmers lack “social

skills”

Page 19: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 19

Fate of Roles:

AgileRoles

development

business

management

customer

project manage

r iteration manage

r

developer

X

Page 20: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 20

Fate of Roles:Manager

ClerkLeaderAmbassadorCoach/mentorConciergePower-Hungry

Boss

Page 21: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George 21

Anarchy Roles

AgileRoles

developmentbusiness

management

customer developer

Page 22: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

forwardtechnology.co.uk

22

Page 23: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

Example: Energy Revolution

✦ Prior system:✦ .NET with SQLServer

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

23

Page 24: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 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!

24

Page 25: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 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

25

Page 26: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

Agile Best Practices

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

pairing

26

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

integration

Trust wcollocation

Results,not blame

Small,short-lived

apps

Continuousdeployment

Not Used

Page 27: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

Agile 2013: Implementing Anarchy

27

✦ 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 28: Programmer Anarchy and Managerless Processes

Specialization Institutionalized with Titles

Copyright © 2015 by Fred George. All rights reserved. 28

Case Study:•50 IT professionals•25+ titles•0 people understanding projects

Page 29: Programmer Anarchy and Managerless Processes

29

Master

Journeyman

Apprentice

Key Business TechPlatform

iOSAndroid

DatabasesBig Data

LanguagesHTML/CSS/JS

JavaRuby

Server-side JS

Software DeliveryAgile managementOOD / Architecture

Testing

Solution: Fix the Titles

Page 30: Programmer Anarchy and Managerless Processes

Matching HR Focus

30

Competent in at least 1 key technology

Graduate Dev

DeveloperNot 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 31: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 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

31

Page 32: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

Flexible Project Approach

32

Developers

time

“Tables”

A

B

C

D

E

F

G H

Page 33: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 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

36

Page 34: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

2014-15: Refining…

38

Page 35: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 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

39

Page 36: Programmer Anarchy and Managerless Processes

Copyright © 2011-2016 by Fred George

PROGRAMMER

40

ANARCHY