How to Run Your Team Project with Agile Methodologies
Over the years of delivering working software we have carefully carved a pathway to how we do our best work. Many of these habits and workflows resemble agile methodologies very closely, while others were more ideas that evolved from traditional agile approaches. Like any successful project, our approach is also expected to grow and iterate over time. The following is a representation of how we are currently working together to build software products.
1. Form Your Team
All things start with a team. What skills do we need to accomplish our goals? How are we agreeing to work together? When will we know we succeeded or when to stop? Many questions can only be answered by your team, so we find it best to define our purpose, the context of the work, and our team alignment at the beginning of projects.
2. Purpose, Context, and Alignment
As the team is formed one of the first questions we ask is why is the team being called together in the first place? Understanding what we are setting out to do and why helps everyone begin to see how we are going to achieve success. Defining our project goals, scope, timeline, and any other constraints gives the team a place to start. We craft a Team Charter together with our Purpose, Context, and Alignment to define our understanding and approach. It’s okay if the document is not perfect, we can revisit it later. Much like user stories, the words on the page aren’t nearly as important as the conversations the exercise promotes. Below is the Team Charter document template that we use:
3. Planning
It’s important to not just plan how the team will work together, but also how exactly to approach the work needed. Understanding what our value indicators are, and prioritizing an order to these pieces of work helps the team create a roadmap to follow. Having a clear goal to focus on gives teams the freedom to work more iteratively, allowing for faster feedback loops and more frequent deployments.
Frequently we will do discovery on a project before a team is formed and the project is kicked off. This helps us estimate and plan the work needs, gives customers better insight into effort level, and ultimately creates a better source of understanding. More often than not, the major indicators for a project align with major features, which are generally made up of several user stories spanning multiple sprints. Having the main milestones laid out across the timeline of the project gives the team oversight of not just status and progress, but prioritization as well.
4. Sprint Planning & Execution
We approach sprint planning by carefully balancing the team’s availability with the team’s desire to deliver working software quickly and efficiently. We value fast feedback loops, so when we author our user stories we keep things accomplishable and not too detailed. Our sprints typically are set to two week intervals, however they can be as small as one week, or span three weeks when context demands it. It’s easy for the team to set expectations by sizing up our user stories and sprints against the value we intend to deliver.
We prefer to work collaboratively on user story execution, however there are plenty of times and places for individual work as well. Our team prioritizes creating an environment where people are motivated, supported, and given the flexibility to grow—while we stay focused on delivering the best, most reliable solutions with minimal errors or rework.
We meet with business owners regularly to review & discuss progress. These discussion times often end up being at least one “working” session type, and one “review” type of meeting per week, but each engagement is different. Sometimes we meet daily or multiple times a day, sometimes we meet once weekly. Alignment helps us define the best way for the team to review work and plan sprints together, and our choices can always evolve and change over time.
5. Retrospectives
At the end of each sprint, or a cadence that fits the project momentum, we like to have a review meeting to discuss our sprint outcomes. We review what went well and was successful, and what could have gone better, including any changes the team needs to incorporate into the next sprint. In these retrospective meetings we learn how to adjust our alignment to “turn up the good”, helping us find ways to collaborate more efficiently and ultimately enjoy working together more. Sometimes retrospectives lead to change in mission or vision, other times they simply enforce we are working well towards our goals.
6. Wash, Rinse, Repeat Steps 4 and 5
As we come to the end of our current sprint, and our work has been reviewed and delivered, it is time to repeat the process. Often we like to start planning our sprint near the end of the current sprint, allowing the team some breathing room to wrap up tasks, defer work to future sprints, or adjust trajectory. Things can change quickly during a project and roadblocks are very much real. There can often be things like staff changes, third-party integration challenges, or other team schedules that can derail progress. Instead of halting the progress, the team can simply switch to another user story or sprint and shuffle goals. By keeping planning focused, early, and often teams can be as flexible as possible without losing traction on providing value. By reflecting on what is working and what isn’t, teams can avoid getting bogged down and perform in a more productive and proactive manner.
Your Team Knows Best
From the outset of the project, the team fosters a culture of continuous improvement, learning, and growth by working collaboratively and acting on feedback from reviews and retrospective. By scrutinizing our process, tossing out the bad and turning up the good allows teams to get the best out of each other each sprint. The team elevates customer satisfaction by involving and engaging them throughout the process of delivering value early and often; after all they are part of the team too. This agile mindset allows for project success through uncompromisable dedication to growth, collaboration, and commitment to helping our customers embrace change, adapt to evolving needs, and drive impact.