Agile Development Teams: Scope and Scale with Mike Cohn

OnSoftware
24 Oct 200710:54

Summary

TLDRIn this episode of 'Software Conversations', the discussion revolves around scaling agile methodologies to large teams, contrary to the common perception that agile only works for small teams. The speaker emphasizes that agile can be effectively applied to large projects with hundreds of people by employing a hierarchical structure with a 'chief product owner' at the top, cascading down to various product owners for different components. The episode also touches on the importance of cross-functional communication and the challenges of estimating and planning in agile projects, advocating for relative sizing and velocity-based predictions for project duration.

Takeaways

  • ๐Ÿ˜€ Agile methodologies can be applied to large teams and projects, not just small teams as often depicted in literature.
  • ๐Ÿ” Large-scale agile projects may involve multiple teams, potentially hundreds, working in coordination rather than a single massive team.
  • ๐Ÿ‘ค The role of a 'chief product owner' or equivalent is crucial for maintaining the overall vision and guiding the project at a high level.
  • ๐Ÿข In large enterprises, agile can be scaled by having a hierarchy of product owners for different components of the project, similar to how Microsoft might manage different parts of Office suite.
  • ๐Ÿ”„ Agile scaling involves both vertical alignment of teams and horizontal communication across teams to prevent silos and ensure knowledge sharing.
  • ๐Ÿ’ฌ Encouraging communication among large groups, such as 400 programmers, can be achieved through formal and informal means, tailored to the project.
  • ๐Ÿ“ˆ Agile estimating involves relative sizing of tasks compared to one another rather than absolute time estimates, using units like story points.
  • ๐Ÿš€ Agile planning starts with estimating the size of tasks and then considering the team's pace to derive a duration, similar to estimating a real-world trip.
  • ๐Ÿ”ข Teams use abstract units for estimating (e.g., story points, gummy bears, Cheez-Its) to establish relative sizes of tasks within a project.
  • ๐Ÿ”ฎ For projects that require upfront estimates without the benefit of an existing team's velocity, more complex techniques are needed, which may be detailed in the books mentioned.
  • ๐ŸŒ The script suggests that scaling agile to very large projects is challenging but possible with the right structures, like chief product owners and cross-functional teaming.

Q & A

  • What is the common misconception about agile teams according to the transcript?

    -The common misconception is that agile teams are only effective with small teams, like the original XP team at Chrysler, and that larger teams of 50-200 people in Fortune 500 companies are a precursor to failure.

  • How does the speaker describe the scaling of agile methodologies to larger teams?

    -The speaker explains that agile scales up well, with large projects involving multiple teams that coordinate their work rather than a single large team. The concept involves a hierarchy that understands the vision, with a 'chief product owner' at the top passing the vision down to sub-teams.

  • What is the role of a 'chief product owner' in a large agile project?

    -A 'chief product owner' has the overall vision for the project and is responsible for passing that vision down to sub-teams, ensuring alignment and coordination across the various teams working on different aspects of the project.

  • How does the speaker use Microsoft Office as an example to illustrate the agile scaling process?

    -The speaker uses Microsoft Office as an example to show how a visionary might have a vision for the entire suite, with 'product owners' for individual applications like PowerPoint, Excel, and Word, each with their own vision for their respective products.

  • What is the importance of cross-functional communication in large agile teams?

    -Cross-functional communication is crucial for ensuring that different teams, such as client-side and server-side developers, are aware of each other's work and can coordinate effectively, avoiding silos and promoting standard practices across the board.

  • What does the speaker suggest as a method for estimating software projects in an agile context?

    -The speaker suggests estimating software projects by first estimating the size of the task and then considering the pace at which the task can be completed, similar to estimating real-world activities like driving a certain distance at a certain speed.

  • How should agile teams estimate the size of tasks in relation to each other?

    -Agile teams should use relative estimates to determine the size of tasks in comparison to others, using abstract units that are meaningful in terms of relative size but not specific time units.

  • What is the purpose of using abstract units like 'Cheez-Its' or 'gummy bears' in agile estimation?

    -These abstract units serve as a way to provide relative estimates that are easy to understand and compare, without being tied to specific time units, which can be misleading or difficult to estimate accurately at the outset of a project.

  • How can teams gain predictability in their agile projects after starting work?

    -Teams can gain predictability by observing their pace of work after starting the project, using the actual progress made to estimate how long the remaining work will take, thus providing a more accurate forecast of project duration.

  • What is the challenge when estimating before the team has started working on a project?

    -Estimating before the team has started working on a project is challenging because there is less information about the team's pace and capabilities, which requires more complex estimation techniques that may be detailed in the speaker's book.

  • What are the three things that teams need from the company according to the first article on scrum?

    -According to the first article on scrum, teams need money, moral support, and guidance from the company to be successful in their agile processes.

Outlines

00:00

๐Ÿ˜€ Agile Teams in Large-Scale Projects

The first paragraph discusses the scalability of agile methodologies in large projects, contrasting the traditional small agile teams with the reality of large corporations that may have hundreds of people working on a single system. It emphasizes the importance of maintaining agility in large teams by breaking them down into smaller, more manageable units, each with a clear vision and purpose. The speaker also touches on the concept of a 'chief product owner' who is responsible for the overall vision of the project and how this vision is cascaded down to individual teams working on different components of the project, such as different applications within a suite like Microsoft Office.

05:00

๐Ÿ˜€ Scaling Agile: Communication and Coordination

The second paragraph delves into the practical aspects of scaling agile methodologies to accommodate large teams, such as a 700-person project. It highlights the challenges of facilitating communication among large groups of developers and suggests both formal and informal methods to encourage interaction. The speaker uses the analogy of organizing a conference to illustrate the complexity of managing such large teams. The paragraph also discusses the importance of having cross-functional teams that work in alignment with the overall project vision, ensuring that all team members are aware of and contribute to the project's goals.

10:00

๐Ÿ˜€ Agile Estimating and Planning

The final paragraph shifts the focus to agile estimating and planning. It emphasizes the importance of relative estimation over absolute time estimates, using everyday examples like driving a car to illustrate the concept. The speaker suggests that teams should estimate the size of tasks relative to one another and then use their velocity, or pace of work, to predict how long the project will take. This approach allows for more flexibility and adaptability in project planning, as it accounts for the variability inherent in software development. The paragraph concludes with a brief mention of the challenges of estimating before the project has begun and hints at more advanced techniques for such situations, which are explored in the speaker's books.

Mindmap

Keywords

๐Ÿ’กAgile Teams

Agile Teams refer to groups that follow the Agile methodology, an iterative approach to project management and product development that emphasizes flexibility, collaboration, and customer satisfaction. In the script, the discussion revolves around the scalability of Agile Teams, questioning whether the methodology can be effectively applied to larger teams within Fortune 500 companies, as opposed to the smaller teams often described in Agile literature.

๐Ÿ’กExtreme Programming (XP)

Extreme Programming (XP) is one of the most popular Agile frameworks, which was originally developed for small teams. The script references the original XP team at Chrysler to illustrate the traditional Agile approach that was initially designed for smaller groups, raising the question of how well these principles can be adapted to larger teams.

๐Ÿ’กFortune 500 Companies

Fortune 500 Companies are a list of the 500 largest companies in the U.S., ranked by total revenue. The script uses these companies as an example to discuss the challenges of implementing Agile methodologies in large organizations with potentially hundreds of team members, contrasting with the smaller team sizes typically associated with Agile practices.

๐Ÿ’กScaling Agile

Scaling Agile refers to the process of applying Agile methodologies to larger projects and organizations. The script discusses how Agile can be scaled up to accommodate larger teams, such as a 700-person project, by organizing them into smaller, more manageable units that can coordinate their work effectively.

๐Ÿ’กChief Product Owner

A Chief Product Owner is a role in Agile project management, responsible for maintaining the product vision and ensuring that the product meets customer needs. The script mentions this role in the context of scaling Agile to large projects, where a Chief Product Owner would oversee the vision and delegate it to sub-teams or product owners for different components of the project.

๐Ÿ’กUser Stories

User Stories are a technique used in Agile development to capture a description of a feature from an end-user perspective. They are a key part of Agile planning and are discussed in the script as a component of Agile estimating and planning, where they help teams understand and prioritize the work to be done.

๐Ÿ’กEstimating

Estimating in the context of Agile development refers to the process of predicting the effort and time required to complete a task or feature. The script discusses the importance of estimating in Agile projects and how teams should approach it by comparing the size and complexity of tasks rather than focusing on exact time frames.

๐Ÿ’กProduct Backlog

A Product Backlog is a prioritized list of all the work items (features, requirements, improvements, etc.) for a product, as seen by the Product Owner. In the script, it is mentioned as the list of features that Agile teams estimate in size, helping them to plan and prioritize their work.

๐Ÿ’กScrum

Scrum is an Agile framework for managing and completing complex projects. The script references the first article on Scrum from 1986, highlighting its principles that emphasize team autonomy, support, and guidance, which are crucial for scaling Agile to larger projects.

๐Ÿ’กVertically Aligned Teams

Vertically Aligned Teams in Agile development are teams that are organized around specific features or components of a product, as opposed to functional silos. The script discusses the importance of having such teams to ensure that work is coordinated effectively across different areas of a large project.

๐Ÿ’กOrthogonal Teaming

Orthogonal Teaming is a concept where teams are organized in a way that allows for cross-functional communication and collaboration. The script mentions this as a strategy to encourage communication among large groups of developers, such as the 400 programmers example, to ensure that they are working in standard ways and sharing knowledge.

Highlights

Agile teams are often associated with small teams, but the concept can scale to larger teams within large organizations.

Large companies like Anderson, Accenture, or Ernst & Young can implement agile methodologies with teams of 50-200 members.

Agile methodologies can be scaled up for large projects with the help of a Chief Product Owner and a hierarchical vision passing.

The concept of scaling agile involves coordinating work across multiple teams rather than a single large team.

Agile scaling can be achieved through vertical alignment and crosscutting dimensions across teams.

The importance of establishing a vision and passing it down through sub-teams in large-scale agile projects.

Use of the term 'Chief Product Owner' for overseeing large-scale agile projects.

The example of Microsoft Office to illustrate the hierarchical structure of product owners in a large agile project.

Agile teams require money, moral support, and guidance from the company to function effectively.

The role of wine product owners in owning specific components of a product within a large agile project.

The need for communication and coordination among teams, even in large-scale agile projects.

The challenge of encouraging communication among large groups of developers in agile projects.

The use of scrum as an agile process and its emphasis on the needs of teams for money, moral support, and guidance.

Agile estimating involves estimating the size of tasks and then estimating the duration based on pace.

The importance of relative estimating in agile projects, comparing the size of tasks to each other rather than absolute time units.

The process of using abstract units for estimating in agile projects, such as 'gummy bears' or 'Cheez-Its'.

The method of using the pace of work done to predict the duration of a project once the team has started working.

The difficulty of estimating before a team has started working on a project and the need for more complex methods.

Transcripts

play00:01

[Music]

play00:02

welcome to on

play00:07

software conversations with thought

play00:09

leaders in software

play00:19

development brought to you by

play00:31

a lot of times switching taxs just a

play00:33

little bit you mentioned you know coming

play00:35

into your agile team MH uh a lot of

play00:37

times when you hear people talking about

play00:40

agile teams when you hear people talking

play00:41

about like for example the original XP

play00:43

team at at Chrysler and so forth uh

play00:46

they're talking about relatively small

play00:47

teams right right and then you walk into

play00:50

some of these Fortune 500 companies

play00:52

where they've got like a Anderson or an

play00:54

Accenture or you know ernston young or

play00:57

whatnot and they have these 50 100

play01:00

200 man teams working on some large

play01:03

system right um is that just a precursor

play01:07

to failure does an agile team have to be

play01:10

less than a dozen people less than a

play01:11

half dozen people you know how well does

play01:14

does this notion of agility in large

play01:17

project space user stories in large

play01:19

project space how well do these go

play01:20

together right well there was a real

play01:23

danger in a lot of the agile books it's

play01:25

very tempting to write this way to

play01:27

describe agile for a loan team on a

play01:29

desert Island right our our little seven

play01:31

or eight person team on a desert island

play01:33

and it's it's a great way to explain

play01:34

some things right you know here's how it

play01:36

works but then you have to make sure

play01:38

that if you're if you're writing a book

play01:39

or an article on agile that you explain

play01:41

well that's not all there is here's the

play01:42

other things that have to happen right

play01:44

and one of the things that agile authors

play01:46

the very beginning did the earliest

play01:48

agile books that 99 to 2001 or so books

play01:51

did was really stress that hey here's

play01:54

the context I've used this on and they

play01:57

were small projects and now somebody

play01:59

these days comes along reads that book

play02:01

and says oh it's only useful on small

play02:02

projects right and no it was just more

play02:05

the uh the honesty of the authors's

play02:06

writing a book saying hey I've used this

play02:08

on five and 10 and 20 person teams no

play02:10

bigger right go try it if you want and

play02:12

let me know how it goes that was the

play02:13

attitude at the time and we've since

play02:15

learned that agile scales up very well I

play02:17

was uh with a company last week that is

play02:20

uh embarking on a 700 person agile

play02:22

project now they're not going to have

play02:23

700 people in one room one team that

play02:26

might be 100 teams it might be 80 teams

play02:28

but it'll be a lot of teams it have to

play02:30

coordinate their work rather than one

play02:31

700 person team so how do you scale it

play02:34

up I mean just in a nutshell how do you

play02:35

take a 700 person project and run it as

play02:40

a 100 teams of seven without having five

play02:44

levels of management in between the guy

play02:46

in charge of the whole thing and the

play02:48

individual programmers we're not going

play02:49

to you know I'm going to start out with

play02:51

the with the with the Assumption there

play02:53

uh the guy in charge of the whole thing

play02:54

right there really is no the guy in

play02:56

charge of the whole the whole thing

play02:58

there is probably somebody with the

play02:59

overall Vision somebody establishing a

play03:01

vision for what we need um I like the

play03:03

scrum terms for most of these things i'

play03:05

would be somebody called a product owner

play03:06

on a big project like that we'd probably

play03:08

call them a chief product owner

play03:09

different companies all have different

play03:10

names for this um I just like Chief

play03:12

product owner is the most generic of

play03:14

these um that person has the overall

play03:15

Vision what are we trying to establish

play03:17

they're going to have to pass that

play03:19

Vision down to uh to teams uh sub teams

play03:22

in ways and they'll do that so they'll

play03:23

be typically a hierarchy that

play03:25

understands the vision there um let's

play03:27

just use Microsoft Office as a wonderful

play03:28

example because it's product everybody

play03:31

understands so we might have a Visionary

play03:32

that understands where are we going with

play03:34

with office and then underneath there

play03:36

there might be what we'll call a wine

play03:37

product owner wine product owner might

play03:39

own PowerPoint another wine product

play03:41

owner would own Excel another for word

play03:44

something like that those people then

play03:46

have a vision for what needs to go in

play03:48

those products they'll have product

play03:49

owners underneath them so these people

play03:51

are not running the project they're just

play03:52

kind of the the person with the vision

play03:54

we're going to scale that up by having

play03:55

teams Associated down those same

play03:57

hierarchies um but the teams coordinate

play04:00

their work in ways that they determine

play04:02

uh I really like the uh the very first

play04:04

article on scrum came out in 1986 scrum

play04:06

is one of the agile processes and it

play04:08

talks about that teams need three things

play04:10

from the company it said they need money

play04:12

moral support and guidance I need money

play04:15

need to get paid things like that need

play04:17

moral support you know encouragement

play04:18

when things are going poorly things like

play04:20

that um and we need guidance so that's

play04:22

what these product owners are there to

play04:23

do provide guidance well I want this

play04:25

feature or I prefer this over that that

play04:27

type of setup we scale the project up by

play04:30

then uh setting up different teams

play04:32

giving them these guidance say going

play04:33

after these these features but agile

play04:36

teams on their own are not enough I like

play04:38

to think of the agile teams as being

play04:40

vertically aligned I want to take some

play04:43

kind of crosscutting Dimensions across

play04:45

those teams I don't want to have a 700

play04:47

person team with let's say 400

play04:48

programmers and the programmers never

play04:50

talk so I want to set up some orthogonal

play04:52

teaming structures across there and say

play04:54

hey 400 programmers go talk sometime

play04:56

right and that'll be some responsibility

play04:58

for the wine manager maybe there's a a

play05:00

technology director who runs that 400

play05:02

person group make sure they're talking

play05:04

doing things in standard ways it's

play05:06

almost like organizing a small

play05:07

conference with 400 programmers yeah

play05:09

yeah I mean that's got that's got to be

play05:11

a fairly intimidating idea of trying to

play05:14

get 400 people to talk to one another

play05:17

you know about whatever about you know

play05:21

language or or feature whatnot I mean

play05:24

how do you encourage that kind of

play05:25

communication uh well it can be it can

play05:27

be established formally it can be done

play05:29

in formally however is appropriate for

play05:31

the project right I mean we're using the

play05:32

700 example because that's where I

play05:34

happened to be last week right more

play05:36

realistically would be be probably

play05:38

talking about an agile team that's

play05:39

scaling up in the 1 to 3 400 range I

play05:42

those are much more common and you might

play05:43

be talking 50 60 70 programmers um even

play05:46

them they may split into two categories

play05:48

real easily right we've got client side

play05:50

server side so I don't necessarily have

play05:52

to have all 400 talking to each other

play05:53

right okay so it's you know it's the

play05:55

typical challenges that faced a typical

play05:58

development director VP development with

play06:00

a a medium to large group so you

play06:02

mentioned that you've done two books and

play06:03

we've been talking about user stories uh

play06:06

estimating and planning right once I've

play06:08

got my stories in place I mean this has

play06:09

always to me been the hardest part of

play06:11

any programming job you know your boss

play06:13

comes to you and says we here's here's

play06:16

what you need to do how long will it

play06:17

take you um you know just in a nutshell

play06:21

right give me give me like the the two

play06:23

sentence uh story around agile

play06:25

estimating and planning how do you do it

play06:29

in two sentences two sentences no more

play06:31

than that so I don't have to buy the

play06:32

book I'm teasing I'm

play06:33

teasing uh two sentences I would say

play06:36

that uh I don't if I have exactly two

play06:37

but the the idea for me is to estimate

play06:41

software projects in the way that we

play06:43

estimate real world activities and to do

play06:45

that the best example of that is that we

play06:47

we estimate the size of something and

play06:50

then we think about how fast we can do

play06:52

that thing and then we convert the we

play06:54

can put those two together to come up

play06:55

with a duration so let's suppose that we

play06:57

were to drive from here in San Jose

play06:59

today and we wanted to drive to Austin

play07:02

Texas well we might think about that if

play07:04

we had to estimate that drive we'd kind

play07:06

of visualize a map think about that I

play07:08

have no idea how far that is I'm just

play07:09

going to make up some easy math in my

play07:11

head let's say it's 1,200 miles right we

play07:13

would think about it being 12200 miles

play07:14

then we'd think about our Pace say well

play07:17

I bet I go 60 M an hour on average right

play07:20

I got to stop every now and then I'm

play07:21

also going to be going 70 during those

play07:22

empty parts of Texas or 80 or 90 well

play07:25

I'm not going to say that on tape I'm

play07:26

going to go 60 maybe 70 and uh I'm going

play07:28

to divide the 12 1,200 mil then by the

play07:30

60 M hour come up with around 20 hours

play07:33

as my estimate that's a real world best

play07:35

practice way to estimate estimate the

play07:37

size of something and drive the duration

play07:39

so when uh I want teams to estimate on

play07:41

on software projects I don't want them

play07:43

to go to the first principal question of

play07:45

how long will this take right how long

play07:48

will it take to add tables to a word

play07:50

processor again for example um I want to

play07:52

think about how big it is right what is

play07:54

the size of this task compared to others

play07:57

right and so for example it's estimated

play07:59

a word processor right now something I

play08:00

don't think either of us have worked on

play08:02

so if uh you know if we think about uh

play08:04

putting bold text into a word processor

play08:07

I don't know how long that'll take but I

play08:09

bet it'll take the same amount of time

play08:10

as italicizing text does inside of a

play08:13

word processor so I'd put that same type

play08:15

of number on there so I want to put

play08:17

these relative estimates on there rather

play08:19

than absolute estimates that that mean a

play08:21

Time unit so we go through a uh the

play08:23

entire list of features to be added uh

play08:25

call that a product backlog typically on

play08:27

an agile project we' estimate the size

play08:30

of things so now I'd have all these

play08:31

relatively uh valid but somewhat

play08:34

meaningless numbers know this one's a

play08:36

five this one's a 20 all that means is

play08:38

it takes four times longer and then we'd

play08:40

get started so these aren't necessarily

play08:42

an hours they're just

play08:43

abstracts absolutely absolutely they

play08:46

I've seen teams estimate them in what

play08:48

they they'll call them gummy bears I've

play08:49

seen teams call them uh Cheez-Its uh

play08:52

just you know they they called it Cheez

play08:54

itss based on like the number of boxes

play08:56

of Cheez itss that they thought one of

play08:58

their main developers would eat in a

play08:59

particular day uh or while doing that

play09:01

feature so they'll be meaningless units

play09:04

but they're they're relatively valid the

play09:06

20 is about four times as big as a five

play09:08

a one is a fifth of a five and teams

play09:10

will add these up and say well we have a

play09:12

thousand points to do or a thousand

play09:14

cheit to do I no idea how long that's

play09:16

going to take you but then we get

play09:18

started on the project we run the

play09:19

project for a couple of weeks see how

play09:22

far we've got done and then we can take

play09:24

that pace that we're getting done and

play09:25

divide it into the uh the total size of

play09:27

the project starts to give us some

play09:29

predict ability that's that's far more

play09:31

than two senses but that's a simple

play09:33

version of it the where it gets harder

play09:36

is where teams have to estimate before

play09:38

they've started right there are times if

play09:40

we're doing a contract for example I

play09:42

can't let the team get started for two

play09:43

weeks right I have to estimate before I

play09:45

do that that's you're going to have to

play09:46

buy the book for I can tell you but

play09:48

that'll be that'll be that'll be harder

play09:49

to fit into two te that's the point

play09:51

that's the teas there are ways to do

play09:52

that so this is not valid only when you

play09:54

have an existing team that's already run

play09:56

a little bit um there are ways to do it

play09:59

uh even without that but they're they're

play10:00

harder to

play10:01

explain for more information visit onp

play10:05

podcast weekly.com And subscribe to all

play10:08

our

play10:10

podcasts brought to you by the

play10:12

publishing imprints and information

play10:13

portal of Pearson Education

play10:18

[Music]

play10:35

[Music]

Rate This
โ˜…
โ˜…
โ˜…
โ˜…
โ˜…

5.0 / 5 (0 votes)

Related Tags
Agile ScalingTeam DynamicsEstimation StrategiesSoftware DevelopmentProject ManagementUser StoriesLarge TeamsProduct BacklogScrum ProcessVisionary Leadership