New to agile? Remember one thing: Just enough, just in time
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!
[…] helps to think of it this way. However you think about it, you really need to concentrate on “just enough, just in time” or you will overbuild the architecture or design – which costs extra time and money (and in this […]
Hi Bob,
very interesting post, we also have experiences in extending the Just Enough and Just in Time thinking to the iteration itself, having a team balancing the amount of detail planning to a very short 3-4 days horizon, by playing with Story Points and Remaining Time. More info can be found here: http://www.agile42.com/cms/blog/2009/07/6/sprint-planning-just-enough-just-in-time/
Will be nice to hear your opinion too 😉
Thanks
ANdreaT
The question is: how much is enough? And who decides how much is enough?
[…] Agile method is to avoid trying to define things you can’t know too early, and instead to define just enough to get started and let requirements evolve […]
[…] recent decades as a popular way for Agile software development teams to manage workflow and deliver “just in time” (JIT) […]
[…] that arrive just in time for building a product. Optimizing your lead time encourages the “Just in Time, Just enough” mindset that is needed for agile organizations. If you focus on lowering your lead time, that […]
[…] backlog after the current sprint. By measuring Backlog Health, we help break the anti-pattern of just in time refinement. This is a particularly good tool for forcing teams to schedule and conduct backlog refinement in […]
[…] not necessarily NO documentation. So, in following the last section, you want to get “just enough, just in time”. By waiting until the “last responsible moment” to get the details of your requirements, you […]