How to Succeed as a Designer on Agile Teams: Embrace Imperfection

- 545 shares
- 11 mths ago
Agile design is a flexible and iterative approach that applies Agile principles to the realm of design and user experience. This methodology comes from the Agile framework, which emphasizes adaptability, collaboration and customer feedback. Agile design diverges from traditional design processes as it incorporates a mindset of managing unpredictability and complexity in project environments.
UX Designer and Author of Build Better Products and UX for Lean Startups, Laura Klein explains why Agile methods emerged in design:
About a little over a year ago, I got bored and decided to start a fight on Twitter; you know – as you do; as I do. And I asked Design Twitter, "What do you hate about agile?" And then just to kind of kick the hornet's nest a little more, I asked product folks the same thing, and I got a few responses! I got kind of a lot of responses, actually, and some of them were really interesting, and a lot of them were really similar, and the complaints all seemed to fall into these few different categories.
But the biggest similarity was that *none of the things* that people were complaining about *seemed particularly agile* to me – at least, I mean they weren't the kind of agile teams that I had been on or led, and I got kind of interested and I ended up having these more in-depth conversations with a bunch of folks. So, I did more research because – you know – *of course* I did; I am a user-centered designer – kind of my thing. For this research, we got people to tell us stories about their teams,
and what they considered agile to be, what worked, what didn't, what they loved, what they hated, especially what they hated, because those are always the most fun stories. They're also why I won't be identifying any of the research respondents by name here. They were all promised confidentiality, and I don't burn my sources. Anyway, I got stories from literally hundreds of people, and again I had more in-depth conversations with lots of them, trying to get sort of a range of folks. I didn't just talk to designers. I talked to product people, engineers, some folks at agencies, big companies, small companies, obviously designers.
I even talked to people working in governments. What I *rarely saw* was something that I would describe as *an actually agile team*. I started working with the Interaction Design Foundation to write a course for new designers. And I decided to write a course about designing for agile teams because based on their research it was something that *their* students had been asking for for a bunch, and it turns out the designers I had chatted with weren't the only ones who had trouble figuring out
how to design on agile or agile-ish teams, which is not surprising.
Agile design is a dynamic approach to design work that values flexibility, collaboration and customer feedback. It is valuable for UX (user experience) designers in various ways. This process integrates UX design in Agile methodologies and enables teams to iterate quickly on design projects in alignment with Agile development and UI/UX design principles. When organizations adopt Agile and UX design, they can create user-centric products that they can adapt to changing requirements. They can also enhance the UX design Agile process as they work in well-informed, frequent design sprints.
The Agile design process is cyclical and iterative.
© Interaction Design Foundation, CC BY-SA 4.0
Agile methodology in the UX design sense involves a cycle where design and product teams who take an Agile approach face uncertainties, propose solutions, obtain feedback and make necessary adjustments. This iterative process is crucial in Agile design. It lets design teams evolve their work continuously as they respond to real user feedback and adapt to changing project requirements for a product or service they intend to develop or improve. Various Agile methods like Scrum, Kanban and Scrumban provide structured yet flexible environments that support this dynamic approach to design and development projects.
Scrum is a framework for Agile project management to assist teams in structuring and managing work.
Kanban is an Agile workflow management method for managing and improving work systems.
Scrumban merges two main Agile methodologies, Scrum and Kanban, into one process to tackle projects.
An example of a Kanban board, complete with tasks in progress, pending matters and completed work units.
© Interaction Design Foundation, CC BY-SA 4.0
Agile methodology is not just a framework but a mindset that embraces change and uncertainty. The Agile movement stems from the Agile Manifesto of 2001. It also incorporates Agile development. The Agile Manifesto emerged to challenge the traditional Waterfall process of product design where teams work in silos and hand over to other teams and departments on completion of their share of a project for a final product. Agile embraced new principles such as customer collaboration over contract negotiation.
Laura Klein explains why Agile tried to replace Waterfall:
In order to really understand Agile, it's important to know what Agile *isn't*. Agile didn't just appear from a vacuum; it was a reaction to the way software was being written in the '80s and '90s. Back then, most of us did something called Waterfall. I mean, Waterfall was really the best-case scenario because sometimes there was absolutely no process at all. But when there *was* a process, it was often Waterfall. And even Waterfall had a lot of different versions, but we're going to look at the most optimistic one that actually... included some design.
When you look at Waterfall, it makes some sense. Somebody, probably a product manager, comes up with an idea for what needs to be built and presents some requirements. These could take a lot of different forms, but frequently they were in something called a product requirements document, or a PRD, or sometimes a marketing requirements document (MRD). These were frequently *extremely long* documents with a *lot of detail* about what a product should do. In the best-case scenario, that detail was drawn from research and an understanding of the needs of
both the user and the business ... and in reality, maybe not quite so much. Once the product managers were done, then we entered the design phase. Now, design was often its own little sort of mini Waterfall, but again, in the best cases, it was a good, solid user-centered design process – one that you're hopefully familiar with. It involved lots of user research to understand users in their context and lots of ideating and iterating and prototype testing and all of that good stuff. In the worst cases, well, we drew a lot of pictures of things that would never get built, to be honest.
The thing is that with these long cycles, the requirements gathering and design process could last *a while* – almost always months, sometimes a year; it depended on how big the product was. And a lot of times this was all before a single line of code got written. That's because when you look at Waterfall, each little drop-off is really what's called a *staged gate*. What that means is that after the process happened, the requirements document or the design or whatever,
there would be a review process of the output before it moved through the gate to the next step. Development couldn't happen before design ended, because the design had to be fully vetted before resources were committed to building. After all, you wouldn't want to spend a lot of money writing code if everything was just going to change, right? Again, this all sounds really reasonable – everybody agrees what we're building before we start building it. Who could be against this? Well, we're not done yet! Since requirements gathering was done *before* the design process, often things would show up in the design phase that invalidated something from the requirements doc.
Maybe something changed in the six months that product management took to write up 300 pages. Maybe we learned new information in user research... who can say? Things change – which meant going back to redo the requirement ... and then back again once the requirements were fixed. Also, since design worked *independently* of engineering most of the time, even after the design phase was "over", it was not unusual for engineers to send the "finished" designs back with a nasty note saying, "This is a pipe dream and will take us 400 years to build." or
something like that. That's always what it sounded like to me, anyway. The same thing happened with quality assurance team at the testing step, except they would just file bugs for the engineers to fix. Anyway, what all of this means is that the diagram often looked more like this. And it took a really, *really* long time. In a lot of cases, there wasn't any way to get around this process since at the end of the waterfall, we'd be printing a bunch of CD-ROMs or even putting things directly into hardware, so there was really no going back and fixing stuff later like you can with internet-connected software.
The real problem, though, lay in the *complete separation of the departments*. Engineering often didn't get much input into the process until requirements were already set, despite the fact that requirements could be drastically affected by engineering decisions and requirements sometimes changed, even from the time that the 300-page document was written and approved to when the engineers finished working on it. In other words, market forces could change or we could learn things from the users or the engineers would find some really hard problem that couldn't be solved, and then *everything* had to be changed
because it was incredibly hard to change one thing in that 300-page document without everything cascading ... because of *the waterfall* – get it? If something on page 28 changed, it meant that everything from page 29 to 300 *also* needed to change, and that was what we liked to call an enormous nightmare. Let's not even talk about feature creep, which happened when people from step one realized that they'd forgotten a whole bunch of stuff and tried to squeeze it in around step three or four, causing
the requirements to balloon out of control, and all of the deadlines – which were ridiculous in the first place – would just get missed. Anyway, is there really any wonder why the engineers of the time might be interested in something a little bit more flexible – something where maybe every single decision didn't get made up front and then changed later; something where we *admit that we don't know everything*, so we're not going to bother trying to specify everything out to the last bit and byte, and we're going to build some stuff and get *feedback and adjust as we go*. Throw in the fact that around this time websites and web applications were really starting to take off;
and it was getting a lot easier to get feedback directly from customers and make *continuous changes* rather than having to chisel everything into stone before packaging it all up and sending it to the store to sit on shelves – which is how people used to buy software; I mean, not the stone part, but the store part. Obviously, this wasn't everybody's experience of Waterfall. Between you and me, a lot of really good stuff has been built Waterfall-fashion – it's not a horrible system. In fact, most physical products and large civic projects like bridges and skyscrapers are built in a *mostly* Waterfall fashion.
But it's also not surprising that a lot of high-level engineers were not huge fans of it and they'd come up with something that was significantly less frustrating for them. And it's *really* not surprising that it would catch on.
Software development teams particularly saw the need for a high level of response and iteration during the product development process. With its emphasis on sprint planning, close cross-functional team collaboration and more, Agile soon offered something different. Teams who worked on software projects found they could enjoy tighter and more timely control over their software development process. For example, as they worked and met in frequent intervals called design sprints, they were able to discover and meet product requirements as these came to light through iterations.
In practice, Agile design is about more than just following steps; it's about fostering a culture of collaboration and continuous improvement. Design teams work closely with other departments like development and marketing to ensure that the design not only looks good but also works well and meets strategic business objectives. Several factors enhance this cross-functional collaboration. They are regular meetings and feedback loops. These are integral components of Agile methodologies that help keep projects on track and aligned with user needs and business goals.
To implement Agile design effectively requires a shift in thinking from a traditional, rigid process to a more fluid and adaptable approach. It challenges teams to embrace uncertainty and use it as a catalyst for innovation and refinement. As such, Agile design can lead to products that not only meet but exceed user expectations. Agile teams can provide solutions that are both innovative and highly tailored to user needs via dynamic sprint-oriented approaches to their design and development work.
A dynamic and collaborative nature is a signature of Agile design teams. This is an essential quality to foster an environment where flexibility and rapid iteration are priorities. It’s also a vital requirement for product managers, or team leads, to ensure throughout the design process.
Agile teams are inherently self-organizing. This means they have the autonomy to make decisions and manage their workflows without strict oversight. This increases their authority and responsibility. It also enhances their ability to respond swiftly to changes. The structure of these teams is cross-functional. It allows members from different disciplines such as UX design, software development and quality assurance to work closely together. This setup not only fosters a deeper understanding and appreciation of each other's roles. It also encourages skill sharing and personal growth within the team.
Laura Klein explains the value of cross-functional teams in Agile:
Cross-functional teams, unlike silos, have all the people necessary to build a specific thing together. Let's look at an example. Imagine you're on a team that is supposed to build the onboarding flow for a new app that helps connect job applicants with jobs. You can't build the whole thing with just designers. Or with just engineers, for that matter. I mean, you probably could do it with just engineers, but it's a terrible idea.
A cross-functional team for this onboarding work might include a few engineers, perhaps some for the front end and some for the back end. Might include a designer, a researcher, a product owner or manager, maybe a content writer or a marketing person. In an ideal world, all of these folks would only work on this particular team. In the real world, where we actually live, sometimes folks are on a couple of different teams and some specialists may be brought in to consult. For example, if the team needed help from the legal department to explain some of the ramifications of a specific decision,
a cross-functional team would have a dedicated legal expert they could go to. But that legal expert might also work with lots of other teams. In agile environments, the cross-functional team generally sits together or if remote, has some sort of shared workspace. They all go to the required team meetings. They understand the goal of the team and the users. They're experts, or they soon become experts, on that onboarding flow. Contrast this to how it might be done in a siloed environment. In that case, you might have different people assigned to the team depending on need, which can seem really flexible.
Until you realize that you end up with five different designers working on the project all at different times and they all have to be brought up to speed and they don't really understand why the other designers made the decisions that they did. Same with the engineers. And do not get me started on legal. Silo teams tend to rely more on documentation that gets handed between groups. And this can lead to a waterfall project where project managers or product managers work on something for a while to create requirements, which they then hand off to designers who work on designs for a while
and then they pass the deliverables on to engineering, who immediately insists that none of this will work and demands to know why they weren't brought in earlier for consultation. You get it. By working in cross-functional teams instead, the people embedded on the project get comfortable with each other. They know how the team works and can make improvements to it. They come to deeply understand their particular users and their metrics. They actually bring engineering and even design and research into the decision making process early to avoid the scenario I described above.
An Agile design team typically includes several key roles, each with distinct responsibilities:
Team lead (Scrum master): Facilitates the team's process, organizes tasks and ensures that the team adheres to Agile practices. A team lead acts as a coach to empower the team and help remove obstacles that may hinder their progress.
Product owner: Represents the client's interests and focuses on the business side of product development. They maintain the product backlog, prioritize tasks based on business value and ensure that the team's deliverables meet the customer's needs.
Team members: This group includes professionals with various expertise—developers, designers, testers and more. They are responsible for executing tasks and creating the product. Each member brings their specialized knowledge to the table. They therefore contribute to a well-rounded and competent team.
Stakeholders: Although not involved in the day-to-day activities, stakeholders play a crucial role as they define the project's scope and objectives. They provide essential feedback that influences the project direction. They are key to the project's overall success.
In practice, Agile principles guide the interaction among these roles. Such principles include continuous improvement and responsiveness to change. Regular meetings, such as daily stand-ups and sprint reviews, are crucial to ensure all team members align with the project goals. These gatherings allow for timely updates and immediate feedback. They foster a transparent and communicative environment.
Moreover, Agile design teams often utilize tools like the Agile Team Roles matrix or RACI (Responsible, Accountable, Consulted, Informed) matrix to clarify each member's responsibilities and ensure there are no gaps in the team's capabilities. This proactive approach helps to balance the team's workload and streamline communication. It’s vital for the Agile design's iterative nature.
An RACI Matrix helps identify who does what.
© Interaction Design Foundation, CC BY-SA 4.0
When organizations understand the diverse roles within an Agile design team and how they interconnect, they can better structure their teams to enhance efficiency and innovation. This setup not only supports a high-performing team. It also leads to products that truly resonate with users. It therefore helps achieve business objectives more effectively.
Agile design practices allow for continuous adaptation to changing requirements. This adaptation is crucial in dynamic project environments. Such flexibility ensures that the product evolves with the user's needs and market demands. It also maintains relevance and effectiveness.
As it emphasizes teamwork and regular feedback, Agile design fosters a collaborative culture. Designers, developers and stakeholders engage frequently, which enhances understanding and alignment on project goals. This continuous communication helps them to identify potential issues early and find quicker resolutions.
Agile design prioritizes user feedback and involvement throughout the design process. This approach helps teams to create products that truly meet the users' needs and expectations. It therefore increases customer satisfaction and loyalty.
Agile methods support the quick creation of prototypes and encourage regular testing. This not only speeds up the development process but also ensures that teams test their products in real-world scenarios. This enhances the quality and usability of the final deliverable.
Author and Human-Computer Interaction Expert, Professor Alan Dix explains prototyping:
So, why do you need prototyping? Well, we never get things right first time. It's about getting things *better* when they're not perfect and also *starting in a good place*. Maybe if I'm going to make a wall for a house, I know exactly how big the wall should be. I can work out how many bricks I need. I can make it exactly the right size.
So, I can get it right first time. It's important to. I don't want to knock the wall down and retry it several times. However, there I have a very clear idea of what I'm actually creating. With people involved, when you're designing something for people, people are not quite as predictable as brick walls. So, we *don't* get things right first time. So, there's a sort of classic cycle – you design something, you prototype it,
and that prototyping might be, you might sort of get a pad of paper out and start to sketch your design of what your interface is going to be like and talk through it with somebody. That might be your prototype. It might be making something out of blue foam or out of cardboard. Or it might be actually creating something on a device that isn't the final system but is a "make-do" version, something that will help people understand.
But, anyway, you make some sort of prototype. You give it to real users. You talk to the real users who are likely to be using that about it. You evaluate that prototype. You find out what's wrong. You redesign it. You fix the bugs. You fix the problems. You mend the prototype, or you make a different prototype. Perhaps you make a better prototype, a higher-fidelity prototype – one that's closer to the real thing. You test it again, evaluate it with people, round and round and round. Eventually, you decide it's good enough. "Good enough" probably doesn't mean "perfect", because we're not going to get things perfect, ever.
But "good enough" – and then you decide you're going to ship it. That's the story. In certain cases in web interfaces, you might actually release what in the past might have been thought of as "a prototype" because you know you can fix it, and there might not be an end point to this. So, you might in delivering something – and this is true of any product, actually – when you've "finished" it, you haven't really finished, because you'll see other problems with it, and you might update it
and create new versions and create updates. So, in some sense, this process never stops. In one way, it's easy to get so caught up with this *iteration* – that is an essential thing – that you can forget about actually designing it well in the first place. Now, that seems like a silly thing to say, but it is easy to do that. You know you're going to iterate anyhow. So, you try something – and there are sometimes good reasons for doing this –
you might have *so little* understanding of a domain that you try something out to start with. However, then what you're doing is creating a *technology probe*. You're doing something in order to find out. Of course, what's easy then to think about is to treat that as if it was your first prototype – to try and make it better and better and better. The trouble is – if it didn't start good, it might not end up very good at the end, despite iteration. And the reason for that is a phenomenon that's called *local maxima*.
So, what I've got here is a picture. You can imagine this is a sort of terrain somewhere. And one way to get to somewhere high if you're dumped in the middle of a mountainous place – if you just keep walking uphill, you'll end up somewhere high. And, actually, you can do the opposite as well. If you're stuck in the mountains and you want to get down, the obvious thing is to walk downhill. And sometimes that works, and sometimes you get stuck in a gully somewhere. So, imagine we're starting at this position over on the left. You start to walk uphill and you walk uphill and you walk uphill.
And, eventually, you get onto the top of that little knoll there. It wasn't very high. Now, of course, if you'd started on the right of this picture, near the *big* mountain, and you go uphill and you go uphill and you go uphill and you get uphill, you eventually end up at the top of the big mountain. Now, that's true of mountains – that's fairly obvious. It's also true of user interfaces. *If you start off* with a really dreadful design and you fix the obvious errors,
*then you end up* with something that's probably still pretty dreadful. If you start off with something that's in the right area to start with, you do better. So, the example I've put on the slide is the Malverns. The Malverns are a set of hills in the middle of the UK – somewhere to the southwest of Birmingham. And the highest point in these hills is about 900 feet. But there's nothing higher than that for miles and miles and miles and miles.
So, it is the highest point, but it's not *the* highest point, certainly in Britain, let alone the world. If you want to go really high, you want to go to Switzerland and climb up the Matterhorn or to Tibet and go up Mount Everest, up in the Himalayas, you'll start somewhere better, right? So, if you start – or on the island I live on, on Tiree, the highest point is 120 meters. So, if you start on Tiree and keep on walking upwards, you don't get very high.
You need to start in the *right* sort of area, and similarly with a user interface, you need to start with the *right* kind of system. So, there are two things you need for an iterative process. You need a *very good starting point*. It doesn't have to be the best interface to start with, but it has to be in the right area. It has to be something that when you improve it, it will get really good. And also – and this is sort of obvious but actually is easy to get wrong – you need to understand *what's wrong*. So, when you evaluate something, you really need to understand the problem.
Otherwise, what you do is you just try something to "fix the obvious problem" and end up maybe not even fixing the problem but certainly potentially breaking other things as well, making it worse. So, just like if you're trying to climb mountains, you need to start off in a good area. Start off in the Himalayas, not on Tiree. You also need to know which direction is up.
If you just walk in random directions, you won't end up in a very high place. If you keep walking uphill, you will. So, you need to *understand where to start* and *understand which way is up*. For prototyping your user interface, you need a *really rich understanding* of *your users*, of the nature of *design*, of the nature of the *technology* you're using, in order to start in a good place. Then, when you evaluate things with people,
you need to try and *really deeply* understand what's going on with them in order to actually *make things better* and possibly even to get to a point where you stand back and think: "Actually, all these little changes I'm making are not making really a sufficient difference at all. I'm going around in circles." Sometimes, you have to stand right back and make a *radical change* to your design. That's a bit like I'm climbing up a mountain
and I've suddenly realized that I've got stuck up a little peak. And I look out over there, and there's a bigger place. And I might have to go downhill and start again somewhere else. So, iteration is absolutely crucial. You won't get things right first time. You *alway*s need to iterate. So, prototyping – all sorts of prototypes, from paper prototypes to really running code – is very, very important. However, *crucial to design is having a deep and thorough understanding of your users*,
*a deep and thorough understanding of your technology and how you put them together*.
One of the standout advantages of Agile design is the increased transparency throughout the project lifecycle. Regular sprint meetings and progress assessments provide stakeholders with a clear view of the project status at any point in time. This visibility allows for better risk prediction and management. Team members can identify potential issues and address them promptly. Also, the iterative nature of Agile design means that teams can continually reassess and mitigate risk. This significantly reduces the likelihood of project failure.
Agile teams operate within set time frames (sprints) that make it easier to manage budgets and predict costs. Since work splits into manageable chunks, it becomes simpler to assign resources efficiently and measure team performance. This structured yet flexible approach not only improves productivity. It also provides stakeholders with a more reliable estimation of project costs and timelines.
Laura Klein explains important points about Agile relating to an important aspect of design, user research, in this video:
OK, here's a scenario: You're a designer on a product that connects job hunters with great new careers. Your team is currently working on a new screen that will let applicants search by categories. Your job is to figure out what the categories should be. Well, obviously the easiest way to figure this out is with some research. There are a bunch of different sorts of research that you could do; you could do *quantitative*, for example; you could do some *analysis* maybe of the search terms that people are already typing in
and see if there are any obvious categories; you could also do some *competitive research*, maybe check out some other sites and see if there are any common terms; or, of course, you could do the gold standard and actually *observe some users searching for jobs*. But here's the problem: Those all *take time*. And the engineer who was assigned to the user story wants the answer from you so that they can finish before the end of the *sprint*, which is on Friday. But you were just designing a story; how are *you* supposed to solve this problem?
It turns out this happens quite a lot on agile teams and it can be *extremely frustrating*. The thing is, this is indicative of a very common anti-pattern often called "feeding the beast". In this instance – in *all* instances – the engineers are the beast. There are a few ways to handle this. The first requires that stories be treated differently. Researchers and designers could work on their stories *ahead* of engineering, and by the time engineering gets them, the acceptance criteria are all set. In other words, you'd get this story a few weeks early, get to go do your various forms of research,
come up with a good solution, and then the story would go to the engineers. That's fine. And it's what happens on a lot of teams who are what we call "agile-ish". But it's not particularly cross-functional or collaborative. Another way of approaching it is to actually involve the engineer you're working with on making the decisions. For example, maybe they can help do some data analysis on the search terms while you do some competitive analysis on the competitors' types. You could both work together to observe some real users. Meanwhile, the engineer could do a bit of exploration to see if there are any technical reasons why certain types of categories would be
easier or harder to implement than others. You would be shocked at how often there are weird technical constraints that you do not find out about until an engineer sees a story, which means it's really much better to get them involved as soon as possible. Of course, this may mean it takes you a little bit longer than a single sprint to get the whole story done; although, again, that can depend on how fast you are or how big the feature is or how long your sprints are. On the upside, you know that any design will be technically feasible because you're involving the engineering team in the decision-making process.
You also know that the engineer implementing the story actually understands the user needs and goals. Depending on the design, it may drastically reduce the number of deliverables you need to create. I mean, if you've already done co-design exercises and sketched out ideas with somebody, you often don't also need a designer to create pixel-perfect mockups to show them exactly how something works. Will this kind of group research work in every single instance? No; sadly not. It depends on a lot of things, not least the willingness of the engineers to be involved in the research.
On some teams, engineers could get penalized if they spent too much time on a story. So, this sort of research would end up being bad for their careers. This is incredibly unfortunate, and if your team is like this, it's honestly worth trying to get it changed because the benefits of doing research together strongly outweigh the slight negatives of maybe moving a bit slower in some cases. In fact, often doing research and design like this can end up making a team move faster in the long run simply because there's less miscommunication among team members and less need for complex deliverables to be passed around.
Of course, doing research together doesn't necessarily mean that everybody on a team does all research all together all the time; you're still doing larger, more open-ended studies that take a longer time. And if you've got one researcher and designer and several engineers and a product manager, you're not all going to go to all of the sessions together – that would be a little overwhelming. But be sure to *include* various members of the engineering and product teams and even marketing or sales or customer service or anybody else who has an impact on product decisions *when you're doing your research*. Not everybody will go to every research session, but having people on your team
watch your customer experience first-hand can really help your team be much more agile by giving everybody the context that they need to make better decisions about whatever they're working on. Of course, this does tend to work best with smaller teams, but then that's true whenever you're using agile methodologies. They're all designed around this idea of a truly cross-functional, collaborative, reasonably sized product team that is at least partially autonomous and can make actual decisions about what to build and how to self-organize.
If that doesn't describe your team, team research is going to be harder; although it's still not impossible, it just takes some work.
Due to its flexible nature, Agile design can sometimes lead to challenges in predicting timelines and managing project scopes. The iterative process, while beneficial, can complicate long-term scheduling and resource allocation.
With the ability to make frequent adjustments comes the risk of constant changes. That risk can overwhelm the team and lead to burnout. Also, without careful management, this can cause the project to deviate from its original goals.
Laura Klein explains some helpful points about types of changes and more in this video:
Let's talk about the difference between big, innovative changes to our product and small, incremental improvements, and the kinds of research that you might need in order to make these changes. We'll start with the incremental improvements because that's really the most frequent kinds of changes that we make as designers and researchers. While we all like to talk about designing things from scratch or making huge, sweeping changes,
the vast majority of people spend a lot of their time working on existing products and making them a little bit better every day. So, imagine you're building your new job marketplace to connect job seekers with potential employers. The product works. It's out in the real world being used by folks to find jobs every day. It's great! You made a thing that people are using, for money. Now, your product manager is looking at the metrics and they notice that a bunch of people are signing up and looking at jobs but they're not applying for anything.
Your job is to figure out why. So, what do you do? You can go ahead and pause the video and think about it for a minute if you want. There are a lot of different options you could go with here, but at the very least you're going to want to figure out the following things: Where are people stopping in the process and why are they stopping there? You'll probably want to dig into metrics a bit and figure out if folks do anything besides just look at jobs. Do they fill out their profile? Do they look at job details? Do they click the Apply button? And then do they give up at that point? Or do they never actually even get to that point?
Once you know where they're giving up, you'll probably do some simple observational testing of actual users to see what's happening when they do drop out. You'll probably also want to talk to them about why they're not applying. Maybe you'll find out that they get frustrated because they can't find jobs in their area. Well, that'd be great because that's really easy to fix; if that's the problem, maybe you can try letting them search for jobs near them. That's an *incremental change*. Now, what do we mean by that? It doesn't necessarily mean that it doesn't have a big impact on metrics.
Things like this can be hugely important for your metrics. If you manage to get lots more qualified candidates to apply to jobs, that's a huge win for the employers who are looking for great employees and it doesn't matter that it was just a simple button that you added. But it's not a wildly innovative change. In fact, it's a pretty standard feature on most job boards, and it's a very small improvement in terms of engineering effort, or at least it should be. If it isn't, there may be something wrong with your engineering department... which is a totally different course.
This change is *improving an existing flow*, rather than completely changing how something is done or adding a brand-new feature. OK, now, imagine that you're doing some observational research with your job applicants and you learn that for whatever reason they really don't have very much access to computers or they're not used to typing on a keyboard. This might lead to a very different sort of change than just searching for jobs in their area. Rather than making a small, incremental improvement to a search page, you might have to come up with an entirely different way for candidates to apply for jobs.
Maybe they need to film themselves using their phone cameras. This is a much larger change; it's *less incremental* since you're probably going to have to change or at least add a major feature to the entire job application process. You'll probably have to change how job seekers get reviewed by potential employers as well since they'll be reviewing videos rather than text resumes – which they might not be used to. This is a big change, but it's still incremental because it's not really changing what the product does.
It's just finding a new way to do the thing that it already did. OK, now, let's say that you have the option to do some really deep ethnographic research with some of your potential job applicants. You run some contextual inquiry sessions with them or maybe you run a diary study to understand all of the different jobs that they look at and learn why they are or aren't applying. Maybe in these deeper, more open-ended research sessions, you start to learn that the reason that a lot of potential job applicants drop out is because they just don't have the skills for the necessary jobs.
But what could *you* do about that? Well... our only options are either to find different applicants, find more suitable jobs or create some way to train our users in the skills that they need for the kinds of jobs that are available. All of those are really pretty big, risky ventures, but they just might be what we need to do to get more applicants into jobs. These are very big, and a couple of them are fairly innovative changes.
If the company pivots into, say, trainings and certifications or assessments, that definitely qualifies as innovation, at least for your product, but *how* does the research change for *finding* each of these sorts of things? Couldn't you have found out that applicants aren't qualified with the same types of research that you used to learn that they wanted to search by location? Maybe. Sometimes we find all sorts of things in very lightweight usability-type testing, but *more often* we find bigger, more disruptive things in deeper kinds of research – things like contextual inquiry, diary studies or longer-term relationships that we build with our customers.
Also, bigger, more disruptive changes often require us to do more in-depth research just to make sure that we're going in the right direction because the bigger it is the more risky it is. Let's say we ran some simple usability testing on the application process. That would mean we'd give applicants a task to perform, like find a job and apply to it. What might we learn from that? Well, that's the place where we'd learn if there were any bugs or confusing
parts of the system – basically, *can* somebody apply for a job? It takes more of a real conversation with a real user or a potential user to learn why they're not applying for jobs. It's not that one kind of testing is better than the other; it's that you can learn very different things with the different types of testing. Some types of research tend to deliver more in-depth learnings that can lead to big breakthrough changes, while other types of research tend to lead to smaller, more incremental but still quite useful and impactful changes. Both are extremely useful on agile teams, but you may find that the latter is more common just because many
agile teams don't really know how to schedule those big longer-term types of research studies, while running quick usability testing on existing software is quite easy and can even often be automated.
Agile design often prioritizes working software over comprehensive documentation. This can pose challenges when new team members join the project, as there may be insufficient documentation to quickly bring them up to speed.
The success of an Agile design project heavily relies on the team's dynamics. A highly collaborative environment demands that all team members are proactive, communicative and adaptive. In scenarios where team dynamics are not optimal, the project's success could be in jeopardy. Also, it takes good project management to ensure teams don’t slide into an AgileFall approach, where they might adopt practices such as turning to longer intervals between meetings or even “re-siloing,” and possibly drive up the amount of documentation and remove managerial fingers from the “pulse” of the project at critical moments.
The phenomenon of AgileFall, when elements of Waterfall can dilute an Agile approach to design.
© Interaction Design Foundation, CC BY-SA 4.0
An Agile design process typically follows several key steps where Agile project management ensures that design team members:
1. Understand: They grasp the core needs and goals of the project.
2. Research: They gather insights and data that inform the design.
3. Sketch: They develop initial concepts and ideas.
4. Design: They craft the visual and functional aspects of the project.
5. Prototype: They create prototypes to test ideas in a tangible form.
6. Test: They evaluate the design through user testing and feedback.
7. Refine: They make improvements based on feedback and testing results.
These steps are not linear. Instead, team members often revisit steps repeatedly throughout a project. They ensure that the design remains aligned with user needs and project goals. This iterative loop supports a high degree of flexibility and responsiveness in problem solving, discovery of pain points, and more. The Agile approach is particularly effective in projects with high uncertainty or evolving specifications.
Agile design involves UX designers and developers working closely together for the best results.
© Interaction Design Foundation, CC BY-SA 4.0
In Agile design, clarity in roles is paramount. For instance, to adopt the core principle of Scrum, one can define three main roles: the product owner, the Scrum master and the development team. Each role has specific responsibilities that contribute to the project's success. Namely, the product owner manages the product backlog and ensures that the team delivers value to the business. The Scrum master facilitates Scrum processes and resolves impediments that hinder the team's progress. Lastly, the development team drives the development of the product features. The clear delineation of roles helps to reduce confusion and enhances productivity.
Agile thrives on the synergy of cross-functional teams, where members from different disciplines collaborate to achieve project goals. This integration includes individuals with varied skills—from UX designers to developers and testers. They work together to navigate complexities and innovate solutions. Regular activities like daily stand-up meetings, sprint retrospectives and product backlog refinement are crucial. These interactions not only align the team towards common objectives. They also promote a culture of continuous feedback, which is vital for Agile environments.
Agile and Scrum methodologies are not static; they require a commitment to ongoing learning and adaptation. This involves regular training on new tools and methodologies. It also means to revisit and refine processes that may no longer serve the team effectively. To implement Agile requires a mindset that embraces change—teams must be willing to experiment and learn from each iteration. Practices such as sprint reviews and retrospectives support this culture of continuous improvement. Teams reflect on what worked and what didn’t. They then make necessary adjustments to improve future sprints.
Overall, it’s essential to realize the potential—and pace of involvement—that an Agile design approach calls for. Agile is a valuable and popular answer to the needs of many brands, and it’s well-suited to UX and UI (user interface) design. With uses in such areas as extreme programming (XP) and ranging in potential across the many aspects of website and app design and far beyond, Agile methodology and design has transcended from its origins in the tech industry to become a preferred business model across a diverse range of sectors.
Remember, Agile design is more than a methodology; it’s a versatile tool. Teams from various industries can use it to transform, innovate and produce winning products time and again. Agile design’s principles of flexibility, continuous improvement and customer-centricity make it an ideal approach to modern business challenges.
Take our Agile Methods for UX Design course.
Take our Master Class Design For Agile: Common Mistakes And How To Avoid Them with Laura Klein, Principal – Users Know and Senior Design Educator – IxDF.
Read our piece, How to Succeed as a Designer on Agile Teams: Embrace Imperfection.
Read our piece, Apple’s Product Development Process – Inside the World’s Greatest Design Organization.
Consult Agile Design: An Introduction by Nick Babich for further helpful insights.
Go to Agile Design Process by Maria Martin for more information.
Visit AgileFall – When Waterfall Sneaks Back Into Agile by Steve Blank for helpful insights.
Agile design handles changes in user requirements during a project through its flexible and iterative approach. This method emphasizes continuous improvement and rapid response to feedback.
In Agile design, teams hold regular meetings known as sprints or iterations, where they assess the progress and integrate any new findings or user feedback into the project. If user requirements change, the design team quickly adapts the product's features or interface accordingly. This adaptability allows for modifications at almost any stage of the project without significant setbacks or complete overhauls.
Moreover, Agile teams often use tools and practices like user stories, which describe features from the perspective of the end user, to prioritize tasks based on the latest user needs and project goals. This focus on user-centered design ensures that the product remains relevant and effective in meeting user demands, even as they evolve.
This approach not only makes handling changes more manageable but also enhances the final product's alignment with user expectations, leading to higher satisfaction and better user experiences.
UX Designer and Author of Build Better Products and UX for Lean Startups, Laura Klein explains how cross-functional teams iterate in Agile:
Cross-functional teams, unlike silos, have all the people necessary to build a specific thing together. Let's look at an example. Imagine you're on a team that is supposed to build the onboarding flow for a new app that helps connect job applicants with jobs. You can't build the whole thing with just designers. Or with just engineers, for that matter. I mean, you probably could do it with just engineers, but it's a terrible idea.
A cross-functional team for this onboarding work might include a few engineers, perhaps some for the front end and some for the back end. Might include a designer, a researcher, a product owner or manager, maybe a content writer or a marketing person. In an ideal world, all of these folks would only work on this particular team. In the real world, where we actually live, sometimes folks are on a couple of different teams and some specialists may be brought in to consult. For example, if the team needed help from the legal department to explain some of the ramifications of a specific decision,
a cross-functional team would have a dedicated legal expert they could go to. But that legal expert might also work with lots of other teams. In agile environments, the cross-functional team generally sits together or if remote, has some sort of shared workspace. They all go to the required team meetings. They understand the goal of the team and the users. They're experts, or they soon become experts, on that onboarding flow. Contrast this to how it might be done in a siloed environment. In that case, you might have different people assigned to the team depending on need, which can seem really flexible.
Until you realize that you end up with five different designers working on the project all at different times and they all have to be brought up to speed and they don't really understand why the other designers made the decisions that they did. Same with the engineers. And do not get me started on legal. Silo teams tend to rely more on documentation that gets handed between groups. And this can lead to a waterfall project where project managers or product managers work on something for a while to create requirements, which they then hand off to designers who work on designs for a while
and then they pass the deliverables on to engineering, who immediately insists that none of this will work and demands to know why they weren't brought in earlier for consultation. You get it. By working in cross-functional teams instead, the people embedded on the project get comfortable with each other. They know how the team works and can make improvements to it. They come to deeply understand their particular users and their metrics. They actually bring engineering and even design and research into the decision making process early to avoid the scenario I described above.
Take our Agile Methods for UX Design course.
In Agile design, user feedback plays a crucial role in shaping and refining the product. Teams actively collect feedback from users through various methods such as interviews, usability testing and surveys. This input provides valuable insights into user needs and preferences, guiding the design and development phases. During each iteration or sprint, designers and developers make adjustments to the product based on this feedback. They prioritize changes that enhance user satisfaction and improve functionality. This responsive approach ensures the product evolves in a way that aligns closely with user expectations and requirements.
Also, to incorporate user feedback regularly helps teams to identify and resolve any issues early in the development process. It prevents costly revisions later on. This continuous loop of feedback and improvement fosters a user-centered design, which is fundamental to Agile methodology. Overall, user feedback is not just influential but essential in Agile design, as it directly impacts decision-making and product success.
Laura Klein explains essential points about Agile design in this video:
A really hard part about agile design for a lot of designers is this idea that we're going to put something out into the world that isn't perfect. It's tempting to spend a lot of time tinkering with things, adding those little elements that we think will delight users. A lot of those things tend to get skipped on agile teams, and that can be really disheartening, frankly. The thing is, they're *not supposed to be skipped* on agile teams. It's kind of sad that they often are, but on good agile teams that are constantly iterating and improving,
there's plenty of time to add those touches and to perfect the design. The key is *not to do it too soon*, and again this can be tough. A lot of designers seem to have some sort of belief in the idea of good design as its own thing, like there's a cosmic governing panel that decides whether something is well designed that's totally independent of whether the product makes users happy or makes money for the company or makes the world a better place. And it's a tricky balance. I'm the first one to point out that if you release an incredibly crappy product,
you're not going to learn anything other than whether or not people like to use crappy products. We're already pretty clear on that – they don't. On the other hand, if you spend months tweaking the fonts and obsessing over every single word or loading the product up with unnecessary features, you're very likely to waste a huge amount of time and money building things that nobody cares about but you. I really wish I had a simple system that would allow you to decide when you've hit *good enough* every single time. You know – a "Can I ship it yet? [] Yes [] No"; maybe someday we'll get that working.
Until then, I want to talk about cooking for a minute. Stay with me; I promise it'll all come together. It might make you a little hungry, though. Let's say you're cooking dinner, and the first step in this brand-new recipe you're trying out is to cut up some potatoes. Now, if you do a terrible job of it and hack them up into uneven pieces, it's probably going to ruin the dish and make it inedible because half of the potatoes will be raw and half will be overcooked and mushy and the whole thing will be awful. If you're not much of a cook, the important thing to understand here is that things of wildly different sizes tend to cook at different rates.
And that ends up with some things being overdone and some things being underdone. So, instead of doing that, you take a little time, you use good knife skills and you cut the potatoes better. But now you have to decide how much time you're going to spend on the potatoes. Obviously, you could make them perfect, where "perfect" means all exactly the same size and shape and weight, or cut into animal shapes or trapezoids or whatever. Molecular gastronomists have almost certainly discovered the golden ratio of surface area to interior of potato,
and I am sure that they would love to tell you all about it. But the more time you spend carving your potatoes into identically sized polygons or whatever, the less time you have for cooking the rest of the meal. And, frankly, having the potatoes perfect doesn't contribute that much to the overall meal. The end result of perfect potatoes might not be *noticeable* to the person eating the meal, and even if they did notice, it wouldn't increase their enjoyment of the meal enough to justify the time it took you to do it.
Nobody wants perfect potatoes at midnight. They want good potatoes at 7pm. Remember, your goal isn't to make a perfect potato, whatever that means; your goal is to *make dinner* – preferably a dinner that people enjoy eating. And what even is a perfect potato, anyway? Maybe you get them all the exact same size but they're still too big, so they take too long to cook, and what you should have done was make them 20% smaller so that they came out at the same time as the rest of the meal. Or maybe what makes a potato perfect depends on who's eating it. I mean, if you're ever cooking it for me, just make mine sweet potatoes and just go ahead and fry them, OK?
So, what's the solution? *Satisficing and iteration*. What is satisficing? That doesn't sound like a word. Satisficing is a decision-making process that aims for *adequate or good enough*. What makes the potatoes good enough to eat and enjoy but doesn't take so much time that you never get them on the table and you don't have to take a bunch of expensive cooking lessons just to get them right? By the way, before you get mad at me and say, "We shouldn't just be going for good enough!" – *yes*, we should!
That's what *good enough* means! As long as we're not defining good enough as "barely edible" – we're just defining it as something we can make that people will enjoy eating. In agile design, we're also often saying that good enough is something that people will be able to use to *solve a problem* and that we can *learn something from*. What we want to learn is: *What would make the thing even better?* Because on agile teams and, honestly, when cooking potatoes, we get to *iterate*. I mean, no, you're hopefully not going to just keep throwing out the potatoes and doing them over and
over and over again before ever serving them, but the neat thing about dinner is that a lot of us eat it every night. We can try these potatoes tomorrow or next week or whenever we feel like it. Maybe we wouldn't try out a brand-new recipe if our boss was coming over for dinner, but you could practice making potatoes as often as you want. Same with a lot of the kinds of products that we build using agile technologies. We get to make things and share them with subsets of users in safe environments and get feedback and then make them better. And the cool thing is when we iterate like this we actually start to develop an idea of what *better* means.
Let's say the first time that we make the potatoes we cut them roughly the same size, but we try not to stress too much about them being a little off. This lets you get the potatoes on the table so that you or your family or whoever you are cooking them for can try them. Maybe the potatoes would be better if you cut them a little smaller. Maybe the dish needs twice as many potatoes. Maybe you decide to substitute cauliflower potatoes like a terrible person who hates food. Maybe the problem isn't the potatoes at all – it's the spices; they're all wrong; you didn't see that coming, did you?
You'll have a much better idea of what *better* means once you've shipped the meal and gotten feedback about what people liked and hated and what they left on the plate and why. This is why I say there's nothing wrong with aiming for good enough, especially on the first few versions of something. Good enough doesn't mean gross and inedible, and it doesn't mean too broken or bad to learn from. It definitely doesn't mean we're never improving on it. It means we're getting something out that is *good enough to get feedback on and then we can improve it over time*.
Besides, spending less time obsessing about the potatoes lets you spend time on more important things like the fact that you should have just made dessert and ordered a pizza!
Take our Master Class Design For Agile: Common Mistakes And How To Avoid Them with Laura Klein, Principal – Users Know and Senior Design Educator – IxDF.
Designers can integrate Agile principles into their existing workflows by adopting several key practices:
Do iterative development: Break projects into smaller, manageable phases or sprints, allowing for regular evaluations and adjustments based on feedback.
Gain regular feedback: Engage stakeholders and users frequently to gather insights and refine the product accordingly. This ensures the design remains aligned with user needs and expectations.
Engage in cross-functional collaboration: Encourage open communication and collaboration across different teams, such as design, development and marketing. This helps to address challenges promptly and enhances the creative process.
Ensure adaptive planning: Be open to changing plans and priorities based on new information or feedback. This flexibility allows designers to respond effectively to unexpected challenges or opportunities.
Embrace continuous improvement: Always look for ways to improve processes and outcomes. Reflect on what works and what doesn't, and apply these learnings to future projects.
By incorporating these Agile principles, designers can make their workflows more dynamic and responsive. This can ultimately lead to better products and user experiences.
Laura Klein explains how cross-functional teams iterate in Agile:
Take our Agile Methods for UX Design course.
When teams adopt Agile design, they face several challenges:
Cultural shift: To shift from traditional, plan-driven approaches to a flexible, iterative Agile method requires a significant change in mindset and culture. This can be difficult for some team members to accept and adapt to.
Communication: Effective communication becomes crucial but challenging, especially in larger teams or those distributed across different locations. To ensure everyone remains on the same page and maintains a high level of collaboration is key.
Frequent revisions: Agile design involves constant updates and revisions based on user feedback. This can be overwhelming and may lead to project fatigue.
Resource management: To balance the workload during sprints and manage resources efficiently without overburdening team members can be tricky, particularly when deadlines are tight.
User involvement: To secure ongoing participation and feedback from users is essential but can be difficult to arrange consistently throughout the project lifecycle.
These challenges require careful planning, strong leadership and a committed team to overcome, and ensure the successful integration of Agile principles into design workflows.
Laura Klein explains important points about Agile in this video:
A really hard part about agile design for a lot of designers is this idea that we're going to put something out into the world that isn't perfect. It's tempting to spend a lot of time tinkering with things, adding those little elements that we think will delight users. A lot of those things tend to get skipped on agile teams, and that can be really disheartening, frankly. The thing is, they're *not supposed to be skipped* on agile teams. It's kind of sad that they often are, but on good agile teams that are constantly iterating and improving,
there's plenty of time to add those touches and to perfect the design. The key is *not to do it too soon*, and again this can be tough. A lot of designers seem to have some sort of belief in the idea of good design as its own thing, like there's a cosmic governing panel that decides whether something is well designed that's totally independent of whether the product makes users happy or makes money for the company or makes the world a better place. And it's a tricky balance. I'm the first one to point out that if you release an incredibly crappy product,
you're not going to learn anything other than whether or not people like to use crappy products. We're already pretty clear on that – they don't. On the other hand, if you spend months tweaking the fonts and obsessing over every single word or loading the product up with unnecessary features, you're very likely to waste a huge amount of time and money building things that nobody cares about but you. I really wish I had a simple system that would allow you to decide when you've hit *good enough* every single time. You know – a "Can I ship it yet? [] Yes [] No"; maybe someday we'll get that working.
Until then, I want to talk about cooking for a minute. Stay with me; I promise it'll all come together. It might make you a little hungry, though. Let's say you're cooking dinner, and the first step in this brand-new recipe you're trying out is to cut up some potatoes. Now, if you do a terrible job of it and hack them up into uneven pieces, it's probably going to ruin the dish and make it inedible because half of the potatoes will be raw and half will be overcooked and mushy and the whole thing will be awful. If you're not much of a cook, the important thing to understand here is that things of wildly different sizes tend to cook at different rates.
And that ends up with some things being overdone and some things being underdone. So, instead of doing that, you take a little time, you use good knife skills and you cut the potatoes better. But now you have to decide how much time you're going to spend on the potatoes. Obviously, you could make them perfect, where "perfect" means all exactly the same size and shape and weight, or cut into animal shapes or trapezoids or whatever. Molecular gastronomists have almost certainly discovered the golden ratio of surface area to interior of potato,
and I am sure that they would love to tell you all about it. But the more time you spend carving your potatoes into identically sized polygons or whatever, the less time you have for cooking the rest of the meal. And, frankly, having the potatoes perfect doesn't contribute that much to the overall meal. The end result of perfect potatoes might not be *noticeable* to the person eating the meal, and even if they did notice, it wouldn't increase their enjoyment of the meal enough to justify the time it took you to do it.
Nobody wants perfect potatoes at midnight. They want good potatoes at 7pm. Remember, your goal isn't to make a perfect potato, whatever that means; your goal is to *make dinner* – preferably a dinner that people enjoy eating. And what even is a perfect potato, anyway? Maybe you get them all the exact same size but they're still too big, so they take too long to cook, and what you should have done was make them 20% smaller so that they came out at the same time as the rest of the meal. Or maybe what makes a potato perfect depends on who's eating it. I mean, if you're ever cooking it for me, just make mine sweet potatoes and just go ahead and fry them, OK?
So, what's the solution? *Satisficing and iteration*. What is satisficing? That doesn't sound like a word. Satisficing is a decision-making process that aims for *adequate or good enough*. What makes the potatoes good enough to eat and enjoy but doesn't take so much time that you never get them on the table and you don't have to take a bunch of expensive cooking lessons just to get them right? By the way, before you get mad at me and say, "We shouldn't just be going for good enough!" – *yes*, we should!
That's what *good enough* means! As long as we're not defining good enough as "barely edible" – we're just defining it as something we can make that people will enjoy eating. In agile design, we're also often saying that good enough is something that people will be able to use to *solve a problem* and that we can *learn something from*. What we want to learn is: *What would make the thing even better?* Because on agile teams and, honestly, when cooking potatoes, we get to *iterate*. I mean, no, you're hopefully not going to just keep throwing out the potatoes and doing them over and
over and over again before ever serving them, but the neat thing about dinner is that a lot of us eat it every night. We can try these potatoes tomorrow or next week or whenever we feel like it. Maybe we wouldn't try out a brand-new recipe if our boss was coming over for dinner, but you could practice making potatoes as often as you want. Same with a lot of the kinds of products that we build using agile technologies. We get to make things and share them with subsets of users in safe environments and get feedback and then make them better. And the cool thing is when we iterate like this we actually start to develop an idea of what *better* means.
Let's say the first time that we make the potatoes we cut them roughly the same size, but we try not to stress too much about them being a little off. This lets you get the potatoes on the table so that you or your family or whoever you are cooking them for can try them. Maybe the potatoes would be better if you cut them a little smaller. Maybe the dish needs twice as many potatoes. Maybe you decide to substitute cauliflower potatoes like a terrible person who hates food. Maybe the problem isn't the potatoes at all – it's the spices; they're all wrong; you didn't see that coming, did you?
You'll have a much better idea of what *better* means once you've shipped the meal and gotten feedback about what people liked and hated and what they left on the plate and why. This is why I say there's nothing wrong with aiming for good enough, especially on the first few versions of something. Good enough doesn't mean gross and inedible, and it doesn't mean too broken or bad to learn from. It definitely doesn't mean we're never improving on it. It means we're getting something out that is *good enough to get feedback on and then we can improve it over time*.
Besides, spending less time obsessing about the potatoes lets you spend time on more important things like the fact that you should have just made dessert and ordered a pizza!
Take our Master Class Design For Agile: Common Mistakes And How To Avoid Them with Laura Klein, Principal – Users Know and Senior Design Educator – IxDF.
Scrum (sometimes “SCRUM”) is a framework within Agile methodology that organizes work into short, fixed-length iterations called sprints, typically lasting two to four weeks. Teams plan, design, develop, test and review each sprint. Key roles include the Scrum Master, Product Owner and Development Team. Artifacts like the product backlog, sprint backlog and events like daily stand-ups and sprint reviews drive progress. Scrum promotes collaboration, adaptability and quick feedback.
Laura Klein explains how cross-functional teams iterate in Agile:
Read our piece, How to Succeed as a Designer on Agile Teams: Embrace Imperfection.
Take our Agile Methods for UX Design course.
In Agile methodology, an epic represents significant work that the team breaks down into smaller user stories for better manageability. It encapsulates a considerable enhancement or feature. It spans multiple sprints or releases. Just as Google's design sprint process, highlighted in the following video, streamlines the creation of designs, epics help teams categorize and prioritize large-scale activities in agile projects.
Watch our video on Google’s Design Sprints:
In this video, we'll teach you how to use Google's design sprint process to create great design faster. In an age of tight resources, companies are more reluctant than ever to commit to big design projects without a thorough understanding of their chances of success. Google has developed a method to make the design process fast and still offer valuable insight. The process developed by Google Ventures is called a *design sprint*.
It focuses on getting insights into *critical business questions* within a very short timeframe – just five days. The process is based on *design thinking*, so it attempts to gain those insights via *rapid design*, *prototype development* and *user testing*. The design sprint is a five-phase process. Each phase takes approximately one day or eight hours to perform. So, a sprint can be done in five days. The five phases of Google's design sprint are *understand*,
*sketch*, *decide*, *prototype* and *validate*. The design sprint is a *linear process*, but you are strongly encouraged to *make revisions* based on your first sprint and then *reiterate the prototype and validate phases*. You can also move further back to earlier phases and reiterate from there. In the following, we'll look at each step in more detail, but let's start by taking a quick look at how to plan a design sprint. To ensure that the design sprint will be successful, some *planning ahead* is required.
Before the sprint begins, here are some things you should consider. You should *write a brief* to state the sprint's goal and bring everyone on the same page. You might also need to collect or *conduct user research* to get insights that can inform the work you do during the sprint. *Consider who should be on the sprint team.* Google's sprint process is designed to be run by teams rather than individuals. That means getting everyone together and ensuring that they're all aiming in the same direction. The ideal team would include representatives from all relevant functions and at all levels in the organization.
You could also invite external people – for instance, a representative user or stakeholder. You need a *suitable space* for the sprint, typically somewhere bright, quiet, with lots of wall space and enough room for people to move about will be suitable. You have to *gather supplies* for the sketching and prototyping phases. Typically, you need office supplies like Post-its, blank sheets of paper, color markers, tape, and so on. Finally, you should choose a good *icebreaker exercise* to kick off your design sprint.
Some members of your team might not have worked together before, so it's good to start off with an activity to warm people up. Now, let's take a look at each stage in the execution of the actual sprint. In the understand session, your goal is to *create shared knowledge* about the business problem you're working on. You bring everyone together and unpack all of your team's knowledge about the problem.
*Lightning talks*, where knowledge experts use 10 to 15 minutes to share their knowledge about the problem, is an important part of the understand session. Typical topics for a lightning talk are *business goals*, *insights from user research*, an *overview of competitive products*, *technical opportunities*, and so on. As part of the lightning talk, it can be a good idea to have a presentation by someone from senior management outlining why the problem you're working on is important to the business. Other typical activities of the understand phase are demonstrations of solutions that are already available,
a detailed walkthrough of any proposed solution, creating user journeys and performing user research. In the understand session, it's also a good idea to be *clear on the metrics of success*. And remember, your metrics should be useful and not pulled out of thin air. When you do the understand session, it's important to involve the whole team. Don't let an individual or group dominate the proceedings. The idea is to ensure everyone is on the same page, and the only way to do that is if everyone is heard from.
Once everyone is on the same page, it's time to split the team up and get them to start working on solutions. Sketch day is an *individual effort*. Everyone is tasked with coming up with a detailed solution to the problem. It's a good idea to do this on paper for two reasons. First, it's quick and it takes no time to make changes. Second, everybody is able to sketch so they can participate even if they don't know any wireframing tools.
For particularly complex, large-scale problem solving, you might want to break up the problem into *manageable chunks* and assign people a chunk rather than the whole problem. The aim of sketch day is to get as many ideas down as possible. If your team is large and you generate a ton of ideas, you might want to allocate an hour at the end of the day to quickly *reduce the number of ideas* to a more manageable number before you go into the third day of the sprint. As you might expect, decide day is all about *making a decision* about which idea
you're going to take to the prototype phase. But there's more to decide day than making a decision. It's also about working out how your solutions might conflict with your objectives and abilities. You can start the day by quickly listing any assumptions that you are making about things like budget, users, technology capacity and business drivers. Then it's time to review each idea and look at the conflicts that it generates. You should have an objective in mind during your review.
Would you be looking to take a single great idea forward to prototyping? Or are you going to pick, say, a top 5 and take those forward? You should be looking to constantly *refine* your list and remove ideas that simply aren't feasible early in the process. The entire team takes part in the decision process by participating in discussions and through voting for ideas. Once you have an idea or ideas you want to prototype, the last part of decide day is to *create some storyboards for your ideas*.
The storyboard should show each interaction with the user in a step-by-step process, and they'll be your specification for your prototype. You might also want to define a *user story* or two to help beef up the specification. As the title implies, on prototype day you have a single day to *create a prototype* that your users can test on the final day. First of all, storyboard what you're going to build if you haven't already done that. To build a prototype, you can use any tool of your choice.
Just pick one that you master enough for rapid prototyping. The important thing is, don't attempt to learn a new tool on this day. Just use *whatever you're most comfortable with*. Finally, remember to *leverage the whole team*. Assign tasks and get everyone building or helping with something. Prototyping isn't just for the engineers. Get people to document, write, review, plan a user test – any activity that contributes towards your end goal.
On day 5, you *validate your idea*. The most important part of the validation is to bring in a group of your end users to test your prototype. It's important that the entire team gets to *observe the users interact with the product* either directly or through watching recordings of your test. A *cognitive walkthrough* or *brief usability test* are great tools to use in this phase. Other good activities to validate your design – to bring in experts and management stakeholders to review your idea.
Everyone on the team should make notes and record what they feel they've learned. You want to take these notes and summarize them at the end of the day. This should help you decide if anything needs iterating and improving. At the end of the final day, take some time with the whole team to reflect on your experience. As Google puts it, there can be three possible outcomes to a sprint: an *efficient failure* – perhaps your ideas didn't work so well, but you learned a lot in the process
and saved your team a lot of time from going down the wrong path; a *flawed success* – perhaps some ideas worked nicely, while others didn't: this gives you insights on what can be improved and what you could work on next; finally, an *epic win* – the ideas your team had have shown great promise and seem to work really well. You're ready to move into a more serious implementation phase. Either way, you can only win! Whether it's by avoiding failure, learning where more work needs to be put in
or generating a killer design, you can only emerge from the design *wiser and more experienced*. The added bonus is that the time you've sacrificed for this is relatively *short*. Though this is a tried-and-tested method by Google, it's also a relatively new concept adapted from Agile methods. It might take a few tries within your organization to keep the sprint to five days. That's OK. You can work towards delivering faster sprints as you get more practice. Google design sprints should help you take a process that currently takes months and make it lean and efficient.
It's not a substitute for all design processes, especially not for very complex products, but it's one that lets you ideate and test ideas incredibly fast. A highly productive design team working in sprints is more likely to add business value and be recognized for their work within the larger organization. Finally, we encourage you to take a look at Google's Design Sprint Kit to get more ideas and tools for how to run your own design sprint.
Take our Agile Methods for UX Design course.
In Agile, a sprint is a set period during which team members need to complete specific work and have it ready for review. Sprints typically last two to four weeks. This lets teams break down larger projects into manageable chunks.
The following video highlights the challenges of sprints, ensuring the team finalizes all research and decisions on time. For example, when teams are involved in the design of a new feature like a search category screen, they have to make decisions on categories promptly if they are to meet the sprint's deadline. This emphasizes the importance of collaborative and cross-functional teams in Agile, where designers, engineers and researchers work closely to make informed, timely decisions and ensure smooth sprint completions. Many organizations overcome these challenges by running user experience sprints ahead of implementation sprints.
Laura Klein explains important aspects about Agile.
OK, here's a scenario: You're a designer on a product that connects job hunters with great new careers. Your team is currently working on a new screen that will let applicants search by categories. Your job is to figure out what the categories should be. Well, obviously the easiest way to figure this out is with some research. There are a bunch of different sorts of research that you could do; you could do *quantitative*, for example; you could do some *analysis* maybe of the search terms that people are already typing in
and see if there are any obvious categories; you could also do some *competitive research*, maybe check out some other sites and see if there are any common terms; or, of course, you could do the gold standard and actually *observe some users searching for jobs*. But here's the problem: Those all *take time*. And the engineer who was assigned to the user story wants the answer from you so that they can finish before the end of the *sprint*, which is on Friday. But you were just designing a story; how are *you* supposed to solve this problem?
It turns out this happens quite a lot on agile teams and it can be *extremely frustrating*. The thing is, this is indicative of a very common anti-pattern often called "feeding the beast". In this instance – in *all* instances – the engineers are the beast. There are a few ways to handle this. The first requires that stories be treated differently. Researchers and designers could work on their stories *ahead* of engineering, and by the time engineering gets them, the acceptance criteria are all set. In other words, you'd get this story a few weeks early, get to go do your various forms of research,
come up with a good solution, and then the story would go to the engineers. That's fine. And it's what happens on a lot of teams who are what we call "agile-ish". But it's not particularly cross-functional or collaborative. Another way of approaching it is to actually involve the engineer you're working with on making the decisions. For example, maybe they can help do some data analysis on the search terms while you do some competitive analysis on the competitors' types. You could both work together to observe some real users. Meanwhile, the engineer could do a bit of exploration to see if there are any technical reasons why certain types of categories would be
easier or harder to implement than others. You would be shocked at how often there are weird technical constraints that you do not find out about until an engineer sees a story, which means it's really much better to get them involved as soon as possible. Of course, this may mean it takes you a little bit longer than a single sprint to get the whole story done; although, again, that can depend on how fast you are or how big the feature is or how long your sprints are. On the upside, you know that any design will be technically feasible because you're involving the engineering team in the decision-making process.
You also know that the engineer implementing the story actually understands the user needs and goals. Depending on the design, it may drastically reduce the number of deliverables you need to create. I mean, if you've already done co-design exercises and sketched out ideas with somebody, you often don't also need a designer to create pixel-perfect mockups to show them exactly how something works. Will this kind of group research work in every single instance? No; sadly not. It depends on a lot of things, not least the willingness of the engineers to be involved in the research.
On some teams, engineers could get penalized if they spent too much time on a story. So, this sort of research would end up being bad for their careers. This is incredibly unfortunate, and if your team is like this, it's honestly worth trying to get it changed because the benefits of doing research together strongly outweigh the slight negatives of maybe moving a bit slower in some cases. In fact, often doing research and design like this can end up making a team move faster in the long run simply because there's less miscommunication among team members and less need for complex deliverables to be passed around.
Of course, doing research together doesn't necessarily mean that everybody on a team does all research all together all the time; you're still doing larger, more open-ended studies that take a longer time. And if you've got one researcher and designer and several engineers and a product manager, you're not all going to go to all of the sessions together – that would be a little overwhelming. But be sure to *include* various members of the engineering and product teams and even marketing or sales or customer service or anybody else who has an impact on product decisions *when you're doing your research*. Not everybody will go to every research session, but having people on your team
watch your customer experience first-hand can really help your team be much more agile by giving everybody the context that they need to make better decisions about whatever they're working on. Of course, this does tend to work best with smaller teams, but then that's true whenever you're using agile methodologies. They're all designed around this idea of a truly cross-functional, collaborative, reasonably sized product team that is at least partially autonomous and can make actual decisions about what to build and how to self-organize.
If that doesn't describe your team, team research is going to be harder; although it's still not impossible, it just takes some work.
In Agile development and design, a spike is a time-boxed task to answer a specific question or address uncertainties. It involves research or prototyping to gain the knowledge teams need to reduce risks or make informed decisions. Unlike regular user stories that produce shippable product increments, spikes generate knowledge. Once teams complete a spike, they can estimate, design or prioritize better. Typically featuring in Scrum or Extreme Programming (XP), a spike ensures the team doesn't commit to uncertain tasks, promoting effective planning and higher product quality.
Take our Agile Methods for UX Design course.
In Agile development, a user story is a tool teams use to capture a description of a software feature. In user-centered design, user stories emerge as collaborative pieces with designers who are familiar with users’ needs. Beyond UCD, they represent the development teams’ best guess. As the following video highlights, user stories often follow a format like: "As a [type of user], I want [an action] so that [a benefit/a value]." For instance, "As a job applicant, I want to save my resume or CV information so I don’t have to re-enter it every time I apply for a new job." This approach ensures that developers and designers understand the feature's requirements, the desired outcome and its significance to the user.
Watch as Laura Klein explains user stories in this video:
For an additional angle on this subject area, take our Master Class User Stories Don't Help Users: Introducing Persona Stories with William Hudson, Consultant Editor and Author.
1. Dönmez, D., Grote, G., & Brusoni, S. (2016). Routine interdependencies as a source of stability and flexibility. A study of agile software development teams. Information and Organization, 26, 63-83.
This paper examines how Agile software development teams use routine interdependencies to achieve both stability and flexibility. The authors found that Agile teams leverage routine interdependencies to coordinate their work, while also adapting these routines to changing circumstances. This balance of stability and flexibility is a key aspect of Agile design and has made this paper highly influential in the field.
2. Dorairaj, S., Noble, J., & Malik, P. (2011). Effective communication in distributed agile software development teams. In International Conference on Agile Software Development (pp. 102-116). Springer, Berlin, Heidelberg.
This conference paper investigates the challenges of effective communication in distributed Agile software development teams. The authors identify key factors that enable successful communication and collaboration in such teams, making it a highly influential work in the field of Agile design.
3. Boehm, B., & Turner, R. (2005). Management challenges to implementing agile processes in traditional development organizations. IEEE software, 22(5), 30-39.
This journal article explores the management challenges associated with implementing Agile processes in traditional software development organizations. The authors identify key barriers and provide strategies for overcoming them, making this work highly influential in guiding the successful adoption of Agile design.
4. Cooper, R. G., & Sommer, A. F. (2016). The Agile–Stage-Gate Hybrid Model: A Promising New Approach and a New Research Opportunity. Journal of Product Innovation Management, 33(5), 513-526.
This journal article proposes a hybrid approach that combines the Agile and Stage-Gate models for product development. The authors demonstrate how this hybrid approach can leverage the strengths of both models, making it a highly influential work in the field of Agile design.
1. Cohn, M. (2005). Agile Estimating and Planning. Prentice Hall.
This book is considered a seminal work in the field of Agile project management. It provides a comprehensive guide to estimating and planning in an Agile environment, covering topics such as release planning, iteration planning and measuring progress. The book has seen wide adoption by Agile teams. It has a reputation as essential reading for anyone looking to implement Agile practices effectively.
2. Highsmith, J. (2009). Agile Project Management: Creating Innovative Products (2nd ed.). Addison-Wesley Professional.
This book is a comprehensive guide to Agile project management, covering the principles, practices and tools organizations need to successfully manage Agile projects. It has been influential in helping organizations and project managers understand the benefits of agile methods and how to effectively implement them. The book provides a practical and accessible approach to Agile project management, making it a valuable resource for both experienced and novice agile practitioners.
3. Derby, E., & Larsen, D. (2006). Agile Retrospectives: Making Good Teams Great. Pragmatic Bookshelf.
This book is a seminal work on the importance of retrospectives in Agile development. It provides a step-by-step guide to conducting effective retrospectives, which are a critical component of the Agile process. The book has been influential in helping Agile teams improve their processes and continuously learn and adapt. It is considered a must-read for anyone involved in Agile development.
4. Graffius, S. M. (2017). Agile Scrum: Your Quick Start Guide with Step-by-Step Instructions. Createspace Independent Publishing Platform.
This book is a practical and accessible guide to implementing Scrum, one of the most popular agile frameworks. It provides a step-by-step approach to setting up and running a Scrum team, and has been influential in helping organizations and individuals adopt agile practices. The book is particularly useful for those new to Agile development, as it provides a clear and concise introduction to the Scrum methodology.
Do you want to improve your UX / UI Design skills? Join us now
You earned your gift with a perfect score! Let us send it to you.
We've emailed your gift to name@email.com.
Do you want to improve your UX / UI Design skills? Join us now
Here's the entire UX literature on Agile Design by the Interaction Design Foundation, collated in one place:
Take a deep dive into Agile Design with our course Agile Methods for UX Design .
Agile, in one form or another, has taken over the software development world and is poised to move into almost every other industry. The problem is that a lot of teams and organizations that call themselves “agile” don’t seem to have much in common with each other. This can be extremely confusing to a new team member, especially if you’ve previously worked on an “agile” team that had an entirely different definition of “agility”!
Since the release of the Agile Manifesto in 2001, agile methodologies have become almost unrecognizable in many organizations, even as they have become wildly popular.
To understand the real-world challenges and best practices to work under the constraints of agile teams, we spoke with hundreds of professionals with experience working in agile environments. This research led us to create Agile Methods for UX Design.
In this course, we aim to show you what true agility is and how closely agile methodologies can map to design. You will learn both the theory and the real-world implementation of agile, its different flavors, and how you can work with different versions of agile teams.
You will learn about the key principles of agile, examples of teams that perform all the agile “rituals” but aren’t actually agile, and examples of teams that skip the rituals but actually embody the spirit.
You’ll learn about agile-specific techniques for research and design, such as designing smaller things, practicing continuous discovery, refactoring designs, and iterating.
You will also walk away with practical advice for working better with your team and improving processes at your company so that you can get some of the benefits of real agility.
This course is aimed at people who already know how to design or research (or who want to work with designers and researchers) but who want to learn how to operate better within a specific environment. There are lots of tools designers use within an agile environment that are no different from tools they’d use anywhere else, and we won’t be covering how to use those tools generally, but we will talk about how agile deliverables can differ from those you’d find in a more traditional UX team.
Your course instructor is product management and user experience design expert, Laura Klein. Laura is the author of Build Better Products and UX for Lean Startups and the co-host of the podcast What is Wrong with UX?
With over 20 years of experience in tech, Laura specializes in helping companies innovate responsibly and improve their product development process, and she especially enjoys working with lean startups and agile development teams.
In this course, you will also hear from industry experts Teresa Torres (Product Discovery Coach at Product Talk), Janna Bastow (CEO and Co-founder of ProdPad) and Adam Thomas (product management strategist and consultant).
We believe in Open Access and the democratization of knowledge. Unfortunately, world-class educational materials such as this page are normally hidden behind paywalls or in expensive textbooks.
If you want this to change, , link to us, or join us to help us democratize design knowledge!