With the goal in mind, the team needs to define what to build to make that happen. While the team doesn’t need to detail every requirement up front, they do need to understand enough about the full scope of the solution in order to select and estimate the first release. Teams will also do enough design in order to make key design decisions and ensure they start building on a solid foundation.
Defining the application starts with understanding those who will use it. For each type of user, teams should create a persona. The persona not only defines the role this person plays in the application, but also describes a representative profile of the person, including their background, needs and typical work environment. By personalizing the user profile, teams can focus on what end users really need and how they will interact with the application.
The persona could include:
Given that the new application will change the way stakeholders work, developers need to understand that context well and look for ways to make their job easier. Ideally, this would happen by “walking the floor” with real users performing their jobs. If that’s not possible, an SME could describe it. For each major step in the process, focus on two things:
Now, development teams must identify the required functionality for the application. Teams do this using a technique called Story Mapping where they will identify what, exactly, the application will need to do. By distilling the major activities users perform into smaller tasks, teams can show how everything fits together. Each of these requirements will be captured in a User Story which illustrates how the user will interact with the application. By focusing on the interaction and expected application behavior, this avoids constraining the team to a specific design at such an early stage. Finally, all of the stories from the map will be collected into a list of requirements, called the Product Backlog.
In addition to the required application behavior, teams must identify important non-functional requirements of the solution. These include:
Teams should also perform an environment sizing analysis at this stage in order to forecast infrastructure requirements.
For critical design elements, teams create light-weight prototypes. This allows for fast feedback from stakeholders and to ensure the team has a clear understanding of what’s needed. It’s often easier for users to communicate what they need by reacting to something concrete. Light-weight prototypes enable valuable feedback without significant effort.
Here are typically the important design aspects to prototype during the design phase:
© 2020 Appian. All rights reserved.