Agile in Plain English (Part 3)
Posted May 30, 2010on:
Working in Agile
First, it is important to understand that you are not trying to squeeze UX into an agile process, but rather attempting to make the UX process more agile. This will mean being flexible, innovative, and nimble with established UX techniques.
The role of UX
UX practitioners are most successful in the customer role on an agile team. Remember, that customers mean something different in agile, a customer is not someone who is external to the product team who purchases or uses the product. A customer is a role filled by one or more members of the product team, whose duties include acting as the voice of the end-use for the development team, and helping to prioritize and plan.
The customer defines the software, and determines what stakeholders find valuable. The recommended ratio is 2 customers per 3 developers, this means that there are 2 designers for every developer. Designers can be of any combination: UX, Usability, IA, Visual, IxD – whatever is needed to accomplish the project. The customers most important job is release planning which includes:
- Evangelizing the product vision
- Identifyng features and stories
- Grouping features into small, frequent releases
- Managing risk
- Creating an achievable plan
In order to be able to achieve the above, I would recommend starting with:
- Small, clear, and achievable goals
- Letting go of control, and allowing your team help with some of the activities
- Get “good enough” information, and continue to learn throughout the entire project, rather than trying to figure out everything up font
- Be honest with yourself and work towards continual improvement
The process that has worked best for me was first described by Desiree Sy
The structure basically asks you to:
- Gain initial insights through a short up-front discovery stage
- Get just far enough ahead of development that you are not a bottleneck
- Continually talk to users every iteration to get feedback and more in-depth insights
- Start rough and refine as you go along. utilizing lightweight techniques like sketching
- Establish a clear vision that you are working towards and iterate on the vision as you learn more information
It is important to understand that none of these activities are happening in a bubble, you as the designer are not going off to complete the work and then presenting a finalized design. Rather, you are sketching, concepting, and getting feedback from your entire team along the way. The feedback can be informal or a design critique.
Also, working in this rhythm or cadence will feel uncomfortable at first, and you might have the urge to resist, but stick with it and allow this rhythm to become the “new normal”.
Here are some common objections/questions that I often hear from designers and quick answers:
1) How many projects should a UX designer be on if the company adheres to an agile process?
Answer: ONE. Agile is specifically designed around the team dynamics, and its difficult or impossible to create the proper rapport if you are not sitting and working with the team.
2) Agile methods do not provide enough time for UX practitioners to conduct necessary research and discovery.
Answer: Agile methods do not provide enough time upfront to conduct research, the methodology assumes that you are doing the research and discovery on a continual basis, in every iteration. This not only helps keep the information fresh in your mind, but also allows you to dig deep into questions that arise once you start really trying to solve the problem (later in the project), rather than identifying the problem (as in the beginning of the project)
3) If I break up my design into pieces that can be fit into an iteration, it is difficult for me to picture the holistic system
Answer: Sketch your initial understanding of the holistic system using a storyboard, then begin to dive deep into the parts of the system that are prioritized for the upcoming sprint. Your understanding of the system will change over time, so utilize a low-fidelity medium to capture your current understanding and then update as it – and your understanding – changes.
4) Some designs are too complex to fit within one iteration
Answer: Break large designs into small, cycle-size pieces called design chunks that incrementally add elements to the overall design over several iterations. Whenever you design, you have to start somewhere, start in one iteration and incrementally add complexity / layers in subsequent iterations.
5) There is not enough time to conduct formative usability testing and then create a usability report.
Answer: Employ light-weight usability techniques, and progressively engage in defining test protocols and recruitment.
6) Working software over comprehensive documentation means no more wireframes or mockups
Answer: Use the tools that will help you and your team produce good work. There is no set “way” to do thing, figure out how best to communicate with your team, and which tools help you produce great work in an efficient way, then just do it!