Having worked on various agile projects for clients in different industries from healthcare industries, public services (follow GDS process), to Fintech and retailing industries. I’m writing this article to share what I learned from these agile projects as a UX designer.
What is Agile?
When people talk about agile, they all have their own opinions about it. However, not everyone knows the original principles of being agile and the stories behind it.
Traditionally companies were using waterfall development methods for software development which is highly structured process originated in the manufacturing and construction industries and extremely expensive to make design changes at the later stage of the development process.
In order to find better software development methods, seventeen software developers met and discussed the lightweight software development methods in 2001. They came up with the Manifesto for Agile Software Development. Here is the original value:
“Individuals and interactions over processes and tools;
Working software over comprehensive documentation;
Customer collaboration over contract negotiation;
Responding to change over following a plan.
That is, while there is value in the items on
the right, we value the items on the left more.”
Principles behind the Agile Manifesto
There are in total 12 principles behind the Agile Manifesto.
“Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity — the art of maximizing the amount of work not done — is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”
Agile VS Waterfall
Comparing with waterfall method, be agile is more flexible and faster. It encourages iterative and incremental design and development, which works better in today’s fast-paced environment in the tech industry.
There are different types of Agile methodologies. Scrum Agile methodology is the most wildly used one.
Here is an illustration of how Scrum Agile works.
Scrum agile team is a cross-functional team without a project manager. It is facilitated by a scrum master who helps the team to remove impediments and make sure the team delivers product goals on time.
It works the best when there are around 6 -10 people in an agile team. Don’t try to scale up the number in the agile team as it won’t work as efficiently as it is with 6 -10 people.
The advantage of agile development
Cross-functional team: It provides the opportunity to work closely with a cross-functional team.
Empowerment: The team members contribute ideas, estimate the effort involved and are responsible together for the delivery of the product.
Transparency and Visibility: The stand-ups and sprint reviews improve the transparency of the design and development process. It provides a richer and more rewarding experience for all the team members to build great software product together.
Faster communication: The communication process is more efficient than traditional waterfall process. In the agile team, designers are able to work closely with developers and product owners. It reduced the communication time between different people as face to face communication is always more efficient than remote meeting or emails. Designers and developers can quickly discuss any design or technical issues on a daily basis.
Flexibility and adaptability: It promotes adaptive planning, and allows you to quickly make any changes while building the product.
The disadvantage of agile development
Things can be vague: It is hard to predict, from timelines to budgets. There is no concrete plan, things remain a bit vague.
Not enough time to design: In the agile environment, there is usually not enough time for designers. Designers work with short deadlines and not enough time to think about the design challenges.
Difficult for remote collaboration: It won’t work well if you have team member work remotely. It is really hard to collaborate with people who are not co-located with others in the agile team. Remote work needs online meetings. However, online meetings usually have issues with technologies such as bad internet connection, background noise in the meeting etc. It costs more time than just a quick face to face chat.
Hard for new joiner: As there is less documentation or no documentation in agile development, it takes more time for new joiners to understand the project and to quickly start working on design challenges. Especially when it comes to specific products such as medical products, accountant products and investment trading products.
Suggestions for designers working on agile projects
Communication is king
It is the most crucial part of agile development. Keep communicating with the product owner, developers and your users. It is the best way to understand business requirements, technical limitations and users needs of the product you are designing. It also helps reduce the misunderstands among the team members and increase efficiency.
Start working on design challenges 1–2 sprint ahead of development
As UX designers, you must plan activities before the sprint occurs, which means being proactive and testing assumptions and tackling designs ahead of the rest of the team.
Avoid creating the design in the same sprint as the development. Work closely with product owner to understand the product backlog, make sure you start work on the design challenges at least 1–2 sprints upfront.
It is important to have these time to come up with good solutions for the business requirements and quickly test them out with some users before implementing it.
Don’t skip user research even in a compressed agile timeline
Agile development is not just about being fast but iterate and build products that users like in a fast-paced environment. Get users involved in the design process and understand what they think about your product is the only way to know if your product works or not.
It is suggested to do user research every 2 weeks. If you have a limited budget, it is ok to have user research less frequently. You can just do the guerilla testing which is a very cheap way of getting users. Or if you are a small startup, you can try to talk with your users through customer support. It is also a great way to talk to users directly and understand their pain points
Doing these user research help designer understand what a first time user’s experiences of the product, and each user’s learning curve of the product.
Work closely with developers
Communicate your ideas with people not just designer, but developers. I have worked with designers who hated working with developers. However, I think work closely with developers is the most efficient way for designers in the agile environment.
Involving developers in the design process earlier on in the design process and get their opinions. It is a great way to understand design feasibility and the technical limitations. It also makes developers feel involved and know upfront what they will build later on.
Get other team members involved in the user research sessions
The best way to get other team members understands users is inviting them to come to the user research sessions. It helps them understand how the users think about the products we designed and built.
Have a basic knowledge of front-end technique
Have worked with different types of designers and developers. I think it is a great advantage for a designer who can understand some front-end techniques.
I believe no matter what professional background you have, it is always good to know other disciplines to communicate better with others.
Don’t create documentation for the sake of documentation
Documentation is important but creates documents for the sake of it is unnecessary.
User research that’s conducted is shared and communicated in lightweight ways with the rest of the team. It is not beautifully polished PPT report.
For example, in one of the projects, I share user insights with team members through 10–15 mins short talks and also have the user research confluence page as the go-to place for team members to find the user insights. We didn’t create a lot of PPTs, instead, we only create documents when it is necessary.
Learning to be okay with shipping something that’s 90% there
Last but not least, as a designer you need to be ok with shipping something that is not perfect.
The design that is delivered in the agile environment usually is not perfect due to limited time or technologies/business limitations. However, it is just MVP, as the sprint goes on, you will get chance to iterate and improve it later on.
Learning to let go of perfection and instead produce fast, iterative work is the biggest challenge. As a designer, you always want to create high-quality work, but you need to be okay with shipping something that’s 90% there and then improving it.
Thanks for reading, I hope you’ve learned something new from it 🙂