It seems like everyone is using Agile to manage projects these days. And chances are that if you ask your professional contacts, you’ll find that some form of Agile is governing their work. At Think Company, we’re often working closely with clients as members of their Agile project teams (both as UX experts and developers). We’ve been able to adapt our Agile methods to help clients successfully launch products while enabling a flexible process for our team.
Below, I’ll share the 5 tips that have helped us to achieve success with Agile.
1. Continuously plan
Planning is a constant in any non-waterfall project. The pace of activity, overlap of work, and ever-changing business requirements all demand ongoing attention. You won’t know every detail in advance, but that’s okay. The goal is to stay on top of planning so that you are always one step ahead of your development efforts.
While it may feel tedious, proper time spent planning up front will pay dividends down the road. A good way to start is to have a planning session with the entire team (product owner, UX, and developers). Use the time to walk through designs and allow the team to probe and ask questions. This session is a good opportunity to uncover areas you may need to research further. This kind of planning also helps you to know what you don’t know (yet) and figure out any risks that this might pose.
Once your project is underway, planning is just as critical. You’ll need to keep an eye on the product backlog and the velocity of work that the team is delivering. As priorities change, understanding the variables you’re working with will help you plan for upcoming sprints and adjust current sprints as needed. You’ll need to continue working with your team to plan, re-prioritize where needed, and set (or reset) expectations. Just when you think you’re done planning, be ready to plan some more.
2. Do what’s right for the product
Sometimes (actually, most times) the “right way” is not the easiest, quickest, or least costly way. That doesn’t mean you should compromise your vision for the core product. Determine the best course of action, assess the impact, and make plans to move forward. Dates change, priorities shift, and the world moves on.
By the same token, a smart product owner knows when it’s time to make a tough call and pull in the reins. There will always be one more feature to squeeze in because it’s a “wow factor,” or because a large client is asking for it. Take a step back to consider what’s most critical and see if there are other ways to accomplish that goal. The path may not look exactly how you envisioned it would, but you’ll likely be able to find a way.
3. Know that the tools you use are only as good as their input
Teams need to understand any processes or workflows associated with the project and what their responsibilities are within them. The last thing you want to worry about are communication issues arising because of missed steps (which can ultimately cause delays). To communicate effectively, make sure your team members are updating their team daily in standup meetings and providing active management of work tickets for ongoing status.
Your team should also be operating consistently and communicating in a timely manner so that it’s easy to track progress. Find ways to provide visibility to those who need it, and remove noise for those who don’t. Dashboards can be a powerful tool to show how work is progressing, and to quickly see any risks (regarding time, scope, or resources) in the project.
4. Have a clear and shared understanding of what “done” is
Because Agile methods vary, “done” can have many different meanings in projects. What one team considers “done” may not match what another team does. To avoid confusion, your team should create a shared definition of what “done” means so that everyone knows when they can consider a feature complete.
If you’re new to Agile, keep the definition simple. “Done” for a feature could be defined by clear acceptance criteria to determine if the user story is complete. The acceptance criteria would contain an explicit list of statements (with a pass/fail) that demonstrates whether the output meets the requirements. Once a feature has been coded and tested, it can be released to the product owner for final review. The product owner will then accept (ideally, in writing) a feature before it’s considered “done.”
5. Keep the end in mind
At some point in your project, you’re going to face tradeoffs. When those situations arise, you’ll need to step back and ask yourself, “what’s the MVP?” (minimum viable product). Be sure you are delivering value—real value—to your customers and your business. If you haven’t done research with customers (tsk, tsk!), don’t spend time creating something they may not want or need. Focus your efforts on what’s going to provide benefit in the short term and on what you can continue to build upon in the future.
While we don’t follow a strict Agile software development process at Think Brownstone, the methods we’ve adapted have proven successful both with internal and client projects. With so many different forms of Agile being used, what works for some may not always work for others, but we’ve found that keeping these 5 tips in mind can lead to success.
What else have you found helpful in managing agile projects? What advice do you have for those new to agile?