1
00:00:07,520 --> 00:00:11,760
After watching this video, you will be able
to explain working in small batches and

2
00:00:11,760 --> 00:00:14,640
recognize how single piece
flow yields faster feedback

3
00:00:15,840 --> 00:00:19,280
Working in small batches is a
concept from Lean Manufacturing.

4
00:00:20,000 --> 00:00:24,800
It is important in situations where fast
feedback is required because it enables

5
00:00:24,800 --> 00:00:30,320
you to learn quickly from your decisions.
You may be testing a hypothesis and you

6
00:00:30,320 --> 00:00:33,120
don't want to get too far before
you know if it's going to work.

7
00:00:34,080 --> 00:00:40,000
Working in small batches allows you to experiment
more, in order to quickly gain insights.

8
00:00:40,000 --> 00:00:43,760
In contrast, working in large
batches that take months to complete

9
00:00:43,760 --> 00:00:50,480
means that you don't get feedback for months.
Working in small batches also minimizes waste.

10
00:00:50,480 --> 00:00:55,360
Because you gain feedback faster and you don't waste
time developing things your customer doesn't like.

11
00:00:56,000 --> 00:00:59,440
Using large batches, you may spend
months developing something that

12
00:00:59,440 --> 00:01:03,600
isn't what the customer wanted.
In keeping with DevOps practices of

13
00:01:03,600 --> 00:01:09,840
cross-functional teams and lightweight approaches,
the best way to rapidly progress from development

14
00:01:09,840 --> 00:01:15,520
through test and operations into production in
a matter of minutes is working in small batches.

15
00:01:16,480 --> 00:01:21,440
Let's take a look at an example of working
in large batches versus small batches.

16
00:01:21,440 --> 00:01:23,840
Let's say I need to mail
out one thousand brochures.

17
00:01:24,480 --> 00:01:28,960
The steps are I fold the brochures,
insert the brochures into envelopes,

18
00:01:28,960 --> 00:01:32,480
seal the envelopes, and then
stamp the envelopes with postage.

19
00:01:32,480 --> 00:01:37,360
We will use this brochure example to compare
large batch and small batch execution.

20
00:01:38,960 --> 00:01:43,760
Let's say that I'm going to process the
first thousand brochures in batches of 50.

21
00:01:43,760 --> 00:01:47,040
These are large batches, with
50 brochures in each batch.

22
00:01:47,040 --> 00:01:50,560
Assume that each step takes
about six seconds to complete.

23
00:01:50,560 --> 00:01:55,440
So, I can do about 10 steps per minute.
I start with the first step, which is folding.

24
00:01:55,440 --> 00:02:00,080
And at 10 per minute, it takes me
about five minutes to fold 50 of them.

25
00:02:00,080 --> 00:02:03,680
Then I move on to the next step.
The next step is inserting them all.

26
00:02:03,680 --> 00:02:08,080
I can do about 10 of them per minute, so it
takes me five more minutes, plus the five

27
00:02:08,080 --> 00:02:14,320
minutes from before. Now I'm 10 minutes into it.
Once I have them all folded and I insert it, I move

28
00:02:14,320 --> 00:02:18,400
on to the next step, which is sealing them all.
If I’m sealing 10 per minute, I can do another

29
00:02:18,400 --> 00:02:21,600
50 in another five minutes.
So, I'm up to 15 minutes

30
00:02:21,600 --> 00:02:27,120
at this point in wall clock time.
Finally, I get to step four, stamping, and it took

31
00:02:27,120 --> 00:02:33,200
me 16 minutes to get my first finished product.
This is the first time I have things that I can

32
00:02:33,200 --> 00:02:37,680
actually inspect to check the quality.
What if the envelopes had no glue?

33
00:02:38,320 --> 00:02:41,840
It would be 11 minutes before I
figured out that something went wrong.

34
00:02:42,400 --> 00:02:46,240
What if there's a typo on the brochure?
I have to go all the way back to the beginning.

35
00:02:46,240 --> 00:02:50,240
So, this is very wasteful
working in these large batches.

36
00:02:50,240 --> 00:02:54,560
Now let's look at the same example with
small batches using single piece flow.

37
00:02:55,280 --> 00:02:58,800
Again, assume each step takes
about six seconds to complete.

38
00:02:58,800 --> 00:03:02,720
With single piece flow, I fold one,
and put it into the envelope and seal

39
00:03:02,720 --> 00:03:07,520
it and put a stamp on it and the first
finished product is about 24 seconds.

40
00:03:07,520 --> 00:03:11,920
Now I can inspect it, see if it works,
see if it's what I thought it was,

41
00:03:12,480 --> 00:03:15,680
and then let the rest of the flow
continue if it was acceptable.

42
00:03:16,240 --> 00:03:21,040
I received fast feedback in only 24 seconds
instead of 11 minutes with the large batch.

43
00:03:21,760 --> 00:03:25,120
What if the envelopes had no glue?
I would find out in about 18 seconds.

44
00:03:25,120 --> 00:03:28,080
And if there was a typo in the
brochure, after 24 seconds.

45
00:03:28,080 --> 00:03:31,680
It’s very important that we
don't work in large batches.

46
00:03:31,680 --> 00:03:35,280
We need fast feedback, so that
we can quickly pivot if we need

47
00:03:35,280 --> 00:03:39,120
to do something different.
Working in small batches

48
00:03:39,120 --> 00:03:43,920
helps you implement other DevOps practices like
Continuous Integration and Continuous Delivery.

49
00:03:44,560 --> 00:03:46,560
So how do you know if your
batches are small enough?

50
00:03:47,280 --> 00:03:50,320
I would start with the size of
your stories in your backlog.

51
00:03:51,040 --> 00:03:56,400
Are your application features decomposed in
such a way as to support frequent releases?

52
00:03:56,960 --> 00:04:00,160
You have to ask yourself, how
often are releases possible?

53
00:04:00,160 --> 00:04:02,800
Are there delays in the release
because the features are too large?

54
00:04:03,520 --> 00:04:08,080
Can features be completed in a sprint?
If you have features that take several sprints,

55
00:04:08,080 --> 00:04:12,240
then your batches are too large.
Optimally a feature should be

56
00:04:12,240 --> 00:04:18,560
small enough to be completed in a week or less.
The features you build are one step toward a goal.

57
00:04:18,560 --> 00:04:21,920
Many people feel that only a
completed goal is worth shipping.

58
00:04:21,920 --> 00:04:25,280
Instead of thinking of useful subsets
that can be delivered in increments

59
00:04:25,280 --> 00:04:28,077
to gain feedback towards the ultimate goal.

60
00:04:29,191 --> 00:04:31,120
In this video, you learned that

61
00:04:31,120 --> 00:04:34,480
working in small batches means
delivering something useful quickly.

62
00:04:35,440 --> 00:04:39,315
And using single piece flow leads
to faster feedback loops.