Agile & Scrum & Kanban, oh my!
Tags: agile, kanban, scrum, workflow
Published: 2020-05-25 22:08:44

While I've heard of Agile, Scrum, and Kanban, I'll admit that I wasn't well-versed in what defines these tools at this time yesterday. They came up in conversation and I realized I wanted to learn more! 

The definitions I found in my research were very abstract, which is the beauty of the [Agile Manifesto](https://agilemanifesto.org/), because it's flexible enough to use with non-tech teams. I even realized that we practice an Agile process at my current company. Our way of doing things hits all of the key points:

- **Working software over comprehensive documentation** : We develop beta sites ASAP then refine and fix any bugs.
- **Individuals and interactions over processes and tools** : We all have the freedom to plan our work for the day, and there is no micromanaging. Every morning we meet briefly to discuss what we will do that day. 
- **Customer collaboration over contract negotiation** : Clients play a key role in developing their websites because they add their own content. They also collaborate in the decisions of features. 
- **Responding to change over following a plan** : We maintain flexibility throughout each project and adapt along the way. 

Then I also came across the following job posting, which shows how an Agile environment would be applied in a software engineer position. They are looking for someone who will:

> - Collaboratively tackle difficult and ambiguous problems as part of a cross-functional team.
- Write, test, debug, and deploy code across a variety of languages and frameworks, particularly Javascript/React.
- Work across the different phases of the software development lifecycle including estimating level-of-effort, identifying the best approach, building, performing QA testing, deploying, documenting, debugging, and supporting features.
- Participate and contribute to stand-ups, sprint planning, and retrospectives at the agile team level and up.
- Perform code reviews with helpful and meaningful feedback for your teammates.
- Research, document, note trade-offs and recommend potential solutions around future product features.
- Work collaboratively across the engineering department to ensure standard methodologies and processes are followed.

This is a great real-world example of an Agile engineer's day-to-day, but how do Scrum and Kanban fit into all of this? Well, these are frameworks that offer more specifications to implement an agile workflow. The previous job posting refers to a Scrum environment, because the Scrum framework usually consists of small teams, sprint planning for ~2 week sprints, daily stand-ups, sprint reviews, and end-of-sprint retrospectives.  

Kanban is another framework and is all about visualizing work, often done with a Kanban board made up of columns that contain tasks to do, what's in process, what needs to be reviewed, and what's done. [This Atlassian video](https://www.atlassian.com/agile/kanban) explains it really well.

Many teams including the one I'm on use both Scrum and Kanban in their Agile environment. I use a digital Kanban board called [Flow](https://www.getflow.com/) as well as participate in daily Scrum stand-ups. We definitely lean more toward Kanban than Scrum. What's your workflow like?