The rise of the internet and mobile devices has altered the process of software development. With the rapid evolution and deployment of applications across the internet, software developers now need to react quickly to changes in technology, customer requirements and feedback, and rapidly-evolving competition in their sector. These changes in requirements and competition have lead to organisations gaining a competitive advantage by adopting user centered design (UCD) processes, and agile development
This evolution, and altered landscape has made it difficult to develop a product while using traditional development processes. Older software development methodologies (SDMs) have, for the most part, been replaced by new lighter agile SDMs. These agile SDMs are characterised by iterative development, continuous code integration, and the ability to handle changing business requirements. (Livermore, 2008)
Popular agile software development frameworks include Scrum, Crystal, Extreme Programming (XP), Methods, and Feature Driven Development (FDD) (McLaughlin)
Let’s consider the role of User Experience (UX) Design in the most popular agile software development methodology, Scrum, and compare it to its application in the Waterfall process.
Waterfall ModelThe waterfall model of software development was first recorded in 1970 by Winston W. Royce, the first public presentation describing the development process in software engineering was by Herbert D. Benington at Symposium on advanced programming methods for digital computers in 1956. (Wikipedia contributors, 2018)
The waterfall development process is linear and sequential. Development moves in one direction – from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. Each stage of that process has a fixed timescale.
This sequential process is perhaps waterfall’s weakness, in terms of its integration with UX design. The strict one way structure, with milestones, means the design team are unable to begin the design process until they receive the deliverables from the concept stage. Once received, the design process can begin – research, personas, flows, wireframes, prototypes and testing – before the design documentation is passed on to the implementation phase. Any UX or UI errors that emerge after this stage has ended can not be rectified without breaking the waterfall model. The documentation being passed to the design team, and the design team’s output needs to be error-free and, requirements or functionality can not change.
While the waterfall model is better suited to tightly scheduled projects, the same tight schedules and phases of the process mean any issue uncovered late in the design phase may not have any scope to be addressed, and issues uncovered after the design phase can not be addressed as the phase has already passed.
Also, any rapid changes to requirements, new functionality and design alterations may not possible, in order to react to competition, using waterfall.
The waterfall model however is easy to follow and understand, it doesn’t require special training for the design team, and doesn’t require any dedicated team members to facilitate or manage the process
Another advantage of waterfall is where fully working design documents are available, knowledge-loss is minimised when team members leave mid-project. And, new team members can refer to documentation to familiarise themselves with the project (Wikipedia contributors. 2018).
Scrum MethodologyScrum is an agile software development methodology based on the values and principles, expressed in the Agile Manifesto. The agile approach of scrum embraces change at its core. It prioritises flexibility, customer interaction and collaboration, and working software, over procedures and processes.
Hirotaka Takeuchi and Ikujiro Nonaka first introduced the term scrum in their 1986 Harvard Business Review article, “New New Product Development Game“. scrum has become increasingly popular since then, replacing older less flexible methodologies in software development. In 2016 scrum was reported to be used by 58% of software development companies globally. (Yeadon, 2016)
Typically there are three roles in a scrum team – the product owner, whose role is that of the voice of the user, the scrum master, who is the facilitator of the scrum, and the development team, who are responsible for delivery of the product.
Scrum works in cycles, typically two weeks long, known as sprints. At the beginning of each sprint, the scrum team holds a sprint planning event to agree on the scope of work done during the sprint, and to select product backlog items to be completed in that sprint.
Throughout the sprint short daily stand-up meetings are held by the scrum team, to stay coordinated, to keep other team members informed on progress, and to highlight issues. At the end of each sprint, working software is produced, which is demonstrated to stakeholders in a review meeting.
This approach to development facilitates communication – issues can be identified, and acted on sooner. This iterative process facilitates a more optimised product, and, at the end of the sprint, during the review the design team is able to get feedback on progress from stakeholders.
This transparency and communication means, the design team design team will be better acquainted with the product roadmap for sprints in the future, and can plan their design process to accommodate that roadmap.
User testing can be performed more frequently with scrum, meaning each sprint can have many rounds of testing in advance of a sprint review. User testing can be performed with working software, or, earlier in the sprint on prototypes.
However, one of the main hindrances to integrating the UX process with the sprint methodology, is short sprint cycles, these are typically between two weeks and one month. Such a limited time frame does not allow the design team sufficient time to complete an entire UCD process.
The preferred solution to the issue of the short sprint cycles include, the design team working one sprint ahead of the the implementation work, in what is known as a parallel track approach.
Another issue the UX team can encounter is design fragmentation – as each sprint is spent designing and building individual features, the overall user experience can lose cohesion and continuity. To combat this the design team can include a sprint zero. A sprint zero is a sprint, spent researching and building a clear vision, and a tangible user experience for the product. This research, shared with the entire development team, should be referred to throughout the development process, in order to ensure consistency in the product, and avoid a patchwork user experience.
Organisations should also maintain a repository of basic knowledge which can be used beyond individual feature development, the knowledge may include personas, workflows and usability guidelines, this repository is known as foundational user research. (Nielsen J. 2008)
Following a study of best practices in integrating user experience methods with Agile development projects. Jakob Nielsen has suggested the parallel track approach, as well as incorporating a sprint zero, where the design team work one sprint ahead of the development team. The study also recommended organisations maintaining their library of basic knowledge, known as foundational user research. (Nielsen, 2008)
“The onsite customer, in sprint reviews help the development team refine requirements and functionality throughout the project. In the waterfall process, the customer is only involved during requirement gathering but much is expected in agile methodology.” (Da Silva, Silveira, Maurer & Hellmann, 2012)
In his study Nielsen (Nielsen, 2008) highlights the issue of user experience fragmentation – because the product is developed in smaller parts, the integrated user experience of the entire product can suffer, however to combat this he recommends a sprint zero, where a clear design direction and user experience is mapped out.
In the case study “UX Design and Agile: A Natural Fit?” software architect Jean-Luc Agathos and Senior UX designer Julian Gosper of SAP discuss, during the development of SAP BusinessObjects Explorer, some of the issues they faced while using agile to develop the product – these issues included, all contextual inquiry, including prototyping and user testing would normally be completed before development would begin, however, given the short turnaround between product inception and release, it wasn’t possible. (ACM Queue, 2011)
Where development is carried out by distributed teams, the face-to-face communication that is such an important part of the scrum process is not possible. In this case the documentation of requirements and designs, that define waterfall are important to ensure all team members share the same product vision. Also, the agility and effectiveness of this face-to-face communication can also be hindrance to a project where there is a larger development team on the project. (Turk & Rumpe, 2002).
Because Agile was conceived as a set of principles to guide software development there is a certain amount of controversy and confusion regarding how they should be applied to UX design. (Bowes, 2015)
The waterfall model is a sequential design approach. Development moves in one direction, from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. This sequential process is probably waterfall’s weakness, in terms of its integration with UX design. The strict one way procedure, with milestones, means the UX design team are unable to begin until deliverables have been passed on from concept stage. And, after the design stage is complete and the process has move on to implementation, the design team are no longer involved in the project.
As well as requiring a proper UCD process and iterative design, modern software development must be able to react, at short notice, to new developments, and to threats from competing products at short notice – waterfall does not facilitate this.
The agile approach of scrum, however, embraces change at its core. It prioritises flexibility, customer interaction and collaboration, and working software, over procedures and processes. This approach means the entire development team is able to react quickly to unpredictable and constantly evolving market requirements.
While neither process is a perfect fit for the UCD process, the one that is in a better position to accommodate it, and maximise the potential of the user centered design process, is the more adaptable sprint. This onboarding can be facilitated by including steps, such as the parallel track approach, incorporating a sprint zero, and allowing the design team to work one sprint ahead of the development team.
ACM Queue (2011, January). Case Study: UX Design and Agile: A Natural Fit? Retrieved 17 March 2018, from http://delivery.acm.org/10.1145/1900000/1891739/p50-casestudy.pdf
Bowes j. (2015, February 11). How to Create an Agile UX Process. Retrieved 10 march 2018, from https://manifesto.co.uk/agile-ux/
Da Silva T.S., Silveira M. S., Maurer F., Hellmann T. (2012, August 11). User Experience Design and Agile Development: From Theory to Practice Retrieved 19 March 2018, from http://file.scirp.org/pdf/JSEA20121000004_43932385.pdf
Livermore J.A. (2008, April 8). Factors that Significantly Impact the Implementation of an Agile Software Development Methodology. Retrieved 20 March 2018, from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.522.2441&rep=rep1&type=pdf
McLaughlin M. What Is Agile Methodology? Retrieved 21 March 2018, from https://www.versionone.com/agile-101/agile-methodologies/
Nielsen J. (2008, November 17). Agile Development Projects and Usability. Retrieved 17 March 2018, from https://www.nngroup.com/articles/agile-development-and-usability/
Wikipedia contributors. (2018, March 6). waterfall Model. In Wikipedia, The Free Encyclopedia. Retrieved 17 March 2018, from https://en.wikipedia.org/wiki/waterfall_model#History
Yeadon J. (2016, April 12). The State of Agile Today. Retrieved 16 March 2018, from https://www.smartfile.com/blog/2016-state-agile-report/
Turk D., Rumpe B. (2002). Limitations of Agile Software Processes. Retrieved 16 March 2018, from http://rumpe.net/staff/rumpe/publications/Limitations-of-Agile-Software-Processes.pdf
Follett J. (2017, May 2). Integrating Agile and UX design. Retrieved 10 March 2018, from https://www.oreilly.com/ideas/integrating-agile-and-ux-design
Kachur L. (2016, September 7). Battle of PM Methodologies – Waterfall vs Agile vs SCRUM. Retrieved 20 March 2018, from https://boost.solutions/blog/battle-pm-methodologies-waterfall-vs-agile-vs-scrum/
Ogrin A. (2016, September 7). Designing Sprint Zero. Retrieved 21 March 2018, from https://medium.com/@amyreneogrin/designing-sprint-zero-7b2873a31d24
Ogrin A. (2016, September 7). Agile Development that Incorporates User Experience, Part 1. Retrieved 21 March 2018, from https://medium.com/@amyreneogrin/agile-development-that-incorporates-user-experience-executive-summary-40414583de76