As designers, we often think of the design process as a route from point A to B and that’s it; we’re done. To be honest, sometimes that’s all that needs to be done, but when we work on the world of digital products we will be facing change and we need to embrace it and learn from it. How are users behaving? Is it working as expected? Are metrics up? These are questions that will be leading your work in a digital product team. Most of the time, things are not going to work as expected, but that’s how humans are. We change constantly, and that means we need to iterate a lot or as it’s called sometimes to have an iterative design approach.

Having an iterative design approach doesn’t mean that you will be  redesigning your whole product every time you get feedback, in fact it means the exact opposite: Design so you can keep what works and change what doesn’t. You need to focus on the core idea, test it, validate it and change your design with what you learned. With this approach you will be making frequent updates and get closer to a functional product on each iteration. This is a never-ending (and a little tiring) cycle, but it's very important for delivering high quality products.

So, in these next paragraphs I’ll give you a short list of advice that can help you start designing for iteration.

Accept change

Design is not an absolute truth. That’s the first thing and most important thing to have in mind. Even though we know we’ve created a good solution, it’s not going to be permanent. Users will have different needs as time passes and technology will improve, so we need to accept that sometimes we need to change, even though we know our solution works.

It can be hard sometimes. Us designers take a lot of care in our work. So, if you’re new to an iterative process, start with small steps. Have a feedback mindset. Every time you make a new update to your current work, ask for feedback. Get some coworkers’ input. Analyze and iterate. Maybe it’s not a major update but with this you’ll be more open to change and it’ll make it easier to get an iterative approach.

Design to reuse

Have you ever been in a situation where you need to update thousands of text styles?  Or changing the checkbox on different components because you didn’t use the same one? I have. Updating components and styles consumes a lot of time that can be spent on improving your product functionality.

An example of it can be a card style used across different screens or a block with text style patterns on your layout. When you start the base of your design system, think of re-using your styles. When you think of reusing you are thinking of iteration. The time will come when you’ll need to iterate and your design system is going to be up to date in a second because you prepared for it and it will be easier and faster to deliver, meaning that you’ll have more time to test and learn.

Keep it simple

Keeping your design simple throughout your iteration process can help you focus on functionality. It doesn’t mean that it’s going to be an ugly design; but spend less time adding that shadow that looks cool to you, or that hover state that has an awesome animation. Those things are important but can be added later on each round of iteration. You can even have a round of testing only visual design.

You should focus first on completing the user and business goals: Is it easy to use? Are customers corverting? Does the site have steadily increasing traffic? Are people responding positively to the design? Trying to complete those goals in a short amount of time can lead you to fail, but it will also make you learn faster and help you understand your product and customers better so you can then improve your product experience and visual design.

The faster we deliver, the faster we can learn

Designing faster doesn’t mean you're gonna do more in less time; it means that you need to spend less time on perfecting details and more time on testing and learning. The quicker you get a functional design and test it with the users the quicker you learn, iterate and polish your design. An example of this can be a button that you spent 5 hours working on, and when you tested it you learned that it wasn’t understandable for users. Instead of spending 5 hours you could do half the time, work on fulfilling the goal and test. Now you have learned about your component and have 2.5 hours to work on updates and visual details.

Start trying this on simple tasks at work. Don’t work 5 days on a design round, work 2-3 days to get to a decent, functional design and ask for feedback and test it with users. Does it work the way you expected? The input you’ll get will vary. Sometimes it will not work as expected, but that’s the key to iteration: learn from your mistakes. Now you have 2 days to work on making design changes and are closer to completing your goal.

As you can read in this article, having an iterative design approach is not about creating fast crappy products. Instead it is about knowing that if you test your design early on in your process you can learn more in a short amount of time so you can dedicate time to designing  a functional product that satisfies business and customer needs.

Hope you really liked reading this article and as mentioned, embrace change, learn and iterate! For more design stuff follow me at @eleduardoreyes and @eduardoreyesza