Using the Right Tool for the Job

Posted by Mark Noneman on 31 March 2017
tools_cropped.jpg
"When all you have is a hammer, everything looks like a nail!"

Huh? I don’t know; it’s something my father always said.

I think he meant that if you don’t have the right tool for the job, you’ll use the tool you have. And if it’s the wrong tool, the job will suffer.

Agile frameworks are tools of a sort. You might say that Scrum is like a wrench—requiring many turns to deliver the end result. Perhaps Kanban is like a hammer—delivering each bit and moving on to the next. Maybe waterfall is like a shovel—you know, you can use it to dig yourself a deep hole!

Now I suppose it’s possible to put in a nail with a wrench (okay, I admit it, I’ve done it!). Perhaps you could even use a hammer for some kinds of bolts. In either case, the results won’t be pretty. (I’ll let you decide about the shovel.)

But from an agile framework perspective, what does a nail look like…or a bolt for that matter?

Kanban is a framework to focus on the flow of work. When the influx of work is highly variable and unknowable while the work itself has a definite pattern, Kanban may be a good choice. (Kind of like hammering in nails.)

Examples of work for which Kanban may be the best tool for the job:

  • IT Operations: “Tickets” come in at a variable rate and the priority of the work is also highly variable (e.g., new user account request compared to patching a server operating system compared to a server crash). Each type of request has a similar workflow. Results are often delivered back directly to the requester.
  • Software maintenance (also known as “sustainment”): Users report production defects, request changes in production configuration, or need modification of centrally administered data. Again, requests come in at a variable rate and the priority of the work is highly variable. Results may be delivered in a small software release or patch.
  • (Non-IT example) Staffing: New openings occur randomly but typically in bursts. Applicants pass through a relatively regular work flow for each open position and need to be tracked through to closure (rejection of the applicant or acceptance of an offer).

Kanban comes from lean principles, relying on high quality as the primary focus and continuous improvement (Kaizen) through experimentation to constantly improve responsiveness in the flow of work.

Scrum is a framework designed to develop new, valuable products. Teams work in very small batches (less than 30 days’ worth…usually just 2 weeks) to develop something valuable, get feedback on what’s been developed, and use that feedback to determine what to do next. (That’s the inspect-and-adapt feedback loop of a process called empiricism.) Sort of like using a wrench on a bolt, I suppose.

Examples of work for which Scrum may be the best tool for the job:

  • Software development: Developing a new software product or enhancing an existing one where users (or proxies thereof) are available to discuss their needs and provide feedback on bits of functionality. Getting the functionality right often involves iteratively and incrementally developing it using feedback on what works and what doesn’t.
  • Marketing: The development of marketing materials and campaigns also works best by iteratively and incrementally developing ideas and testing them with potential customers. Feedback (through focus groups, studies, A/B testing) help to determine the most successful marketing approaches and allows abandoning approaches that don’t work.
  • Creative writing: Writing novels or screenplays proceeds in an iterative and incremental approach as well. Characters and scenes are written, reviewed, and re-written, sometimes adding or deleting entire scenes as the story develops.

Scrum is built on lean principles, too, using empiricism to continuously evaluate the work as it’s developed and using that evaluation to guide the next steps. The same approach is used to improve the process of doing the work by constantly evaluating what practices, tools, and skills are working and improving those that aren’t.

Finally, waterfall may be a good fit when the work is highly predictable with low variability. If you can get consistent outputs given a set of inputs and the application of known work steps, waterfall may be a reasonable choice. Kind of like digging a hole with a shovel.

The construction industry successfully uses waterfall methods to build housing developments and office complexes. [Note that manufacturing (which is highly predictable and has low variability) abandoned waterfall methods in favor of lean approaches starting in the 1950s!]

When working to solve business problems, it’s best to use the right tool for the job. In companies that use and develop software, both Scrum and Kanban may be appropriate tools in certain circumstances. If you need to respond to requests with high quality and fast response, Kanban may be a good choice. If you need to develop new, valuable, quality applications, Scrum is the best tool for the job. Choose the right tool, and the results will follow.

Topics: Scrum, Kanban, Agile