Waterfall projects may dictate a different approach and rigor surrounding design when compared to Agile.
Consider the phases associated with both waterfall and Agile. How you would approach design for a new project, based off each of these SDLC approaches? Consider User Experience Design and Bottom Up Design approaches. Provide an example of a project (either from your experience or one you read about) and explain what documents you would produce, why, and how that would affect future phases of the project.
Respond to at least three of your peers. In your response, consider providing another example of a similar project.
For a new project that utilizes the waterfall methodology, the design approach that would suite the project would be a Top Down Design. Waterfall allows for early design changes and the top down approach allows for the user interface to be changed (if needed) multiple times to satisfy the customer (user). Another reason for using the Top Down Design for waterfall is because both the design and methodology use and rely on extensive planning. I would utilize mock-ups for this project. The mock-up would provide a high-level visual design of what the final product would look like and how it might function even though the functionality might not be working at the time.
When examining the Pluralsight: UX-based Software Design course, I see that the instructor summarizes his approach as a hybrid development where the overall structure is a waterfall that goes from clarifying user requirements from the user’s perspective utilizing use cases, wireframes and prototyping to help hone the requirements using mockups to record and verify what the user’s needs are. The output from this process then dumps into an iterative feedback phase where the actual software development process begins using Agile methodology. The development goes through Learn, Build and Measure as many times as is necessary. The instructor also says that the project may require multi-phasing which includes returning to the user requirements phase to address issues, clarify further, and elicit additional feedback from the user, which might then dump back into the Agile development phase until the project is accepted as complete.
I think this would be very much like our institution’s overall migration project where we moved from an old content management system to a new one. Our IT department worked closely with impacted stakeholders to get input about why the old system was failing to meet their needs. They then spent a significant amount of time gathering requirements from them on what type of system they wanted to have and drew up requirements documents before going out to scout new products. Once then felt they had a clear idea of user needs, they met with vendors to find something that most closely matched user needs, our existing infrastructure, and had the ability to be further customized.
We continue to iterate through different phases as we get new information on bugs and problems and continue to develop new solutions and upgrade when necessary. We are in a refinement stage now but in general, stay in a maintenance phase.
Esposito, D.(2016). Cutting Edge – Architecture Spinoffs of UXDD. Retrieved from https://msdn.microsoft.com/en-us/magazine/mt632268.aspx
Esposito, D. (2017). UX-driven Software Design. Retrieved from https://app.pluralsight.com/library/courses/ux-driven-software-design/transcript
I would use the approach of the bottom up design. I like that because you can know what you want, or what the stakeholders want and how it works, and know where to get started, then all the details can come as you are building the program. As I was reading trying to find a good example to use, I found that most industries use both the top down and bottom up designs for different reasons. But one that stood out to me, was that these processes were also used in psychology. All people process information differently. Both our sensory and cognitive behaviors are using skills to make informed decisions about certain tasks or situations. The documents that could affect future of each phase of the project, for this example, would have a few different types of people for each example, and just run different tests, by making small changes, because small changes can make a bigger impact then we really know. So by having more than one opinion, can help with the process to know how different people will help and react to each idea and the program can help them in the long run.