In my last post “Challenges in UX integration with different SDLC models” we explored about the challenges of fitting UX into different SDLC models. I would like to extend that discussion in the current post.
he pre-agile era saw many attempts of UX getting fitted into the waterfall and it’s derivative models of SDLCs. Such attempts by the many developers were natural outcome of the post-projects disasters, where ‘design’ was never the personality of “software product engineering” and the lack of usability doomed the products even after the initial set of requirements check list was fulfilled.
More demands for Graphic User Interfaces (GUI) in software application (due to GUI’s power to offer better visibility and power to the end users) tempted the developers to follow emerging UX practices which included a task to add “design phase” to existing SDLCs. Waterfall model was good enough to accommodate a notion of design in its phases and become popular despite its limitations (which later pave paths for Agile era). Most of the design approaches and techniques created during this era were having mostly a goal “to eliminate any deviation during the development process, by telling the developers exactly what we expect of them”.
Let’s see how different models of SDLC accommodated UX differently in the following:
In this process the developers follow the different phases described in the previous section in order.
UCD components in Waterfall model:
Historically the waterfall model of SDLC can use the UCD components in its engineering process and the product to translate the “set of requirements into something beautiful”. It is relatively simpler and easy to spot the to spot the areas within different phases where UX can be easily fits in as each phases are clearly
In this model once one phase is finished, it proceeds to the next one. Reviews may occur before moving to the next phase which allows for the possibility of changes. Reviews may also be employed to ensure that the phase is indeed complete; the phase completion criteria are often referred to as a “gate” that the project must pass through to move to the next phase. Waterfall discourages revisiting and revising any prior phase once it’s complete.
In this model deliberate iterative risk analysis, particularly suited to large-scale complex systems happens at a predefined frequency. It emphasizes risk analysis, and thereby requires customers to accept this analysis and act on it. So the developers typically spend more to fix the issues and are therefore often used for large-scale internal software development.
The Spiral is visualized as a process passing through some number of iterations, with the four quadrant diagram representative of the following activities:
- Formulate plans to: identify software targets, implement the program, clarify the project development restrictions
- Risk analysis: an analytical assessment of selected programs, to consider how to identify and eliminate risk
- Implementation of the project: the implementation of software development and verification
Because of frequent risk analysis and more effort spent by the developer to analyze the risks accurately, the cost factor goes up in the project.
UCD components in Spiral model:
In Spiral model, the UCD design can work across different quadrants of activities. The first quadrant where the objectives are determined, the usability and user research can happen as this is where requirements are planned. In the second quadrant the activities involving risk identification can best use UX activities involving IA and prototyping. The third quadrant of development and testing can utilize consultation and usability testing. The final fourth quadrant of activities can be used for feasibility evaluation and setting up usability metrics and bench marking for the next release.
Iterative development model
This method helps to develop a system through repeated cycles and in smaller chunks at a time, allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system.
Incremental development divides the system functionality into increments (portions). In each increment, a portion of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition. It identifies scope, functional and non-functional requirements and risks at a high level which can be estimated.
Applying this model to multidisciplinary complex project with large volume can come with a risk as inability in the developers part to uncover important issues early before problems can spoil the project.
UCD components in Iterative development model
In this model each iteration cycle can be divided into different activities phases to incorporate UCD methodologies for UX integration. Each iteration activities block that are mostly split across concept, design, build and test phases can be used for different UCD activities.
This is perhaps today’s the most widely used SDLC model. It uses iterative development as a basis ,but uses people-centric viewpoint through user feedbacks rather than planning as the primary control mechanism. The feedback is driven by regular tests and releases of the evolving software.
There are many variations of agile processes “:
- Agile Data (AD)
- Agile Microsoft Solutions Framework (MSF)
- Agile Modeling (AM)
- Agile Unified Process (AUP)
- Dynamic System Development Method (DSDM)
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Usage-Centered Design (UCD)
UCD components in Agile development
This is the most popular and successful SDLC model as of today as it allows better scope in providing continuous and iterative refinement to the product.
Historically when developers out of their frustrations with waterfall model turned to the growing Agile Movement to regain their control over the process, they found that “like its ancestors, Agile also didn’t take UX into account. Several of the Agile methods, such as Scrum and XP, recommended users sitting with the team during the development process, but that isn’t the same as design. Everyone who figured out how to get what they wanted from plugging UX into a phased waterfall approach was now struggling to work inside the Agile methods. The Agile principles, that focus more on communication and less on contracts, didn’t fit the status quo UX processes”. So efforts were made again to implement UX into Agile methods just like the way it was implemented into waterfall model . But it was not easy as , in waterfall model there are 2 things which helped implemented UX :
- The objectives of the project stays same from kickoff to the point where the finished product is launched.
- The designers created the set of design specifications as a contract which the developers had to implement into the final product.
And above two cannot be expected from Agile model as it is based on iterations and gradual exploration of what is best fit for the final product . On ejust simply cannot predict the final design from the start of the project. So many attempts were made to get the best agile SDLC practices that can incorporate the UX , before “Lean UX” was born.
As the above figure shows the documentation and guidelines are stripped to their bare minimum components, providing the minimum amount of information necessary to get started on implementation. Also Long detailed design cycles are discarded in favor of very short, iterative, low-fidelity cycles, with feedback coming from all members of the implementation team early and often.
(c) 2013-14, Samir Dash