Organizational Design for Effective Software Development

Post on 08-Jul-2015

470 views 1 download

Tags:

description

A Presentation by Faith Cooley on Organizational Design for Effective Software development. Check out this deck to see some of the leading changes we've seen in companies that need to get their software to market faster and more efficiently. Org Design and Agile/Continuous Delivery work hand in hand to tune your process effectively.

transcript

Organizational Design

for Effective Software

Development

Faith Cooley, PMP

Lean Six Sigma Black Belt

• Faith Cooley

– Software Development Management Coach

– Lean Six Sigma Black Belt 10 years

– PMP 8 years

– CSM, CSPO, ITIL

– Last 8 Years: Software Development

• Problems with Matrix Organizations

• Intro to Team Based Organizations

– Address Matrix Org Problems

• Move toward team based organization

• What companies use this structure?

Feels like this…

Bob (leader)

Steve (dev)

Mitch (design)

Harry (finance)

Jane (PM)

But really is this…

And it grows into…

Cross-

Functional

Matrix Team

CEO

VP Marketing

Director, Product

Management

Sr. Product Manager

VP, PMO

Director, Project

Management

Sr. Project Manager

VP Technology

Director, QA

Sr. Test Engineer

Director, Development

Sr. Developer

CFO

Director, Operations

Operations

Manage the function,

not the project

BobLeader

Jane

•Web + PM

Mitch

•Dev + Design

Harry

•Finance + Support

Steve

•Dev + QA

• Bob says…

– Jane, hire PM!

– Mitch, hire Dev!

– Steve, hire QA person!

• Once you are 50+ people, it

gets increasingly hard to

reorganize…

Problems with the Matrix

CEO

VP Marketing

Director, Product

Management

Sr. Product Manager

VP, PMO

Director, Project

Management

Sr. Project Manager

VP Technology

Director, QA

Sr. Test Engineer

Director, Development

Sr. Developer

CFO

Director, Operations

OperationsCross-

Functional

Matrix Team

To get anything done…

shadow organization!

Get product

to market

with 100

features fast

Make sure

all

processes

followed

Ship with as

few bugs as

possible

using

modern

technology

I need this

done cheap &

delivered on

time to make

my numbers

OMG I am

working on too

many projects &

getting pulled

every way

• Theory– Software Development is a simple series of

repeatable steps, manageable via processes• Good engineering, no conflicting objectives

• Reality– Software Development is a never ending series of

small decisions made by everyone on the team, rooted in goals

• Ambiguity in silo vs delivery goals

• The “presider” over the fighting always looks “responsible” in comparison

– The VP of Technology HAS to be there to resolve disputes between these yahoos!

– VP may have caused it… Hmm…

• Heads Down & Stay Out of Trouble!

– Don’t tell a PM what to do. Don’t tell a Dev what to do. Etc.

Learned Helplessness

• Accountability & delivery means risk

– Better to not put your neck out…

• Two year waterfall projects are great!

– Work for two years, get paid

– Not ship, everyone gets fired or not

– Not my fault! It was [PM|Dev|QA|Management]!

– Repeat!

Risk Income Management

• Teams responsible & accountable for

delivery

• Everyone is a mentor

• All “managers” are working managers

Bob (Leader)

Team Lead, Product A

Dev

QA

PM

Contractor

Team Lead, Product B

Dev

SDET

Ops

Team Lead, Product C & D

Dev

SDET

Ops

Internal Reviewer

Product A Product B Product C&D

• Software produced by single team that works only on a single

project is of significantly higher quality (less defects)

• Each team member is SME with respected competencies

– Each has accountabilities to team & function

– Work with other teams for functional mentoring

• Goals of team are clear & delivery focused

– Visual on Kanban board

– Definition of Done clearly described

• Collaboration is incented & rewarded

Key to Success

Reward cooperation!

• Reviews

• Hiring/Firing/Career Management

• Functional Execution Quality

– Good code? Good tests? Good reqs?

• Budget

• Methodology

• Potential Single-Chain Authority Problems– Petty dictators?

– Buddies?

• 360 Reviews– Anonymous feedback, managed by HR

– Presented to staff member by team lead

– Cited by employees as one of best things we do

– Challenging to implement properly…• But worth doing!

Team Leader(s)• Options:

– PM

– PM/Dev Lead*

– Dev Lead

– Manages the budget

• Career Management– You pick what you want

to know

– You pair/you fill in

• Your team is expensive!

• Top 5

– Lack of commitment

– Fear of conflict

– Absence of trust

– Avoidance of accountability

– Inattention to results

• Standards agreed to & followed

• Pairing/Code reviews between teams

• Continuous integration driven from below– Support from above!

• Test automation

• “Open Source” self serve internal code repository

• Binary Repository for Artifacts (libs + apps)

• Feature toggles, release trains

• Limit blast area

• Pull system that accommodates your team– Not the other way around!

• Focuses on team swarming on and finishing work

• Kanban forces conversations

• Great for growing your team competencies

• Highlights bottlenecks in organization

• Forces continuous improvement

• Layered on top of SDLC to show bottlenecks & determine waste

• Allows business to pick what is most important each time

BACKLOG SELECTED DONE

DEVELOPMENT

ONGOING DONE

TESTING

ONGOING DONEDEPLOY

T1

T2

T2

T6T7

S1

S2

S6S7

3 2 2 1

• Start giving full-cycle projects to your managers– “Bob, you have been leading QA for a while now. We have an upcoming project to update our

website – it’s not huge, but it’s a couple of people. I’d like you to run the whole thing, soup-to-nuts.”

• Have this conversation with all of your managers.

• Track who is able to effectively deliver, and who struggles– Reward successful delivery

– Reward collaboration

– Phase out managers that play games, don’t ship

• After 3-6 month period, transition entire portfolio

• Walk through portfolio of projects, assign names to all staff– Be clear about high level standards & expectations

– E.g. I expect projects to be run using Scrumban, use automation where possible, push to staging frequently with demos every two weeks.

• Make clear that you hold everyone to standards, expect prior domain experts to share knowledge

• Servant leaders focus on what problems to

solve and why

• Teams solve the problem

• Managed by– Visual progress

– Frequent demos

– Short feedback loops

– Small set of stakeholders

– Regular meetings reviewing blockers/overall status

• Portfolio Management

Team 7-Nov 21-Nov 5-Dec 19-Dec 2-Jan

Finance Billing Billing Billing Billing Invoice

Core Data Oracle Upgrade Oracle Upgrade Test Data TBD TBD

User Engagement A/B Awards A/B Awards A/B Register A/B Register A/B Register

Fulfilment Electronic Tag Electronic Tag Electronic Tag Electronic Tag Tag Cleanup

Device R&D Android Wear Spike Android Wear Spike Apple Watch Spike Apple Watch Spike TBD

• Scaled Agile

Framework

• Controversial Agile

Methodology

– Portfolio Management

– Everything else…

• Primary Material

– Overcoming the Five Dysfunctions of a Team: A Field

Guide for Leaders, Managers, and Facilitators,

Patrick Lencioni

• Additional Recommendations

– Behind Closed Doors, Rothman & Derby

– Leadership & Self-Deception, Arbinger Institute

– Good To Great, Jim Collins

• Spotify (Operations)

• Group Health (Web Dev)

• Microsoft (IT Division)

• Xbox Kinect

• Constant Contact

• BBC

• Globo

• Petrobras

• Lonely Planet

• IPC Media

• Motley Fool

• Corbis

• Stormpath

• Tantalus

• Ultimate Software

• Simplifying Work

– http://www.ted.com/talks/yves_morieux_as_work_gets_more_complex_6_rules_t

o_simplify

• Happy Secret to Better Work

– https://www.ted.com/talks/shawn_achor_the_happy_secret_to_better_work

• MIT On Org Design, Dynamics, Culture

– https://www.youtube.com/watch?v=AAkJqzJYHJc

• Spotify Operations, Flat Org Design (2,000 people!)

– http://www.infoq.com/articles/kanban-operations-spotify

START THE

CONVERSATION!

Thanks for your time!

Q & A