As part of our Design Concept series, we’re de-mystifying some software design and development terminology for the curious among you. Today we’ll be discussing the Agile User Experience model— what it means and why people use it.
When people talk about the Agile process, they’re referring to a group of software development methodologies. For this blog post, know that ‘iteration’ is another word for ‘repetition’ and is the term commonly used in the software development industry. Agile methods and processes require a disciplined team to carry out frequent inspections and adaptations. An Agile team works both collaboratively and proactively, carrying through the business goals of the stakeholder and the needs of the user into every part of the application. Agile methods take large scale projects and break them down into manageable short-time frame sections. Breaking a large development project into smaller chunks helps to shorten the overall timeframe of the project by distributing risk and gathering feedback throughout the duration of the project.
Before Agile software development there was ‘Waterfall’ development. A longer process that required huge specification documents from executives, analysts and stakeholders. This would then be passed to the development team—who would begin the long process building out the entire system before releasing it to end users for feedback. During this process, any UX or design feedback would come at the end of the project—which made change control difficult to manage.
Coined in the early 2000s, the Agile methodology was first defined within software engineering when a group of leading software developers met, determined to figure out a faster way to get new software to market. They went on to define four core pillars that set it apart from the outdated and slow waterfall model, as well as 12 principles. Together, these make the Agile manifesto. These are the core pillars of the Agile methodology:
● The interactions of an individual user > processes and tools.
● Working software >comprehensive documentation.
● Customer collaboration >contract negotiation.
● Responding to change >following a plan.
● Customer satisfaction is always the highest priority and is achieved through rapid and continuous delivery.
● Changing environments are embraced at any stage of the process to provide the customer with a competitive advantage.
● A product or service is delivered with higher frequency.
● Stakeholders and developers collaborate closely on a daily basis.
● All stakeholders and team members remain motivated for optimal project outcomes, while teams are provided with all the necessary tools and support, and are trusted to accomplish project goals.
● Face-to-face meetings are deemed the most efficient and effective format for project success.
● A final working product is the ultimate measure of success.
● Sustainable development is accomplished through agile processes whereby development teams and stakeholders are able to maintain a constant and ongoing pace.
● Agility is enhanced through a continuous focus on technical excellence and proper design.
● Simplicity is an essential element.
● Self-organizing teams are most likely to develop the best architectures and designs and to meet requirements.
● Regular intervals are used by teams to improve efficiency through fine-tuning behaviours.
Agile UX brings UX practises to the front line within Agile software development teams. As the Agile methodology was initially conceived as an engineering process, UX and design in general weren’t originally factored in. Agile UX involves embedding a dedicated UX specialist within the team and making sure their expertise is valued. The Agile values of ‘think, design and prove’ have been present in the UX design since its creation. Working within multidisciplinary teams comes with it’s own challenges, but when done right, the insights gained into the potential pitfalls and overall project management process are priceless.
For example, there are many different techniques and processes that Agile teams deploy. Let’s look at two of these, Scrums & Sprints, and see how you might incorporate a UX designer into the process.
Ironic athletic themes aside, the use of Scrums and Sprint are synonymous with Agile development.
The Scrum is arguably the most popular agile framework, in which the sprint- the Agile term for ‘iteration’ is carried out. A sprint is a short, time-dependent period when a scrum team commits to complete a set amount of work. When each sprint is completed, A Scrum meeting will assess its success and define the areas that can be improved for next time. Next steps are decided for the next meeting, and the cycle repeats. It is critical for design to play an integral role within this sprint process, validating assumptions and making sure the intended design and UX has been adopted.
An Agile methodology has its benefits; increased flexibility, increased productivity, higher quality deliverables and a reduced risk of missing deadlines and going over time-frames. It also has its pitfalls. There is no one project management methodology that will work perfectly for every project, and every team. In truth, each project will come with it’s own unique challenges and it’s up to us to determine the best way forward for everybody.
At Ember, we use a Hybrid Agile development process which includes sprint scrums and retrospectives, so we can still deliver within fixed budgets and timeframes while giving ultimate respect to the User Experience. To accommodate this flexibility within a project it is important for us and our clients to manage project risk transparently, especially in circumstances where budgets are fixed within a specific scope agreed during our design and UX phase. Our Hybrid methodology provides the framework to iterate and deploy regularly while allowing change control to be managed as part of the Agile process. This Hybrid methodology is what makes it commercially viable for our clients to work in an Agile way.