In web development, the age old saying, ‘change is the only constant,’ rings true. No two projects are the same, and you can almost guarantee that the project you scope out in the beginning is not the outcome you’ll end up with.
Being able to respond and adapt to change is not only imperative; it's why we love this industry—it’s constantly evolving. But embracing change in a web development project can be hard to plan for, costly, and can cause delays that frustrate the client and team. I'm sure many of you reading this have experienced the dreaded 'scope creep.'
Enter the Agile methodology—a popular approach to software development that has more recently been embraced by agencies. The iterative approach of Agile allows for flexibility, speed to market, and an open-mindedness to change. But how do you know if it's the right fit for your business? In this article, we’ll look at the what, why, and how to leverage an Agile approach for your projects.
You might also like: 3 Organizational Strategies to Prevent Scope Creep.
What is Agile?
The Agile methodology is an iterative approach to the execution and management of a project from start to finish. Centered around the philosophy of the Agile Manifesto, it has inspired multiple complementary methodologies, including Scrum and Kanban.
Rather than the traditional approach of planning upfront and completing a project in sequential phases, an Agile process is cyclical, whereby a project is undertaken in small increments which are regularly tested and adapted. It looks a little bit like this:
Traditional (often referred to as the Waterfall approach):
And an Agile approach:
Perhaps the biggest drawcard of the Agile approach is that it embraces change with open arms. For Shopify Plus Partner Arkade in Australia, being open to discoveries and opportunities along the way has resulted in better outcomes for their clients.
“One of the most significant benefits of Agile is that by accepting that the ‘plan’ can change, we can constantly re-prioritize the features and initiatives we invest in to deliver the greatest value,” says Danny Philips, Arkade’s co-founder and director.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
For Arkade, these 4 values align closely with their own. “There’s plenty of merit in documentation and processes, but we always prefer the human approach to how we work and who we’re doing the work for,” says Danny of Arkade. “In the end, we’re working for our clients’ customers.”
For Shopify Expert Zyber in New Zealand, data driven strategies are at the core of their business, making an Agile approach an appropriate fit for their projects. "Regularly testing and adapting allows us to better engage with our clients and clearly demonstrate where their hard earned money should be spent on their business," says Leonardo Garcia-Curtis, General Manager of Zyber.
Let’s dig a little deeper by looking at the components that make up an effective Agile project.
(Please note that some of these terms/concepts may apply to specific frameworks such as Scrum. If you’re interested in learning more about the various approaches, the Agile Alliance provides valuable resources and more in-depth information.)
You might also like: Selling a UX Design Process That Ensures Results.
1. Highly collaborative, cross-functional teams
The best architectures, requirements, and designs emerge from self-organizing teams.” Principle 11 of the Agile Manifesto.
In an Agile project, a project team is assigned and dedicated from the outset, and rather than being siloed with handovers at each stage, the entire team owns and carries out the project collectively, across disciplines (design, development, QA, etc).
The best architectures, requirements, and designs emerge from self-organizing teams.
Agile teams are typically small in size, but efficient and self-directed—goodbye to micro-managing.Team members are accountable to each other and the client, who is often heavily involved throughout the project duration.
2. Early, regular releases
“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” Principle 1 of the Agile Manifesto
Development is carried out in short, fixed-length iterations (usually in 1 to 3 week blocks, or ‘sprints’). After each sprint, work is tested and released. After gaining feedback, priorities are reviewed and reorganized before moving on to the next sprint.
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
3. Regular check-ins and reviews
“Business people and developers must work together daily throughout the project.”Principle 4 of the Agile Manifesto.
A typical trait of an Agile project is a daily meeting, or ‘standup’. Throughout the duration of the project, the whole team—which may include the client—rallies daily for a quick status check-in. This is a short meeting covering what the team did the day before, what they’re doing today, and any roadblocks holding them up.
Business people and developers must work together daily throughout the project.
Additionally, at the end of each sprint, teams review their effectiveness in the form of a client demo and team retrospective, and adjust accordingly.
You might also like: What Are Design Sprints and Should You Be Running Them?
Pros and cons of agile
Agile is a highly functional methodology, but it's not appropriate for every company or project. Let's break down some of the pros and cons associated with an Agile approach.
The pros of Agile
Agile has a number of pros that make it an attractive option for agencies. This includes:
1. Strong team and client collaboration
Some of you may shudder at the thought of having clients heavily involved, but this can be a great thing—with full transparency and context, it’s easier to get buy-in on decisions, and lowers the chances of curveballs late in the day. For your team, direct contact with the client can help build empathy for their business and users. In addition, strong team collaboration helps keep everyone aligned and can be a great boost for team morale.
"We’ve found that the Agile approach allows our teams and our clients to work together as one" says John Gabriel, co-founder and director of Arkade. “This leads to a greater level of collaboration and appreciation for the value we want to achieve together. It also gives the team at our end greater ownership over the solution design.”
2. Time to market
Another great benefit of Agile is the time to market. Rather than building out the whole project in one go, this approach allows you to get a basic version launched quickly (often referred to as an MVP, or minimum viable product), and launch more features over time.
“Clients love how quickly the features can be rolled out, especially when we’re talking weeks and not months," says John. "We focus on delivering to end users as soon as possible, which in turn allows us to drive iterative improvements to the product in market, based on insights gathered from our clients’ customers.“
3. Early, regular testing and feedback
With an Agile approach, testing and feedback happens early and regularly, which can help in reducing risk.
Finally, Agile embraces change. By regularly releasing features in small increments and re-prioritizing, it’s easy to pivot and change direction should opportunities or discoveries arise during the project.
"It's great to be able to jump on new opportunities we may not have thought of in the past," says Leonardo of Zyber. "By being flexible and continuously working with our clients, they feel involved in the process and trust that decisions are based on what is most important to their business."
The cons of Agile
If not managed effectively, Agile projects run the risk of causing discomfort and uncertainty for the client, and friction for the team.
By working incrementally and regularly redefining the scope, it can be hard to decide when a project is ‘finished’ (particularly with the client involved), and it can be easy to blow the expected budget. In addition, being iterative without considering the full picture may lead to additional reworking and costs later down the track.
Agile requires a dedicated, focused team and a significant commitment from the client. This isn’t always feasible, particularly for smaller agencies who may be working on a number of projects at a time.
3. Team structure
Overall, Agile is only as good as its team. Not all teams are set up to work well in an Agile environment. A deep understanding of the Agile methodology, clear role definitions, and buy-in are all necessary for the success of Agile projects.
When should I choose Agile?
Knowing whether an Agile process is the right fit for your agency is not a light decision. A good rule of thumb is that if the types of clients or projects you usually work on have open-ended requirements or high complexity, then the flexibility of Agile could be your best bet.
On the flipside, if the scope of your projects are fairly concrete—the client knows what they want and are unlikely to have major changes in scope—then go for the stability of a traditional (or Waterfall) approach.
You might also like: Improve Your Design Process With These 4 Deliverables.
Introducing Agile to your workplace
Turning your team and clients on to this method can be a big undertaking, and requires full buy-in from all parties to succeed. That said, there are ways you can dip your toes in the water by taking on elements of an Agile approach, before jumping in head first.
This could look like:
Running daily standups. Getting into the habit of running 15 minute daily standups with the team and client can help build up collaboration.
"With daily standups, everyone knows what their goals are before the end of the day. If those goals are not met, it adds pressure not just to the individual but also to the entire team," says Leonardo. "We all strive to succeed...and we all want to go home on time!"
- Running an internal pilot project to test how Agile works for your business. A good test could be redoing your own company’s website.
Adopting Agile for certain phases of a project. For example, initial planning is done upfront, and development is carried out iteratively, with regular testing and re-prioritizing.
- Providing your team with plenty of resources and training to get on board. The Project Management Fundamentals course in Shopify’s Partner Academy is a great start. For more comprehensive training, courses and certification are available (such as the Agile Alliance).
Ready to try Agile?
When well executed, an Agile approach can result in a better end product, a highly aligned team, and a happy client. As with any project approach, the key to success is communication, both internally and with the client. Educating your client on the process, their role and your expectations is crucial.
Have you tried the Agile process in your workplace? Tell us your experience in the comments below!