Leveraging a Lean Kanban Approach to Improving the Grocery Shopping Process with Trello
As an Enterprise Architect at Dell Technologies, I help IT organizations from the Fortune 500 navigate through their Digital Transformation Journey by helping them with their IT, Workforce, and Application Transformations. I’m also a long-time fan of Agile and Lean Principles and leverage those techniques to help build a continuous improvement enterprise culture. I enjoy my job that lets me mix my penchant for technology with process improvements to drive more effective business outcomes.
A couple years back, I get home from my typical Sunday chore of going grocery shopping for the family, only to find out from the wife and my college age daughter that there were things I “forgot” to get. I ask, “where they on the list?”. Of course, no they weren’t on the list, but didn’t I remember that they both asked me to get them the next time I was at the store. No, I didn’t remember, and no they didn’t remember to create a list for me, either. How many times did I tell them, write it down, or I’m not going to remember? I don’t know the actual number, but I’m tired of this reoccurring problem. There must be a better way. Maybe I can get the wife to do get the groceries, or better yet, the kid can drive, maybe I can make her do it. Then I can have more time to do the things that I want to do, like write some new and interesting code, or try that new bourbon I bought but never have the time to sit down and just enjoy.
Then I hear this voice in the back of my head. “Don, you help some of the largest enterprises in the world improve their much-maligned IT departments thru Digital Transformation of the whole enterprise, and you can’t fix a “simple” problem remembering to get the right groceries?” You know, that voice is right. I can’t just outsource the problem and hope it goes away. That will just come back to bite me later. I’ve seen what happens to an enterprise when they do that, and I’m not going to head down that road. I can solve this problem, and I can do it according to agile and lean principles I use to help Digitally Transform my clients. Call it the beginnings of a Digital Transformation of my household.
What exactly are we trying to do here? Can I define the goal and then build at least one story as a Minimally Viable Product (MVP)? I want to improve the process of getting groceries and reduce the number of times I must go back out to the store to get things that weren’t on the grocery list. Hmm, having to redo something because the was some sort of defect is called “rework” in lean, and yep, we should improve the process to help prevent that from happening. Not sure I have the metrics to back it up (another lean principle), but it feels like this happens at least once or twice a month. I’ll use that in leu of hard data. Ok, let’s call it once a month (go conservative). With my busy family and work life, time is most precious to me, so let’s convert that into time wasted. Yes, there are other metrics I could use, but time is the most important to me. Each trip to the grocery store, when include all the time, is about 2 hours. That one I know, because I do that just about every week. That means every time I don’t have to go back out to the store, it could save me 2 hours. Yes, I probably bundle it with other chores I need to do, but let’s focus on this outcome and adjust the process in small increments. We can handle unintended consequences as we are improving this pain point. But why stop at just me? Can I improve the process so that any family member has the information needed to get the groceries? This way I not only make things better for me, but the whole family. I’m sure there is some technology that I can take advantage of and streamline this process. But this is an MVP. Let’s stay focused and create our first story.
As a Family Member
When I go grocery shopping
Then I should have the latest list of items to purchase at the store
So That we don’t have to go back to the store to get missed items
and we have more time to do other things with our time
That’s a pretty simple story, and we can start with the existing process, using a written grocery list. We are all familiar with the typical process. Someone grabs a piece of paper and as they go thru the house, write down the items that are needed. Maybe there is a starter list on the refrigerator that the family members update during the week. It works most of the time, if everyone takes the time to update the list. Otherwise, it becomes the responsibility of the grocer shopper to remember what to get. Then there is the hassle that the list is at home, and maybe you are out and want to stop by the store on the way home. In re-reading the initial story, it does say “I should have the latest list of items”. So, I think we are covered. The old handwritten grocery list process is part of the problem. It is so 20th century. Worked for that time, but with technology, we can make it better. I know I could use an extra 2 hours a month, plus eliminate a bit of stress. Win Win.
At this point you are probably saying to yourself, I’ve solved this problem, I just buy my groceries online using a combination of Amazon and one of the local supermarket delivery services like Shipt. I get a lot more time back than just 2 hours a month, now I don’t have to go to the grocery store at all. In Enterprise terms, I moved my IT to the Public Cloud. But did you real solve the problem? Or, did you mask it with a very convenient alternative? That convenience comes at a cost, and if we don’t solve the underlying end to end process issues it could wind up costing you a lot more. The quick fix is fine if you aren’t planning to stick around, but if you are looking for long term improvements, you are going to have to work on improving all the related processes. Maybe buying groceries online is the right answer, but you should add that as potential options to your process improvements. But we are getting ahead of ourselves here. Let’s get back to the problem at hand.
There are plenty of Grocery List type apps out there, and every family member has a phone. I could use a shared note app, too. Either will work and satisfy the story. But I can already see some flaws in that architecture. It handles making sure everyone has access to the grocery list, and the ability to update it. But when you start to dissect the pain point, the goal isn’t just to eliminate the number of forgotten grocery items in the Grocery Shopping Process, but to improve the process of determining what items need to be restocked from the grocery store (the What to Restock Process). The Grocery List is just the output of that process. Now we are getting somewhere. Instead of solving for the pain (the forgotten grocery items) we need to fix the upstream process, What to Restock. It’s the hand off between the various family members which is the real source of the problem. At least without additional data, that’s seems to be the main problem. Glad we didn’t spend too much effort on just building an online grocery list, as it wouldn’t have solved the real problem, the handoff between processes.
Now that we know that the What to Restock Process is a key satisfying the real problem, lets write a story for that.
As a Family Member
When we decide that we need an item from the grocery store
Then I should be able to mark an item as To Buy from the Grocery List
And it should be easy to add the item to the grocery list
And I shouldn’t have to re-enter an item if it is something that is regularly purchased
So That the Family Member that goes Grocery Shopping always has the updated list
So, let’s break down the What to Restock Process into its most simple steps. You have things that are In Stock (stuff that you don’t need more of), you have things that you want to restock (stuff you need To Buy at the Grocery Store).
Now that we are focusing on a process, we could go all out and create a Value Stream Map of that process. In bigger more complex processes, probably a pretty good idea. But here, the process seems simple. We should be able to model it with a simple Kanban Board. A Kanban board is made up of a series of lists (which are really stages in a process), and within a list, a collection of cards. For a typical Kanban Board, you would normally start with 3 Lists/Stages: “To Do”, “Doing” and “Done”, and then refine the process adding additional lists that are basically sub-lists of those 3 Lists/Stages.
In this case you, To Buy is your “To Do” List, and let’s start with “In Stock” as your “Done” List. “Doing” could be the stage while the Family Member is shopping, but that seems like a temporary stage not worth the effort to add into the overall process, so let’s just stick with the 2 Lists/Stages, To Buy and In Stock. We can refactor that later if we need more steps in the process.
Before we go any further, we need to decide how are we going to implement this Kanban Board. The simplest way to model out the process flow would be to use a wall, some painters tape, and some Sticky Notes. By far the simplest Kanban Board, and because you use Sticky Notes, it is easy to move the Notes between the defined Lists/Stages of the Kanban Board. It what I normally start with when working with a customer, especially in a workshop setting. But in this case, the requirement is that this is accessible to every family member, and especially at the grocery store. Hard to take a wall with you, so not a good long-term option here. We can skip this and go straight to a Kanban Board app. My favorite is Trello, and there is a free level that would work great for a family to use for their grocery shopping. Since it is what I already know, it is the simplest thing that will work for this situation, an important MVP rule. If you want to play along, go out and create a free account, create a Grocery List Board and add 2 Lists, To Buy and In Stock.
Here’s the beauty of this approach. You will spend most of the time just moving cards between To Buy and In Stock. With Trello it is no different than moving Sticky Notes, just more accessible. Now all you need is cards on the board. Well, we could go in and spend the time filling up the In Stock list with all the items you have In Stock. But we want to keep things Lean and not have to make extra work for ourselves, until we need to. That would be a barrier to family members using the new system, and we will avoid that. Instead, throughout the first weeks of the MVP just add cards to your To Buy list. Let’s start with the basics.
So we have Milk, Bread and Creamer for Coffee in the To Buy list. Typical stuff you need to get just about every week. As the week goes by, I keep adding items as I noticed that I will need to get them at the store. Same as if I was creating a paper Grocery List, but now it is in an app and I can share it with the family once I run thru the process a couple times. Make sure that I work out any kinks in the process, and I’ll also get a bunch of the items into the Trello Board, making it even easier for the other family members. One thing I always had a problem with in the old process was remembering what an item looks like. Things that aren’t for me, and where they are looking for a very specific brand/flavor. So, I can take a picture of the item and add it to the card. This way, when I get to the store, I have a visual reminder of what I’m supposed to buy. Which makes it so much easier to make sure I buy the right thing. In this case, I use regular half and half, but the kid loves this particular creamer, and I always would forget the exact brand and flavor. That’s also one of the Lean Principles, it is hard to improve what you can’t see. Solved that on 2 levels, a visible list of things I need to do, and then a picture of what I’m looking for in the store.
Next time I go to the grocery store, I pull out my phone, open my Trello app, and look at the list while I’m walking thru the store. I’ve got more items than just the 3, but I’m going to keep it simple for this example. I pick up milk and bread, and after I put them in the cart, I make sure to move the cards from To Buy to In Stock. But the creamer, they are out of stock of that specific flavor, so I leave it in the To Buy list. I check out, go home, and put away the groceries. The Kanban board is up to date, and I’m ahead of the game here. I already have an item I need for the next time, and I have cards that I will re-use.
I do this for 2 weeks, and now I’ve got a working system and ready to roll out to the rest of the family. Here’s where preparation pays off. All I have to do is convince them to install the Trello app on their phone, create an account, and then use it. Most of the hard work is done, and the process is so simple I can explain it in just a few minutes. All they have to do is remember to move an item from In Stock to To Buy. In the case that the item isn’t there, I show them how to add an item, and even take a picture if they want a very specific item. The barrier to entry is pretty low, and I’m not going back to the old process. If they don’t want to use the process, they are more than welcome to use the old process of a grocery list, but they will have to do it all themselves. I’m using the new process, and would love that they adopt it, but I’m not forcing anyone. Well of course they don’t want to pick up the chore of grocery shopping, so they are in.
But they are skeptical it will work. That’s where it becomes important to make sure any problems they have I address quickly. I need to build an active feedback loop, and continuously improve this new process. Otherwise, we will never improve. Just another improvement attempt that fails to gain any traction. Yep, did I mention this sounds a lot like the typical IT department? I could build another Improvement Kanban board using the To Do, Doing, Done format, and get them to actively order the To Do list in order of priority. But, yeah, even for my family, that’s a lot to ask. Let’s keep it simple and just tackle the problems as they come up. If there are any problems that will take a while to fix, well I can always go back and create the Feedback Kanban board.
First minor issue comes up, and it is pretty obvious. When the list of To Buy has a lot of items (more than one screen’s worth), it is hard to see the whole list. So, when you are standing in the dairy aisle, if all the dairy aisle products aren’t near each other, I have to scroll thru the list looking for grocery items. I have to ask the family to make sure that when they add/move an item to the To Buy List, make sure to put it near other items that would be found in the same aisle. In talking to them, they have a similar problem when I move the item back to In Stock. Hard to find the item in the In Stock list, and sometimes it is just easier to create a new card, which causes duplicate items. Ok, we can help each other out here, they organize the To Buy list, and I’ll organize the In Stock list. Problem solved.
Adding in a New Stage
Things are going pretty great. Everyone is using the Trello board, and I even got the other family members to use it when they are out and decide to hit the grocery store. Everything is going to plan. Then the first real exception happens. An item is no longer In Stock, but they don’t want to buy it again. At least not now, and it is cluttering up the In Stock list. Yes, we could delete the card, but eventually they may want to buy it again, and why recreate the card if you don’t have to. Sounds like we have a new stage for this process, which means a new list on the board, an Archive List. Just like the other lists, it is important to keep it organized. But now if something is out of stock and we don’t want to buy it right away, we can drop it into the Archive List and it will be there when we need it. Bonus, it becomes an easy list to check out when you are tired of the same old stuff and want to “remember” that thing you use to get but can’t remember the name of. It sucks getting old.
Holiday and Party Time
We have been using the Trello board for a couple months now, and it is Holiday Time. That means Holiday Dinners and Parties. Those are fun, but there is plenty of stress, for multiple reasons. But one stress that we can eliminate is trying to remember the list of stuff we always get for a Holiday Party or a Holiday Dinner.
In my day job as Enterprise Architect I always tell my customers, yes it makes sense to automate things you do all the time, but don’t forget about the things you only do once in a while. Have that application that you only deploy to a new environment every couple years? Automate the deployment and configuration of that app. The usual answer is, why automate that, it doesn’t save any time, and actually, it will take more time to automate, and more time to update the automation when things change. They aren’t wrong. It will take more time, when everything goes right. But, what happens when the person that did it last time isn’t around? Even if they are around, can we guarantee it was built the exact same way each time? What’s the risk if it is done differently? What’s the additional stress to add this to the list of things to do, especially when everyone is working at max capacity? Time isn’t the only thing we need to measure, though it is important. Especially when you are relying on one person to accomplish that task. If you needed a Hero to accomplish something, you might have finished the task, but you failed at the goal.
I love to throw Holiday Parties and Dinners. Well at least I love them while they are happening, but the planning and cleanup, not so much. What can I do using my Trello board to make the planning easier? This is just a specialization of the What to Restock Process, where there is a special event that requires a special list of things To Buy, just for that event. We could just use the Archive List, and maybe tag the items, but that is a bit kludgy and makes it harder to visualize. So, instead, create a Holiday Party list, and put all the items need for the party in that list. Now we have a very specific archive list that we can reuse. Just move the items from the Party list to the To Buy list when it is time to buy the items for the Party. Then put them back in the list after you purchase them. Hmm, small problem here. What happens when I mix items from the In Stock list and the Party list in the To Buy list? I might not remember which one goes where. Well, Trello lets us tag a card with a label (that also has a color). Create a Label called Holiday Party and tag all cards in the Holiday Party list with it. This way, you will know what list the item goes back into. After the Party, make any changes/adjustments to the list, and then the next time you will be all set. No more stressing about remember what you need to buy for a party. Planning is now easier, and you don’t have any last-minute runs to the store to pick up that special beer your father-in-law loves. Now if I can just do something about the after-party cleanup. We can improve that at another time.
As I mentioned at the start of this post we have been using a Trello based Grocery List for years. Could I improve it with some cool integration with Amazon or some online shopping service? Sure I could and there are a bunch of nice integration between Trello using IFTTT to improve your normal household tasks. Lots of folks have similar “lifehacks”, I’m not the first and won’t be the last. But I’ve only seen this talked about as cool lifehacks. In the Enterprise world, we would call most of the improvements part of the Enterprise Digital Transformation Strategy. How we can take advantage of the Digital Revolution to improve Business Outcomes. Same thing is true in your personal world, though most of us don’t really think about it as a strategy. More like just some cool lifehacks so you can free up some time or money, so you have more recreational time. Or like me, try that new bourbon I bought but never had the time to sit down and just enjoy. Speaking of a bourbon, sounds like a good time to kick back and relax with a bourbon.
Oh, did I ever tell you about the Trello board we created to track the current amount of whiskey left in the bottle? Because when you have a couple bottles that are only ¼ full, you really should throw a party to consume those bottles before they oxidized. I’ll save that one for another post.