Finding time for the creative exploration process within Agile software delivery
When I first started working in an Agile environment I was excited to have finally reached the land of opportunity.
I was well aware of the problems with Waterfall. The big-upfront design phases. The painful stakeholder reviews. Having to endlessly review and revise wireframes. Countless annotations explaining every microscopic detail. Pesky developers not building things as specified.
I thought all these problems would magically disappear with Agile. All of a sudden developers would become my best friends. My wireframes wouldn’t need to be anywhere near as detailed. Document version numbers would stop getting in to double figures. My designs might get launched in the same year I created them.
However, I soon realised that these things didn’t just happen automatically. Agile opens up an exciting new way of working for designers, but it also presents a new set of challenges. To experience the benefits I had to adjust the way I worked.
These are some of the challenges I’ve faced and adjustments I’ve learnt to make to my UX practice along the way.
Challenge #1: Not having time to explore ideas and find innovative solutions
In the Agile software development world dedicated design time becomes a precious commodity. The traditional user-centered design approaches start to encounter problems. Taking the time to conduct in-depth user research, analyse the findings, write them up, and then design an extensive solution is an expensive luxury that is rarely affordable.
It’s hard to take the time when a team of developers is waiting for to you to finish so that they can start. As a UXer it feels like you have a steamroller bearing down on me while you’re screaming: ‘Stop, I need to explore more ideas!’
Challenge #2: Feeling like time spent exploring ideas is a waste when you’re trying to be Lean.
The traditional creative process involves playing with designs and seeing where they lead. More often than not the designs themselves get discarded, but the learnings from them fold back in to the overall solution.
Once you start to embrace a Lean way of thinking, taking the time to play around with different options, then discarding them can feel like your deliberately wasting time.
This test and learn approach is actually a core part of Agile, but we just have to adjust to do it in a different way.
Challenge #3: Getting out of the deliverable business.
Our traditional approach of producing shiny, all-encompassing deliverables doesn’t work in an Agile process. Not only do you not have the time but the documents are usually out-of-date before you finish them.
On the flip side, it’s not just a matter of producing lots of low-fidelity prototypes and then handing them over to developers. There can still be communication breakdowns.
We need to use prototypes as a communication tool, not just a deliverable.
We need to get out of the deliverables business.
Adjusting our practice
All of these challenges can be overcome. We just need to adjust our practices to get the most out of the Agile process. We need to focus on the value we deliver, not just the outputs. Once we do, we’ll find that it actually improves our ability to create awesome experiences.
These are some of the ways I’ve learnt to adjust my practice to be a better designer.
Adjustment #1: UX as a facilitator, not just a designer.
Change the way you see your role in the team. We need to let go of control of every little detail and empower our team. We need to use our research skills to take the team on a journey of understanding and empathising with the user.
We need to become an Information Radiator. Not the sole source of knowledge. Give everyone the knowledge required to build a great product that meets the needs of the target audience. There will still be plenty of design work required by you as a designer, but you will be able to start sharing the load.
Adjustment #2: Design as a continuous activity.
Other fields are embracing the “Continuous” approach. Product management is embracing the Lean Startup movement. Launching a MVP, testing and proving a proposition, then continuing to evolve it.
The development community is doing Continuous Delivery to make this possible.
The ability to release software regularly (i.e. daily rather than a few big releases a year) is allowing teams to reduce feedback cycles. Testing and learning rapidly.
As designers we need to embrace this mindset. We need to change our approach to embrace the benefits of this. Shortening our feedback cycles. Learning quickly. Finding out what experiences work and building on them.
Adjustment #3: Do just-enough, just-in-time.
Just-in-time design does what it says in the tin. Don’t try to do everything upfront. Start by sketching a vision, then figure out the details as you go. Make decisions at the last responsible moment.
Change is relentless. If you do too much upfront, the requirements will probably change by the time you get your designs out there.
Tools & Techniques
These are some of the tools and techniques I’ve been using to make these adjustments to my practice.
Collaborative design workshops
To start projects, run collaborative design workshops with stakeholders and the Delivery team. These involve getting everyone in a room and sketching out their ideas about what the product should/could be.
Put it all up on a wall where anyone can see and contribute to it. This creates a sketchboard – a lightweight shared vision of the product, which everyone is bought in to as they contributed to it.
This shared vision can inform the story writing process when kicking off projects. The sketches can also quickly be turned in to prototypes to test and validate the team’s ideas.
Use Iterations to shorten your feedback loops
The iteration cycle allows us to shorten our feedback loops. Each iteration allows us to design and build something new, quickly turning design ideas into working code. These functioning ideas when can then be tested, validated and improved. We no longer have to wait months/years to see if our design works, we can do it immediately.
Problems throwing things over the wall? There shouldn’t be one in the first place. Co-locate yourself with and become part of the development team. Multidisciplinary teams all working in the same place sharing ideas is a key principle of Agile. You don’t need to waste time typing up emails when you can have a quick conversation.
This also allows us to open up the kimono. Lots of developers have never worked with a UXer before. They want to learn to work with us as well. Co-location naturally allows for this to happen.
As the details start to emerge turn your Sketchboard in to a Design Wall. Fill in the details of your vision as you go.
Claim space alongside the Project team’s card wall. Put our wireframes/visual designs on the wall. This will ‘radiate’ details of the UX design and become a source of truth.
Do just enough, just in time. Don’t aim to capture every detail upfront. Capture just enough, and then have a conversation. Sometimes a paper sketch is enough, others a hi-fi mock is required. It’s the conversation that is important. The closer you can get to designing in code the better.
Conducting lightweight research
Bring user feedback in to the team as often as you can. Go guerrilla. Run three sessions every Friday, or every iteration. Make it easy for the team to watch. Capture you findings on Post-it notes, not in PowerPoint.
Often you can put the findings in to action straight away if the team is still working on the feature.
Add usability fixes to the backlog
If you can’t act on usability fixes straight away, become part of the Agile process and prioritise usability fixes like everything else. Write up stories for them and add them to the backlog. The Product Owner can make an informed decision about whether to prioritise them, or build something new. This helps avoid the tension of us designers trying to squeeze small fixes in to the workload in an unstructured way.
Creating great experiences
Some of these Agile ideas aren’t too dissimilar to existing UX techniques, often they just have a different name to what we usually call them. Some principles can be easily applied to the design process, with just a bit of willingness to learn and adapt.
As designers, Agile provides us some great lessons and opportunities to work in better ways. At the same time we can add value to the process as well. Our ability to visually communicate ideas and share a vision helps drive the process and provide a customer focus which can often be lost in the mix of delivery activities.
They key goal is have an entire team collaborating together, finding ways to combine their skills and talents together to create great experiences.
This post is based on this presentation Agile UX conference presentation.