Using design techniques as a helpful tool
Defining a solution is not easy. Determining its technology increases the difficulty of doing so. It is true that, during your career as a software architect, you will find many projects where your customer will bring you a solution ready for development. This can get quite complicated if you consider that solution as the correct solution; most of the time, there will be architectural and functional mistakes that will cause problems in the solution in the future.
There are some cases where the problem is worse—when the customer does not know the best solution for the problem. Some design techniques can help us with this, and we will introduce two of them here: Design Thinking and Design Sprint.
What you must understand is that these techniques can be a fantastic option to discover real requirements. As a software architect, you are committed to helping your team to use the correct tools at the correct time, and these tools may be the right options to ensure the project's success.
Design Thinking
Design Thinking is a process that allows you to collect data directly from the users, focusing on achieving the best results to solve a problem. During this process, the team will have the opportunity to discover all personas that will interact with the system. This will have a wonderful impact on the solution since you can develop the software by focusing on the user experience, which can have a fantastic impact on the results.
The process is based on the following steps:
- Empathize: In this step, you must execute field research to discover the users' concerns. This is where you find out about the users of the system. The process is good for making you understand why and for whom you are developing this software.
- Define: Once you have the users' concerns, it is time to define their needs to solve them.
- Ideate: The needs will provide an opportunity to brainstorm some possible solutions.
- Prototype: These solutions can be developed as mock-ups to confirm whether they are good ones.
- Test: Testing the prototypes will help you to understand the prototype that is most connected to the real needs of the users.
The focus of a technique like this one is to accelerate the process of detecting the right product, considering the minimum viable product (MVP). For sure, the prototype process will help stakeholders to understand the final product and, at the same time, engage the team to deliver the best solution.
Design Sprint
Design Sprint is a process focused on solving critical business questions through design in a five-day sprint. This technique was presented by Google, and it is an alternative that allows you to quickly test and learn from an idea, needing to build and launch a solution to market.
The process is based on a week dedicated by experts to solve the problem mentioned, in a war room prepared for that purpose. The week is separated like this:
- Monday: The focus of this day is to identify the target of the sprint and map the challenge to achieve it.
- Tuesday: After understanding the goal of the sprint, participants start sketching solutions that may solve it. It is time to find customers to test the new solution that will be provided.
- Wednesday: This is when the team needs to decide the solutions that have the greatest chance to solve the problem. Besides, on Wednesday the team must draw these solutions into a storyboard, preparing a plan for the prototype.
- Thursday: It is time to prototype the idea planned on the storyboard.
- Friday: Having completed the prototype, the team presents it to customers, learning by getting information from their reaction to the solution designed.
As you can see in both techniques, the acceleration of collecting reactions from customers comes from prototypes that will materialize your team's ideas into something more tangible for the end-user.