Iterative Development in the UX Design Process
The user experience (UX) design process is one that tends to be iterative rather than linear. The ultimate goal for UX design is to create an end product that satisfies the qualities of usability: easy to learn and remember, efficient and pleasant to use, and error-free.
With new technologies and capabilities rapidly changing and evolving in the world of application, website, artificial intelligence (AI), and augmented reality (AR) development, it becomes imperative for UX designers and developers to evolve as well, while being able to develop products effectively and efficiently. Since stages of a UX process tend to overlap where the designers are constantly thinking and analyzing, then creating and testing, iterative development lends itself well to UX design.
Iterative development is a software development life cycle (SDLC) methodology where development of a system occurs through repeated iterations or cycles, and in smaller portions or increments. The idea is that this type of development process allows developers and designers to take advantage of what is discovered during each iteration, make necessary modifications to the user interface (UI) and functional capabilities, and then repeat the process.
Iterative Development Model
The iterative development model is an implementation of a SDLC with the primary focus being on simplified implementation. This implementation gains in complexity and broader features and functions through each iteration until the final product is completed. Let’s take a look closer at what the model is and how it came about.
What Is It?
According to Goodcore, “An iterative development model works on a systematic repetition of small cycles of software development known as iterations.” The central idea is to create smaller projects that have a well-defined scope and duration. During each iteration, design and development is able to constantly evolve and implement updates right away. A new version of the product is produced after each iteration until you achieve your ideal end product.
How Did It Come About?
The concept of iterative development is not exactly new, but was not always used in direct relation to software development, but rather a way to improve efficiency. It slowly evolved from other methodologies such as Kanban or waterfall, which is where a project is broken into linear sequential phases, where each phase depends on the deliverables of the previous one. These early concepts opened the doors to new ways of developing:
- 1950s: The Kanban method opened the way for the iterative development model. The method was based on lean production that focused on efficiency, quick delivery, and phased enhancements.
- 1960s: Craig Larman and Victor Basili's article "Iterative and Incremental Development: A Brief History,” provide examples of early usage with one of the earliest being NASA's 1960s Project Mercury.
- Early 1980s: Barry Boehm conducted an empirical study that suggested iterative approaches were beginning to receive serious attention during that time. He also wrote a paper, “A Spiral Model of Software Development and Enhancement,” where he presented an iterative model geared to identifying and reducing risks through any appropriate approaches.
- 1995: Alistair Cockburn wrote “Growth of Human Factors in Application Development,” that suggested one major reason why iterative approaches were gaining acceptance was due to the bottleneck in development shifting to learning. The idea was that human learning is a trial and error (iterative) process, thus, the same approach was considered to be used in the SDLC to develop software quicker and with fewer errors.
- 2001: Alan MacCormack reported a study of key success factors in recent projects with the first among them being that they adopted an iterative and incremental development (IID) life cycle.
- 2004-present: Microsoft adopted iterative strategy in software development as did other developers. More recently, with the introduction of the concepts of agile and lean methodology, the focus has shifted to approaches based on the iterative model.
The iterative development process begins with planning and analysis where you map out requirements, gather necessary documentation, and create a timeline for the first iterative cycle.
The second stage is design, at which point your UX design team can establish technical requirements for the architecture that can include language, services, and data layers.
Implementation is the third stage and is where your team develops the functionality and design required to meet specifications.
Stage four is the testing phase and is when testing is conducted that can identify and locate issues, bugs, and what’s not working or performing as expected.
Evaluation is stage five of the iterative development process. Here, your team will compare the iteration against requirements and expectations set forth in stage one.
Once all five stages have been completed, the most recent iteration of the app or website (or product) and evaluation feedback are returned to stage one, and the process is repeated again.
How It Helps The UX Design Process
Now that you know the steps or stages of the iterative development process, let’s look a little closer at each step and how they help with the UX design process.
1. Planning & Analysis
During the initial planning and analysis stage, you begin with planning by meeting with your client to identify software, app, or website requirements and needs as well as business and stakeholder requirements. Before you can begin the UX design process, you must understand the context and needs for the end product.
After your team has gathered the requirements, it’s time to analyze them to ensure a streamlined development process. It’s good to remember that this stage will help set up the following stages and this is where you will need to create a plan and timeline for the first iterative cycle.
For UX design specifically, this is the stage where the team works on several activities such as creating the information architecture or the actual user interface (UI) design. This phase can include sketches, wireframes, prototypes, or design specifications. For software development, this is where the team would establish technical requirements such as languages, data layers, and services.
The implementation stage is where the development and/or design team begins the development process based on the requirements and user feedback. This is the point when specifications and planning and design documents are implemented and coded.
Once the development team has completed their coding and development, it’s time to test for potential bugs or issues that might have been overlooked during the implementation step. This is an essential step as it helps the development and design teams determine whether their design or product works for the users. User testing can be done with stakeholders, users, and product testers.
Once all previous stages have been completed, you’ll need to conduct a thorough evaluation of all development up to this point. The team and clients or stakeholders should examine the project and provide feedback on necessary changes that need to be implemented.
How Effectively Will It Help Your UX Design?
The iterative development process may not be ideal for every UX design project of course. But, it can effectively help your UX design project when:
- Requirements are not clearly defined, but they’re easy to understand
- There are high-risk features that could change
- The app or website is large
- Major requirements are defined, but some details may change
The most important advantage of iterative development is that it improves usability, and developing a product that provides optimal usability and UX is the ultimate goal. The iterative development process allows for a rapid turnaround and issue resolution, lets the designers create and test ideas quickly, is easily adaptable, and is efficient and cost effective.
“Redesigning user interfaces on the basis of user testing can substantially improve usability. In four case studies, the median improvement in overall usability was 165% from the first to the last iteration, and the median improvement per iteration was 38%.” Nielsen Norman Group
Improving Your UX Design Process
From product definition to design to testing, you want your UX design process to work for you, to allow your team to create end products that ensure optimal usability and UX. That may mean taking a look at your current process to look for areas of improvement. With the UX design phases often overlapping, it might be beneficial to lean into the iterative development process and take advantage of the repetitive nature of the methodology. This methodology can help your UX design team create end-products more efficiently, but more importantly, that meet or exceed the user’s expectations and needs. And the bottom line is that you need good UX to keep your customers. Dive deeper into iterative development and how it helps the UX design process.
Abdul has helped over 40 Fortune 500 companies make informed user-centered design decisions through evidence-based user research and UX best practices. As an Adjunct Professor, Abdul has taught in DePaul University’s graduate UX programs and for nine other universities.