If you lived through the past few decades you have undoubtedly heard the time “Just in Time” (JIT) as applied to manufacturing. This is the lean breakthrough that allows companies to get rid of large amounts of inventory and unfinished goods. In a nutshell it means that parts show up just in time for manufacturing, and production happens just in time for purchase. This is the opposite of “Just in Case” manufacturing where production was at a given level and usually ramped up as high as possible. Agile is based on lean, so you’d expect it to have similarities to JIT, but in my opinion it goes far beyond JIT!
Agile is definitely based on JIT. You can see this in many of the practices. User stories are created when they are needed and not before. Releases happen when there is appropriate value in releasing, not before and not after. Each iteration has a commitment which is met on time. I’m sure there are other examples, but these few suffice.
What is missing in JIT is the answer to what is getting delivered or received just in time? This is where the phrase “Just enough, just in time” comes in. You don’t simply want it in time, you want just enough of it – regardless of what “it” is! Let’s look at a few examples:
- User stories – we don’t need every user story for the release prior to the first iteration. We need just enough user stories to get started.
- Documentation – we certainly don’t need “just in case” documentation, but I also believe it is a fallacy to think agile teams can be effective with zero documentation. We need just enough documentation to make sure the team is successful.
- Architecture – at the start of the project it doesn’t make sense to build out a fancy architecture which is going to change anyway. Agile teams should be striving to build just enough architecture to support the user stories in the queue.
- Planning – at iteration planning we don’t look at things outside the iteration. We do just enough planning to make sure we can accomplish our goal for the iteration.
- Collaboration – agile teams certainly have high levels of collaboration, but that is because that level is just enough to help them be successful.
These are just some examples. I am sure there are many more. If you are new to agile and you remember “Just enough, just in time” you will be heading down the right path. As a newbie you may went to err on the side of “not quite enough” at the beginning (take this as just a hint) because it is easy to do “just a little too much” most of the time. Our old ways lead us down the too much path very easily. You can be successful doing too much, but not as successful as being not quite enough and adjusting. When we start at too much we tend not to change because we are still seeing some success. Don’t fall into that trap. Keep scaling back and eliminating waste!
Hopefully this blog post is providing just enough wisdom, just in time to get you going!