The art of not doing work, as applied to agile software development. It seems like a crazy idea. What is meant by not doing work. Why is it an art form? The art of not doing work is an interesting concept. Exploring it further, it does make sense. Especially in agile software development. I will first share thoughts on what that means. Next, I will dive into the practice of it. I believe these ideas can help to deliver more value by your agile team.
Art of Not Doing Work – What it Means
It is really about simplifying work. Finding the essential piece of work and doing those first. Avoiding unnecessary extra work and avoiding complexity wherever possible. Adding work that is not needed only slows the team down. It also reduces value of the work done by the team. Removing complexity can help a team speed up delivery. It also increases value, by doing just the specific portions of work that are value add items.
The art of not doing work is really the art of simplicity. Understanding that we can’t do everything and organizing work accordingly. It is really the practice of removing lesser priorities. In order to focus on top priority work. The art of not doing work is the art of simplicity.
Art of Not Doing Work – Working the Right Priorities
Its also about taking on the right things at the right times. The selection of work, according to priorities, plays a large part. Prioritizing incremental value add items, in the right order, will consistently add to a product. The sum of the individual work items will build up the software. Delivering those work items in a careful order helps to get that value faster.
Its Also About Controlling the Work
The art of not doing work includes an aspect of controlling the work. Controlling the work is about about scope control. You need to keep a mindful eye on increasing scope, and do it for priority items. Items that add great value. This is a balance you must maintain between being flexible to changing needs, and out of control scope that is near impossible to deliver.
Controlling the work is also about incremental delivery. Which is about delivering the priority items first and continually evaluating what needs to be done next. When scope does expand, often the items can be done as follow up items. Allowing the current work to progress, with out adding to it. Completing it, and moving on to the next priority item. Incremental delivery is a powerful idea and key piece in the art of not doing work.
Art of Not Doing Work – Avoid Comprehensive Features
When doing work in agile development, it can be easy to get carried away with features. There are often new and interesting features that can be added. “Cool” items, that the team likes and wants to add. Its important to be disciplined on these and add the priority items first. Don’t over build and add features that are not value add. Even if they are cool, or popular ideas. The comprehensive suite of features slows down value delivery. The Cadillac of features isn’t necessary for most scenarios. Delivering the priority value adds first, without tacking on additional items, is part of the art of not doing work.
Is it Art or Science
To me there is no comprehensive and defined list of rules that can explain how to simplify work. Its a balance you must find, between working the top priorities and waiting on the next priorities. You must use some intuition about what to take on vs what you can wait on. Its about simplifying work, to the lowest common denominator. Delivering on that, and then moving on to the next thing. I would call the art of not doing work a mix of art and science. Where the right mix can help you build great things and quickly. The art of not doing work is both art and science, and does take some practice. It can lead to great things in agile software development.
Practices that help with this
Incremental delivery – remember to work on prioritized pieces of work. As much as possible, avoid large portions of work. Break up the large work into smaller pieces.
Vertical slicing – to help give pieces of work that add value on delivery. Vertical slicing is taking portions of the system that includes work on all technical and architectural layers. Meaning that the pieces of work are stand alone. When able, if you can deliver work in this manner, you gain value quickly. Below I have linked to another post discussing vertical slices of work in more detail.
Don’t overreach – in order to keep work manageable. Focus on the prioritized work and don’t get swept up in non-value add work. If new ideas and changes will add value, often they can be prioritized as the next work. Treat them as such, finish your current work and then come back to them.
Focus to finish – is about keeping thought on the task at hand. Not expanding or drifting to other work.
The ability to break work into standalone functional pieces that deliver value, discussed in Vertical Slicing. A key idea in agile software development and the art of not doing work.
Keeping documentation simple is also part of the art of not doing work. Here I discuss documentation in agile development.