Every project is different and I often wear different hats, but my fundamental approach to Interaction Design is consistent. It's a collaborative process where I work closely with a product manager during the whole process and with other designers and developers in different stages. I enjoy this approach because it's effective and I'm always learning new things. These are the steps I follow in my design process.
1. Define the problem
As a designer, my main job is to solve problems and in order to solve them, I first need to define them exactly. Sometimes when I talk to stakeholders they already have an idea of their needs and they have even thought about UI solutions, but when I dig deep into the cause of the problem it's pretty common that the solution is something completely different than what they originally had in mind.
Once I have the problem defined it's time to start the research. I normally do a bit of competitive analysis in order to learn how other companies solved similar problems and later I do user observations and user interviews so I can understand their behaviors and needs.
At this stage of the process, I start looking for solutions to the problem. I normally work with product managers on a story map and after that, I immediately start sketching and creating quick wireframes that I iterate so I can explore different UI solutions. Depending on the project, these wireframes can evolve into interactive prototypes that I build using tools like Sketch + InVision, Framer or Middleman.
4. Test, iterate, test, iterate…
Once I have a working prototype I need to start testing and refining it. I normally start with a very casual testing in the office where I ask some coworkers to complete tasks in order to find the most obvious usability issues. After that, I'll prepare some usability testing sessions with real users or users with a profile similar to our personas. I typically prefer in-person usability testing because it allows me to interact with users and ask follow-up questions. However, this can be time-consuming and sometimes I just use remote testing using services like UserTesting. Once I analyze and extract the test results I use this feedback to improve the prototype, and once it's done I test it again. The process is repeated until I reach an optimal solution for both users and stakeholders.
5. Implement a solution
Lastly, I work with visual designers and front-end engineers during the final implementation of the solution. The result is often deployed for a few users using some kind of A/B testing. I use web analytics and user feedback in the last round of refinement of the product.