📺 Develpreneur YouTube Episode

Video + transcript

Kanban Vs. Scrum - Part 1

2022-12-08 •Youtube

Detailed Notes

This is part one of a short series where we compare Kanban and Scrum. These popular approaches to Agile development have their own strengths and weakneses. While you can combine these two approaches, there is reasons to focus on one or the other. We discuss all of these ideas in this presentation.

This comes from the Develpreneur.com mentor series of presentations.

Transcript Text
thank you
[Music]
okay so we mentioned way back uh I think
it was last year we were looking at some
of the topics we wanted to cover in the
you know months and and year ahead and
one of them that we had somehow glossed
over somewhere along the way was talk
about Sprint versus Sprints versus
kanban and you know in the overarching
OR overall agile World there are these
different approaches and sometimes
people don't realize that recognize that
there are differences that they are two
different things because the um
basically the Sprint Bond combo approach
is is definitely not uncommon
but even if you look at like a jira or
something like that that is a you know
that has a an agile Focus to it you can
do uh Sprints versus uh kanban boards
you can change stuff around a little bit
and so you can you can have those two
approaches separate even though you know
maybe to the uh the uninitiated they may
look roughly the same but there are
definitely some some differences to the
two
I wanted to get into that a little bit
and talk about it that there are some
differences to the approaches and they
may one may be much more suitable to
what you're doing than others uh
particularly because it deals with the
you know some of the differences are the
types of projects that you're working
with the types of uh changes and such
you may expect
so I'm going to just step back take a
step back first and talk a little bit
about agile just to you know reset the
table there and we'll talk about scrums
and Sprints really uh the scrum approach
the kanban approach pros and cons for
those scrums and Sprints uh pros and
cons for kanbans and then you know sort
of wrap up and where does it make sense
to use one or the other
so first off let's talk about some agile
or agile it depends on where you're
coming from so the agile the agile
approach to Software
is really starts with the agile
Manifesto which is out at
agilemanifesto.org
and they've got a half or a dozen points
of
uh how to build software
and this is based uh now almost 25 years
ago
some really uh experienced veteran
software
uh creators got together and said okay
let's take a look at what we've done
what have we learned in the last you
know a lot of them you know 15 20 30
years of building software
and they laid out the it created the
agile Manifesto
which is really worth looking at if you
want to improve your software
development in general is just look at
some of the things that they recognize
that they recommend and I think you'll
find you know maybe where there may be
some weaknesses or some areas where you
can strengthen your approaches and it's
I think most people it gets
misunderstood
because a lot of people outside of or
that don't really understand agile are
just like oh well agile is just software
without we don't document we just like
start coding
which is a complete wrong way to do
stuff and is not at all what the agile
Manifesto is about it's not all what
agile software development is about
the key to Agile is really
that first point that they have the
highest priority is satisfy the customer
and then they say we're going to do that
through early and continuous delivery of
valuable software which is really the
key to Agile is getting something in
front of a user that is useful to allow
them to get you know make sure you get
some feedback
it doesn't have to be fully functional
but you do want to work towards that so
that you can get feedback sooner rather
than later and this is something that we
could spend an entire you know actually
probably do several presentations just
on
how to do Agile software and how to
tackle these dozen points
we're not going to do that
um just focus on you know certain things
you want to keep in mind as we're moving
forward talking about uh kanbans and
Sprints and scrums is
that
agile is about is focused on customer
and delivery that make sure the customer
is happy that they're satisfied and make
sure that you deliver software because
it doesn't matter how much they like
your software if you never give it to
them then they're not going to be as
happy about it that's like you know if
you go order food and like wow this is
the best food ever and they never bring
it to you then your experience is not
going to be pleasant
these both agile often it focuses on or
one of the key attributes is that we
will iterate over as we move towards
software development and we will make
adjustments as we go we're not going to
sit there and try to like get something
a hundred percent before we move on
we're going to build it out to a certain
level and then maybe you know maybe
revisit it
but uh you know and most importantly if
the customer comes back and has feedback
we're going to be able to adopt that
change in and we will make you know
we'll iterate on it or refactor as
needed
and then
agile tends to be more focused on team
flexibility and getting things done
rather than worrying about
um like titles and and Specialties in
that and it's it's tends to be more
bandwidth Focus it's like who is
available on the team that can maybe
work on this so that we can keep things
moving forward
as opposed to having a you know the
whatever you know like the QA specialist
that sits there and twiddles their
thumbs for a month while everybody else
is writing code before there's actually
something available for the QA
specialist to test or a designer that
you know designs a bunch of stuff and
then just sits around and does nothing
for a while because they're they're
really their designing is done
so those are just some of the highlights
of agile to keep in mind as we talk
through these
so let's talk about scrum first we'll
get into that
an overview of scrum so what is it well
there are really three
uh three roles in a in a scrum team
there's the product owner the scrum
master and the development team
the product owner is the one that really
drives the features and the priorities
they're the one that says hey this needs
to do
these three things and these are the
features that are most important these
are the need to halves uh we must have
these for this to be a useful product
these are the things that'd be nice to
have or you know that we want and then
these are things like yeah it'd be a
bonus it's like icing on the cake nice
to haves
the scrum Master is sort of like the
coach for the team they are uh that
person and it's typically a single
person an individual is really more
focused on helping the team work better
and removing obstacles so the team can
get their job done the product owner and
the development team
so they're not really as much a doer as
a facilitator or a you know maybe even a
little bit of a manager but coach is
probably the best
term for it because they're they're
really helping the team be better do
better as a team
and then you have the development team
that they're the ones that do it they
are the implementers they create the
software they're the ones that get the
things done that the product owner says
needs to get done
no scrum you have these defined periods
of work called Sprints and then there's
a certain amount of scope of work that
goes into each of those periods so if
you've got a you know a two-week Sprint
then part of how
Sprint definition works is that you say
we're going to get these items done and
we're going to Target to get these items
done during the Sprint
and then as you wrap up as you get to
end of a Sprint each Sprint you're going
to have a review to see how we do you're
going to have retrospectives to see how
can we do this better and then ideally
and it does vary a little bit but more
often than not there's some sort of
product delivery after each of those
Cycles so that's that continuous
delivery putting something in front of a
customer and saying hey we've got some
new features give us your feedback while
we keep moving forward
that's a
sort of how scrum works
and again these are uh not again but I
guess that mentioned it these are not
hard and fast rules overall
so you may find situations where teams
you know tweak you know whether it's
scrum or combo whatever they do they
tweak it a little bit and do it a little
differently but if you go back to the
the three roles and uh some of these
things that are a part of scrum you need
to have them if you're going to do it
right you don't you know it just says
hey you need to do like a review but it
doesn't really tell you specifically
what a review looks like or how it needs
to be done
it's no kanban
which kanban boards have become very
uh iconic I guess in software in recent
years
and so the way kanban works is it is
much more about
what we see here the you know your
workboard
and there are stages it's typically just
uh like a backlog or to do
what are we working on what's you know
in progress and then done
and it's typically it's you know it's
done via these task cards or you know in
this case it's just a Post-It note but
it could be uh note cards it could be a
an electronic or digital form of uh
displaying and tracking the data
and it's it's really just a way to say
here's the things that we need to do
and are we working on them are they
still to be done are they done
and
part of the the
strength or the key to kanban is that
there is a limit to the number of items
that you have in the uh that working
column the stuff that we are working on
there are limits to that you don't just
say okay I wrote you know a line I
couldn't just throw everything in
ideally you're going to have one thing
per person you know per team member that
you're working on at a time and then you
either work it through to completion or
if something comes up you basically
would back that into the backlog have it
in a you know like a paused state so it
could be picked up by yourself or
someone later
and then you you know work on whatever
it is that you're working on currently
so part of the key to kanban is like we
don't shove everything into the in
progress we we ideally we pick it up we
work on it you know this unit of work we
work on it get it done and then we go
pick up our next thing and move it from
uh backlog to in progress to done
there is uh within combine there is a
it doesn't use Sprints but there is a an
idea of sort of like a lead time or a
time to completion where
you're looking at how you know how
quickly or How likely are we moving
through our uh our backlog
and if you think of it from
a uh like a software support kind of
uh metric or aspect it makes a lot of
sense where it's stuff that says hey as
you know we're getting you know called
bug or enhancement reports that come
into the queue
then basically we're sort of grading
ourselves our metric is how fast do we
move stuff from in the backlog through
to complete
but it doesn't have the since it doesn't
have the Sprint kind of approach that
says okay you know how much do we get
done every two weeks instead kanban is
much more about how fast do we move
items from backlog to complete on an
average basis on a regular basis
and
it's a little different because with
Sprints we talk about scrums and this is
where we'll talk about differences as we
get in these later things but
uh in that case I'd mention that you
scope out each Sprint kanban you don't
have a you don't have that commitment of
hey we're going to try to get these
things done during the Sprint you just
get to the point where it's like hey
this thing is ready for us to work on it
and then once work starts then that's
our commitment it's like hey we're going
to work on this thing at this time and
whatever else is a backlog you know it
may be the next item it may be 10 items
down the road
you're really more focused on the here
and now in kanban as opposed to with
scrum you focus in bigger chunks you
know whatever that Sprint length is
whether it's a week or six weeks you're
you're chunking along in scrum versus
kanban is much more uh task by task by
task
and so if you think about it in like
inversion control and tagging stuff
kanban is going to be more like tagging
it per task because you like you know
you go create a task and then you can
once you're done then you're gonna you
know basically merge it back into the
code base and you're off and running
it's ready to go versus scrum you're
gonna have a release where you're piling
stuff into a release and then the
release gets merged in and then you can
move forward
typically with kanban it's very
straightforward you go left to right you
go you know backlog or to do in progress
or you know work and then done or
complete however you can move stuff uh
back to the left so you may move stuff
into progress and then kick it back to
um to the the backlog you may have like
another maybe you have like ready for
testing
and so maybe moving into ready for
testing I've seen this a lot actually
it's where it's you know backlog in
progress test
and then done and it's not uncommon for
something moving to test and then
there's some feedback on it and then it
gets pushed back either to the backlog
or to the in progress depending on you
know technically I guess it goes to the
backlog and then that person may very
quickly pick it back up and and work on
it
[Music]
Transcript Segments
10.58

thank you

18.88

[Music]

27.72

okay so we mentioned way back uh I think

33

it was last year we were looking at some

34.8

of the topics we wanted to cover in the

36.54

you know months and and year ahead and

38.88

one of them that we had somehow glossed

41.219

over somewhere along the way was talk

43.14

about Sprint versus Sprints versus

45.059

kanban and you know in the overarching

48.78

OR overall agile World there are these

52.379

different approaches and sometimes

54

people don't realize that recognize that

56.399

there are differences that they are two

58.199

different things because the um

60.84

basically the Sprint Bond combo approach

63.44

is is definitely not uncommon

66.84

but even if you look at like a jira or

69.659

something like that that is a you know

72.18

that has a an agile Focus to it you can

74.939

do uh Sprints versus uh kanban boards

79.5

you can change stuff around a little bit

80.939

and so you can you can have those two

83.64

approaches separate even though you know

86.64

maybe to the uh the uninitiated they may

88.92

look roughly the same but there are

90.9

definitely some some differences to the

92.7

two

93.84

I wanted to get into that a little bit

95.579

and talk about it that there are some

99

differences to the approaches and they

101.4

may one may be much more suitable to

104.22

what you're doing than others uh

105.96

particularly because it deals with the

107.46

you know some of the differences are the

109.079

types of projects that you're working

110.7

with the types of uh changes and such

113.1

you may expect

116.7

so I'm going to just step back take a

119.46

step back first and talk a little bit

120.72

about agile just to you know reset the

122.759

table there and we'll talk about scrums

125.299

and Sprints really uh the scrum approach

128.94

the kanban approach pros and cons for

131.34

those scrums and Sprints uh pros and

133.92

cons for kanbans and then you know sort

136.8

of wrap up and where does it make sense

139.739

to use one or the other

143.34

so first off let's talk about some agile

147.06

or agile it depends on where you're

149.04

coming from so the agile the agile

151.739

approach to Software

153.78

is really starts with the agile

156.239

Manifesto which is out at

158.16

agilemanifesto.org

160.86

and they've got a half or a dozen points

164.16

of

166.2

uh how to build software

169.019

and this is based uh now almost 25 years

171.9

ago

173.519

some really uh experienced veteran

177.66

software

179.94

uh creators got together and said okay

183.54

let's take a look at what we've done

185.64

what have we learned in the last you

187.379

know a lot of them you know 15 20 30

189.36

years of building software

191.159

and they laid out the it created the

193.68

agile Manifesto

195.48

which is really worth looking at if you

198.84

want to improve your software

200.28

development in general is just look at

202.739

some of the things that they recognize

204.18

that they recommend and I think you'll

207.18

find you know maybe where there may be

209.099

some weaknesses or some areas where you

210.9

can strengthen your approaches and it's

214.62

I think most people it gets

216.84

misunderstood

218.819

because a lot of people outside of or

221.58

that don't really understand agile are

223.44

just like oh well agile is just software

226.08

without we don't document we just like

228.84

start coding

230.22

which is a complete wrong way to do

233.7

stuff and is not at all what the agile

236.519

Manifesto is about it's not all what

238.68

agile software development is about

241.62

the key to Agile is really

244.14

that first point that they have the

246.299

highest priority is satisfy the customer

249.239

and then they say we're going to do that

250.799

through early and continuous delivery of

252.72

valuable software which is really the

255.48

key to Agile is getting something in

259.019

front of a user that is useful to allow

261.84

them to get you know make sure you get

263.28

some feedback

265.68

it doesn't have to be fully functional

268.139

but you do want to work towards that so

270.84

that you can get feedback sooner rather

273.36

than later and this is something that we

275.82

could spend an entire you know actually

278.04

probably do several presentations just

280.5

on

281.46

how to do Agile software and how to

283.639

tackle these dozen points

286.919

we're not going to do that

289.38

um just focus on you know certain things

291.78

you want to keep in mind as we're moving

293.34

forward talking about uh kanbans and

295.8

Sprints and scrums is

297.6

that

299.04

agile is about is focused on customer

301.56

and delivery that make sure the customer

304.44

is happy that they're satisfied and make

306.3

sure that you deliver software because

308.28

it doesn't matter how much they like

309.84

your software if you never give it to

311.4

them then they're not going to be as

312.66

happy about it that's like you know if

314.94

you go order food and like wow this is

316.919

the best food ever and they never bring

319.56

it to you then your experience is not

321.72

going to be pleasant

324.38

these both agile often it focuses on or

328.56

one of the key attributes is that we

330.96

will iterate over as we move towards

334.08

software development and we will make

336.419

adjustments as we go we're not going to

339.06

sit there and try to like get something

340.919

a hundred percent before we move on

342.72

we're going to build it out to a certain

345.12

level and then maybe you know maybe

348.3

revisit it

350.039

but uh you know and most importantly if

352.86

the customer comes back and has feedback

354.9

we're going to be able to adopt that

356.58

change in and we will make you know

358.62

we'll iterate on it or refactor as

360.84

needed

362.94

and then

364.5

agile tends to be more focused on team

368.34

flexibility and getting things done

370.38

rather than worrying about

372.96

um like titles and and Specialties in

375.78

that and it's it's tends to be more

378.44

bandwidth Focus it's like who is

380.58

available on the team that can maybe

382.02

work on this so that we can keep things

384.06

moving forward

385.38

as opposed to having a you know the

388.319

whatever you know like the QA specialist

390.6

that sits there and twiddles their

392.28

thumbs for a month while everybody else

393.66

is writing code before there's actually

395.4

something available for the QA

396.96

specialist to test or a designer that

399.96

you know designs a bunch of stuff and

401.28

then just sits around and does nothing

402.419

for a while because they're they're

404.34

really their designing is done

407.039

so those are just some of the highlights

408.78

of agile to keep in mind as we talk

411.12

through these

413.759

so let's talk about scrum first we'll

415.979

get into that

417.06

an overview of scrum so what is it well

421.22

there are really three

424.5

uh three roles in a in a scrum team

427.199

there's the product owner the scrum

429.18

master and the development team

431.4

the product owner is the one that really

433.44

drives the features and the priorities

435.24

they're the one that says hey this needs

437.639

to do

439.02

these three things and these are the

442.56

features that are most important these

445.02

are the need to halves uh we must have

447.36

these for this to be a useful product

448.8

these are the things that'd be nice to

450.78

have or you know that we want and then

453.06

these are things like yeah it'd be a

454.38

bonus it's like icing on the cake nice

455.94

to haves

457.319

the scrum Master is sort of like the

459.24

coach for the team they are uh that

462.84

person and it's typically a single

464.52

person an individual is really more

466.86

focused on helping the team work better

468.78

and removing obstacles so the team can

471.24

get their job done the product owner and

473.039

the development team

474.419

so they're not really as much a doer as

478.02

a facilitator or a you know maybe even a

480.419

little bit of a manager but coach is

482.34

probably the best

483.78

term for it because they're they're

486.24

really helping the team be better do

489

better as a team

491.099

and then you have the development team

492.3

that they're the ones that do it they

493.979

are the implementers they create the

496.62

software they're the ones that get the

498.599

things done that the product owner says

500.699

needs to get done

503.099

no scrum you have these defined periods

505.44

of work called Sprints and then there's

507.72

a certain amount of scope of work that

510.18

goes into each of those periods so if

512.099

you've got a you know a two-week Sprint

513.979

then part of how

516.659

Sprint definition works is that you say

519.36

we're going to get these items done and

521.94

we're going to Target to get these items

523.62

done during the Sprint

525.66

and then as you wrap up as you get to

528.839

end of a Sprint each Sprint you're going

530.459

to have a review to see how we do you're

532.44

going to have retrospectives to see how

534.3

can we do this better and then ideally

537.92

and it does vary a little bit but more

541.08

often than not there's some sort of

542.519

product delivery after each of those

544.38

Cycles so that's that continuous

546.66

delivery putting something in front of a

548.58

customer and saying hey we've got some

550.14

new features give us your feedback while

552.839

we keep moving forward

555.06

that's a

556.5

sort of how scrum works

558.66

and again these are uh not again but I

562.019

guess that mentioned it these are not

564.06

hard and fast rules overall

567.54

so you may find situations where teams

569.76

you know tweak you know whether it's

571.74

scrum or combo whatever they do they

573.36

tweak it a little bit and do it a little

574.62

differently but if you go back to the

578.1

the three roles and uh some of these

582.12

things that are a part of scrum you need

586.08

to have them if you're going to do it

587.279

right you don't you know it just says

588.899

hey you need to do like a review but it

591.36

doesn't really tell you specifically

593.04

what a review looks like or how it needs

595.14

to be done

596.7

it's no kanban

598.5

which kanban boards have become very

602.279

uh iconic I guess in software in recent

606.18

years

608.04

and so the way kanban works is it is

610.74

much more about

613.32

what we see here the you know your

615

workboard

616.86

and there are stages it's typically just

620.16

uh like a backlog or to do

623.519

what are we working on what's you know

625.56

in progress and then done

627.66

and it's typically it's you know it's

630.54

done via these task cards or you know in

633.48

this case it's just a Post-It note but

635.82

it could be uh note cards it could be a

640.019

an electronic or digital form of uh

644.24

displaying and tracking the data

647.88

and it's it's really just a way to say

650.1

here's the things that we need to do

652.16

and are we working on them are they

655.56

still to be done are they done

659.1

and

660.54

part of the the

663

strength or the key to kanban is that

665.22

there is a limit to the number of items

666.899

that you have in the uh that working

669.6

column the stuff that we are working on

671.66

there are limits to that you don't just

674.519

say okay I wrote you know a line I

676.56

couldn't just throw everything in

678.959

ideally you're going to have one thing

682.62

per person you know per team member that

685.32

you're working on at a time and then you

687.72

either work it through to completion or

689.76

if something comes up you basically

691.26

would back that into the backlog have it

693.48

in a you know like a paused state so it

696

could be picked up by yourself or

697.38

someone later

698.7

and then you you know work on whatever

700.86

it is that you're working on currently

702.3

so part of the key to kanban is like we

704.519

don't shove everything into the in

706.2

progress we we ideally we pick it up we

709.44

work on it you know this unit of work we

711.48

work on it get it done and then we go

713.04

pick up our next thing and move it from

715.339

uh backlog to in progress to done

721.38

there is uh within combine there is a

728.839

it doesn't use Sprints but there is a an

733.019

idea of sort of like a lead time or a

735.18

time to completion where

737.579

you're looking at how you know how

740.1

quickly or How likely are we moving

742.019

through our uh our backlog

746.279

and if you think of it from

748.44

a uh like a software support kind of

752.76

uh metric or aspect it makes a lot of

755.76

sense where it's stuff that says hey as

757.26

you know we're getting you know called

758.64

bug or enhancement reports that come

760.68

into the queue

762.36

then basically we're sort of grading

764.639

ourselves our metric is how fast do we

767.339

move stuff from in the backlog through

769.98

to complete

771.72

but it doesn't have the since it doesn't

774.06

have the Sprint kind of approach that

776.22

says okay you know how much do we get

777.779

done every two weeks instead kanban is

781.2

much more about how fast do we move

782.94

items from backlog to complete on an

786.42

average basis on a regular basis

789.48

and

791.399

it's a little different because with

793.2

Sprints we talk about scrums and this is

795

where we'll talk about differences as we

796.62

get in these later things but

798.36

uh in that case I'd mention that you

801.18

scope out each Sprint kanban you don't

805.44

have a you don't have that commitment of

807.42

hey we're going to try to get these

808.98

things done during the Sprint you just

811.139

get to the point where it's like hey

812.16

this thing is ready for us to work on it

814.62

and then once work starts then that's

817.019

our commitment it's like hey we're going

818.16

to work on this thing at this time and

821.399

whatever else is a backlog you know it

823.98

may be the next item it may be 10 items

826.98

down the road

828.3

you're really more focused on the here

831.3

and now in kanban as opposed to with

834.54

scrum you focus in bigger chunks you

837.54

know whatever that Sprint length is

838.8

whether it's a week or six weeks you're

841.26

you're chunking along in scrum versus

843.66

kanban is much more uh task by task by

846.779

task

848.279

and so if you think about it in like

851.459

inversion control and tagging stuff

854.519

kanban is going to be more like tagging

856.86

it per task because you like you know

858.54

you go create a task and then you can

861

once you're done then you're gonna you

863.04

know basically merge it back into the

864.48

code base and you're off and running

865.74

it's ready to go versus scrum you're

869.399

gonna have a release where you're piling

872.1

stuff into a release and then the

873.72

release gets merged in and then you can

876.12

move forward

877.98

typically with kanban it's very

880.44

straightforward you go left to right you

882.24

go you know backlog or to do in progress

885.48

or you know work and then done or

888

complete however you can move stuff uh

892.56

back to the left so you may move stuff

894.48

into progress and then kick it back to

897.779

um to the the backlog you may have like

900

another maybe you have like ready for

901.56

testing

902.519

and so maybe moving into ready for

904.199

testing I've seen this a lot actually

905.519

it's where it's you know backlog in

908.399

progress test

910.199

and then done and it's not uncommon for

913.62

something moving to test and then

915.06

there's some feedback on it and then it

916.56

gets pushed back either to the backlog

918.36

or to the in progress depending on you

921.06

know technically I guess it goes to the

922.32

backlog and then that person may very

924.779

quickly pick it back up and and work on

926.82

it

928.73

[Music]