programmer anarchy and managerless processes

Post on 14-Apr-2017

755 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Copyright © 2011-2016 by Fred George

PROGRAMMER ANARCHYandMANAGERLESS PROCESSES

Fred GeorgeFredGeorge@acm.org@fgeorge52

1

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

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

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

Emerging Experiences at...

4

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

✓ ✓ ✓

Copyright © 2011-2016 by Fred George 6

XP Values

✦ Feedback✦ Communication✦ Simplicity✦ Courage✦ Respect

✓ ✓

✓ ✓ ✓

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

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

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

Copyright © 2011-2016 by Fred George

Process Has Many NamesStartup ModelDeveloper-DrivenDevelopmentOne Hacker

Way

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

Copyright © 2011-2016 by Fred George 12

Simple

ComplicatedComplex

Chaotic

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

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)

Copyright © 2011-2016 by Fred George

Requirements Hierarchy

15

Tasks

Stories

Features

Projects

Initiatives

Credit: Greg Reiser, ThoughtWorks, 2005

Over-Specialization

Copyright © 2015 by Fred George

•Theory: • Specialist are more productive

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

16

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

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”

Copyright © 2011-2016 by Fred George 19

Fate of Roles:

AgileRoles

development

business

management

customer

project manage

r iteration manage

r

developer

X

Copyright © 2011-2016 by Fred George 20

Fate of Roles:Manager

ClerkLeaderAmbassadorCoach/mentorConciergePower-Hungry

Boss

Copyright © 2011-2016 by Fred George 21

Anarchy Roles

AgileRoles

developmentbusiness

management

customer developer

Copyright © 2011-2016 by Fred George

forwardtechnology.co.uk

22

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

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

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

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

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

Specialization Institutionalized with Titles

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

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

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

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

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

Copyright © 2011-2016 by Fred George

Flexible Project Approach

32

Developers

time

“Tables”

A

B

C

D

E

F

G H

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

Copyright © 2011-2016 by Fred George

2014-15: Refining…

38

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

Copyright © 2011-2016 by Fred George

PROGRAMMER

40

ANARCHY

top related