organizational design for effective software development

33
Organizational Design for Effective Software Development Faith Cooley, PMP Lean Six Sigma Black Belt

Upload: dev9com

Post on 08-Jul-2015

470 views

Category:

Software


1 download

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

Page 1: Organizational Design for Effective Software Development

Organizational Design

for Effective Software

Development

Faith Cooley, PMP

Lean Six Sigma Black Belt

Page 2: Organizational Design for Effective Software Development

• Faith Cooley

– Software Development Management Coach

– Lean Six Sigma Black Belt 10 years

– PMP 8 years

– CSM, CSPO, ITIL

– Last 8 Years: Software Development

Page 3: Organizational Design for Effective 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?

Page 4: Organizational Design for Effective Software Development

Feels like this…

Bob (leader)

Steve (dev)

Mitch (design)

Harry (finance)

Jane (PM)

But really is this…

And it grows into…

Page 5: Organizational Design for Effective Software Development

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

Page 6: Organizational Design for Effective Software Development

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…

Page 7: Organizational Design for Effective Software Development

Problems with the Matrix

Page 8: Organizational Design for Effective Software Development

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!

Page 9: Organizational Design for Effective Software Development

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

Page 10: Organizational Design for Effective Software Development

• 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

Page 11: Organizational Design for Effective Software Development

• 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

Page 12: Organizational Design for Effective Software Development
Page 13: Organizational Design for Effective Software Development

• Teams responsible & accountable for

delivery

• Everyone is a mentor

• All “managers” are working managers

Page 14: Organizational Design for Effective Software Development

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

Page 15: Organizational Design for Effective Software Development

• 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

Page 16: Organizational Design for Effective Software Development

Key to Success

Reward cooperation!

Page 17: Organizational Design for Effective Software Development

• Reviews

• Hiring/Firing/Career Management

• Functional Execution Quality

– Good code? Good tests? Good reqs?

• Budget

• Methodology

Page 18: Organizational Design for Effective Software Development

• 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!

Page 19: Organizational Design for Effective Software Development

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

Page 20: Organizational Design for Effective Software Development

• Your team is expensive!

• Top 5

– Lack of commitment

– Fear of conflict

– Absence of trust

– Avoidance of accountability

– Inattention to results

Page 21: Organizational Design for Effective Software Development

• 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

Page 22: Organizational Design for Effective Software Development

• 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

Page 23: Organizational Design for Effective Software Development

BACKLOG SELECTED DONE

DEVELOPMENT

ONGOING DONE

TESTING

ONGOING DONEDEPLOY

T1

T2

T2

T6T7

S1

S2

S6S7

3 2 2 1

Page 24: Organizational Design for Effective Software Development

• 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

Page 25: Organizational Design for Effective Software Development

• Servant leaders focus on what problems to

solve and why

• Teams solve the problem

Page 26: Organizational Design for Effective Software Development

• Managed by– Visual progress

– Frequent demos

– Short feedback loops

– Small set of stakeholders

– Regular meetings reviewing blockers/overall status

• Portfolio Management

Page 27: Organizational Design for Effective Software Development

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

Page 28: Organizational Design for Effective Software Development

• Scaled Agile

Framework

• Controversial Agile

Methodology

– Portfolio Management

– Everything else…

Page 29: Organizational Design for Effective Software Development

• 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

Page 30: Organizational Design for Effective Software Development

• 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

Page 31: Organizational Design for Effective Software Development

• 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

Page 32: Organizational Design for Effective Software Development

START THE

CONVERSATION!

Thanks for your time!

Page 33: Organizational Design for Effective Software Development

Q & A