There is a common dilemma of having big projects interspersed with little ones. The question is how do you handle this? Weighted Shortest Job First (WSJF) helps with this by encouraging small increments to be delivered. From a work in process (WIP) point of view, it is better to start and finish items instead of running several at a time. But how do you manage small projects with big projects? We can learn a lot from this insightful anecdote:
I heard this story years ago at a Stephen Covey time management seminar where he described a segment of one of his classes.
Mr. Covey tells how he held up a big, open-mouthed jar. On the table were lots of rocks. He started picking up the rocks and carefully placed them in the jar until no more would fit.He then asked the attendees “who thinks the jar is full?”
Most people raised their hands. He then reached under the table and pulled out a box of small rocks. He started placing these rocks into the jar until no more of them would fit. Again he asked the attendees “who thinks the jar is full?”
Only a few people raised their hands this time.He then reached under the table again and pulled out a bag containing sand and poured the sand into the jar until no more would fit. Then he asked the attendees “who thinks the jar is full, now?”
No one raised their hands, obviously thinking another trick lay in store. He then reached under the table and pulled out a pitcher of water and filled the jar with water until it could take no more. He then asked – “Can anyone tell me the lesson of this?”
One attendee responded – “that no matter how much you’re doing you can always do more?” Covey chuckled and said – “no. It’s that you must put the big things in your life first. The smaller things will find a way in on their own. But if you don’t put in the big things first, they won’t fit in later.”
This story provides a useful insight for development. The cost-of-delay of a big increment is accounted for in WSJF, but the impact of delays to big and small stories is not. One might infer that big increments should not be interrupted. But that is not practical in the real world. But if one slices up big increments into validatable chunks, one can interrupt them in an intelligent manner as needed by smaller pieces. We’d like to avoid this completely, of course, but often can’t.
We’ve used this technique with teams that get large and small features to implement quite successfully. Basically, don’t interrupt big chunks of work for small ones. Instead, do the small chunks of work inside the contet of the large ones. When someone working on a large project has some time available to them they should look to see if there’s something small they can start and finish in the time they have available. See Dynamic Feature Teams for more.