The document discusses organizational design for effective software development. It outlines problems with traditional matrix organizations and introduces team-based structures that can address these. Specifically, it advocates for cross-functional teams that are responsible for entire projects or products, rather than individuals being assigned to multiple projects. This allows teams to be accountable for delivery and improves collaboration, quality and outcomes.
2. • Faith Cooley
– Software Development Management Coach
– Lean Six Sigma Black Belt 10 years
– PMP 8 years
– CSM, CSPO, ITIL
– Last 8 Years: Software Development
3. • Problems with Matrix Organizations
• Intro to Team Based Organizations
– Address Matrix Org Problems
• Move toward team based organization
• What companies use this structure?
4. Feels like this…
Steve
(dev)
Bob
(leader)
Mitch
(design)
Harry
(finance)
Jane
(PM)
But really is this…
And it grows into…
5. Manage the function,
not the project
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
6. Jane
•Web + PM
Bob
Leader
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…
8. 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
To get anything done…
shadow organization!
CFO
Director,
Operations
Operations
Cross-
Functional
Matrix Team
9. 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
10. • 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
11. Learned Helplessness
• 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.
Risk Income Management
• 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!
12.
13. • Teams responsible & accountable for
delivery
• Everyone is a mentor
• All “managers” are working managers
14. 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
15. • 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
17. • Reviews
• Hiring/Firing/Career Management
• Functional Execution Quality
– Good code? Good tests? Good reqs?
• Budget
• Methodology
18. • 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!
19. 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
20. • Your team is expensive!
• Top 5
– Lack of commitment
– Fear of conflict
– Absence of trust
– Avoidance of accountability
– Inattention to results
21. • 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
22. • 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
24. • 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
25. • Servant leaders focus on what problems to
solve and why
• Teams solve the problem
26. • Managed by
– Visual progress
– Frequent demos
– Short feedback loops
– Small set of stakeholders
– Regular meetings reviewing blockers/overall
status
• Portfolio Management
27. 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
29. • 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
30. • 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
31. • 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
Trends I am seeing the software development industry that are topical and applicable to software development and other industries as well.
And as the company grows, this is the structure that tends to form. You have the vertical silos that everyone complains about but that exists over and over again.
The silo structure works well when the company is small. It relies on people knowing each other and it relies on relationships that have been built. That’s a bummer if you are new to the organization or are out of favour.
When you hit medium size, when people don’t know all their colleagues you start seeing challenges with this organization. This organization structure fails miserably when it comes to problem resolution.
People then start using the shadow organization.
(what is more important functional goals or delivery goals?)
The silos then start forming goals.
The goals frequently focus around the silo and not delivery.
The goals across the organization can be contradictory and/or confusing
Sometimes there are personal incentives tied to these goals. You get comments like don’t make me miss my numbers.
And your individual contributors, your talented resources start getting pulled in many directions.
People work on many projects – context switching burden 20% project
Many handoffs
Opportunities for miscommunication!
Competing priorities
No incentive to cooperate.
When people don’t cooperate we need more systems, more processes, more structure.
Complexity & additional work burden placed on employees
The option here is to look at a team oriented organization.
As you can see, Bob is still at the top.
Each team has a lead or combination of two people doing the lead role.
The team has a full cadre of people needed to produce the product. If consulting advice is needed other teams are asked.
Problem resolution handled in team using help from other teams if necessary
Work is accounted for on Kanban board
People are incented to collaborate
Goals are delivery based and clearly visible in the organization
Standards and expectations are known
Lego an interesting approach to cooperation. If you need help you ask for it. If your project fails and you didn’t ask for help you get to find a new job.
So using the team based function how do we address the following?
Reviews are done using a 360 review process. You are reviewed by your customer, your peers and you management. That way you get a composite of your performance and you can no longer say your boss hates you.
The team lead or leads manages the hiring with team input. The leads along with their HR team member do the firing. Career management is done thru mentoring
Execution quality is handled by dev standards, and code reviews lead by the dev manager
Budget is handled by the team leads.
How many people here have worked for a boss you didn’t respect?
How many of you have received a really one sided review?
The team lead or leads manages the hiring with team input. The leads along with their HR team member do the firing. Career management is done thru mentoring
Execution quality is handled by dev standards, and code reviews
The advantage here is that your managers are now doing the work. The are understanding the actual impediments to folks getting their work done. Your managers skills will be updated.
As with any change project there are people that will lead the change, people that will follow the change and people the just need to get out of the way of change.
Leadership meets on a regular basis
Reviews blockers and overall status