Sometimes when we are working on a website project for a client, it feels like we are running a marathon. We see the finish line way off in the distance, inching closer as we run mile after mile. For some projects, this is okay. We have our goal and our milestones and we work on tasks one after the other, perfecting along the way. By the end, we deliver a fully tested and completed project. In other instances, our projects require a much more flexible and fast approach. In these cases, agile project management is beneficial. Agile project management is the practice of breaking down projects into smaller goals and tasks which are then worked on during a set amount of time called a sprint.
When is agile project management appropriate?
Agile and scrum, specifically, a subcategory of agile, are known as the fail fast methods, often working to deliver a minimal viable product (MVP). This method is appropriate for projects when there is a set of clear requirements, but the how and end result are up for discussion. Agile allows you to build something in a sprint, lasting from a few days to a couple of weeks often; and at the end, produce a feature. Then, after reviewing, the team with the client can discuss if changes are necessary.
Agile is a popular project management methodology because it puts the product in front of the stakeholder a lot sooner. Perfection is not the goal, meeting the requirements is. Then, the team can iterate on that. Below are the benefits.
Agile project management allows for the ability to change direction from sprint to sprint. Tasks are all managed in a backlog until they are ready for development. Only when all parties agree upon what tasks will be worked on in a sprint, does development on those tasks begin. The priority of tasks in the backlog can change constantly. This is great for clients that know they might want to reduce the priority of or limit certain work orders at any given time in the project.
Grooming sessions of the backlog and future sprints take place throughout the life cycle of the project to ensure that the tasks are always in priority order and the team is clear on what should be worked on next. This also indicates to the client that the next priority tasks need to have fully fleshed out requirements and user stories.
A sprint only begins when all tasks have complete requirements, no unanswered questions, user stories, and acceptance criteria. This is another benefit of agile. Development doesn’t need to slow down and tasks do not become blocked because all of the necessary information is available to the team before they begin working. This also creates great structure for clients. They know in order for the team to begin work they need to provide the necessary details in the task.
For example, a task with the requirement of ‘develop a carousel module’ is considered insufficient. This task still requires a user story. This would read something like:
As a site admin, I can add a carousel to the homepage of my website that can contain up to four slides where I can change the background color or add an image. I can add titles, subtitles and buttons to the slide. I can move this module anywhere on the homepage.
A user story like this outlines clearly what the client needs and expects. The product delivered will make sure that this user story is satisfied then.
Definition of ‘done’
Sometimes at the end of a project, there is some discussion over whether a feature is complete. Agile eliminates the gray areas. Not only are the clear requirements and user stories for each individual task discussed, but the collective team, including client stakeholders, determine what the definition of ‘done’ means. It benefits everyone to know that when something is marked as complete; all parties have a clear understanding of what that means.
An example of ‘done’ could mean that the feature has been code reviewed by the project team and confirmed that it meets the acceptance criteria and satisfies the user story. Or an alternative could be that the feature has been code reviewed by the project team, reviewed on the staging server by the product owner and merged to production.
In the example of the carousel, if we went with the latter definition of ‘done,’ that would mean the internal project team reviewed the code and it was approved. This was then passed over to the client to review on their staging server for testing. They would need to confirm that they can, in fact, add the module to the homepage, change the background image and color, add titles, subtitles and buttons to each of the four slides.
Once confirmed, this feature is ready to be merged to production. Once it makes its way to production, then, and only then, can this feature be marked as done. If the feature does not get merged in, this task is incomplete by the definition of done that the team has set at the onset of the project. No arguments will ensue because this is something that has already been agreed upon.
It seems like an oxymoron that a methodology could be both structured and flexible, but agile is just that. It is structured enough to make sure what is delivered meets requirements and is properly marked as complete, but flexible enough that scope can change. This is why both project managers and clients alike use, love, and benefit from agile project management.
If you want to skip the marathon and sprint with us to take advantage of the benefits of agile project management, contact us today!