Is Your Kitchen Clean?

I work with a lot of Scrum Teams and there are always some common things between the teams I work with and then some things that are drastically different. What I love about Scrum is that it isn't partial to any type of work, it is simply a management framework that helps you visualize the work; whether it be a software system, building an automobile, or marketing operations.

I often travel and when I do, I find myself eating by myself... a lot. So with no one there to share in conversation, I am left to my natural state of being very observant and seeing how work happens at the restaurant or wherever I might be (this is why I know I am in the right field, most people don't even think about that stuff LOL). How does this fit with Scrum? Good question.

Most teams struggle with how to fit support and maintenance type work into their sprint. It seems the Product Owner is always giving them higher priority items that are feature based (customer facing) work. Of course, we should work on things that make money for our product, duh! However, only focusing our efforts on new features and customer facing work, we likely start having a messy work place (our dev tools and code) and run the risk of actually putting out more features slower than if we were able to keep a nice / tidy workplace.

Now back to the restaurant. As I observe a kitchen and the backlog of work hitting them every few seconds, I take note and realize that as they cook; they clean. Why do they clean? For one, they want to make sure that that spicy habanero sauce for one customer doesn't make it into the Chicken Picatta for another.

The other reason they clean is because they are much more efficient with each new order (backlog item). Can you imagine what the kitchen of, let's say, a Waffle House might look like if they didn't take time to clean every so often during the day (or night)? They would likely run into an issue where their "velocity" of getting work done would slow down and possibly reach a screeching halt.

So the cooks in the kitchen (the development team) clean up often. Keeping a nice clean work area allows you to be more efficient and actually helps your morale / psychological state. When developers are writing code and shipping software, they too need to take time to clean up their code, integration methods, automated build/deploy systems, etc... It's how they keep the engine running clean and smooth.

Too often however, the organization doesn't value the effort it takes to keep things clean. They want more food, be able to serve more customers, and make more money. All great things, we do want business drivers, but we have to learn how to budget / allocate time to keep things smooth and clean.

In Scrum, the team is the only group of people who can commit to work in a Sprint. There is a reason for that. If you have an organization or a Product Owner (the build the right thing person) that doesn't value "building the thing right", you can use the Scrum rule to only commit to new work based on an allocated time you have for new features.

This approach however, doesn't foster transparency or collaboration. I have seen where it has to happen as we can train the organization to budget the team's capacity accordingly. I would much rather see the team be up front and bring items to the product backlog that make our environment better, smoother, and cleaner. The Product Backlog is suppose to represent ALL work that is required to fulfill the product vision. Usually a product vision includes scalability, maintainability, and speed (if not explicitly, inherently).

So if your feel your team is not given the appropriate time to "build the thing the right way" work on exposing that work and creating a working agreement to budget that kind of work in the backlog and feed it into the sprint periodically. I am mainly referring to the support and maintenance type items. Work required to build the feature the right way should simply be a part of that backlog item and sized accordingly. There is some work however, that is not related to a particular feature that needs to be accounted for in the backlog (upgrade that java client, change the 3rd party API end points, upgrade to SQL Server 2014, etc...).

Happy eating (or coding)!


Related Articles

Building Your Agile Muscle

Does your team have a definition of done (the list of valuable activities that assert quality in your product)? In the dictionary, the term done means: “Having been carried out, accomplished, or finished” Many teams struggle to know when they are done, whether it is from the product backlog item...

Read More

The Flat Tire

In regards to Scrum, many people struggle to wrap their heads around the process. While it is a fairly simple framework with very little rules and prescription, it is very difficult to actually do; logistically speaking. Build a backlog…ok, well how do I do that? Have a sprint review…ok, well...

Read More