Process
The design process is like diamond cutting. When it's applied it brings order, highlights strengths, reduces noise around the way to the best solution. Some designers enjoy the result of their work and me too, but I also enjoy the process.
Depending on a project and knowledge certain steps might be omitted but in any case, the following phases are essentials of the design process.
Understanding the problem
First of all, we need to understand the problem. Sometimes the problem may seem simple and straightforward but in reality, it's a very complex object which consists of a lot of parts. We need to understand who the users are, which goals we try to achieve and all other contiguous questions. More specific we answer these questions more chances the solution we come up with will work. Research helps to define next steps and understand the scale of the problem we try to solve. It might include observation of the problem, reviewing existing solutions, talking to stakeholders, interviewing users.
Ideation
Personally, I like when an entire team goes to a room with a board, markers, and post-its and we all together brainstorm about possible solutions. Beforehand, we briefly recall the outcome of the research, the definition of the problem (or problems), look at the portraits of our users again. With all this in mind, we start tackling the problem. Brainstorming process might differ depending on people preferences and type of characters. A quite universal process might consist of individual brainstorm + collective discussion. The outcome of this process is a bunch of ideas which might be combined or transformed into a possible solution that can be developed and validated further.
Sketching & Wireframing
Sketching is able to define a basis for a solution within relatively (comparing to development, for instance) short period of time. That is where buttons and arrows appear and where you start shaping the interface. The point here is not to make the final and perfect sketch of the interface but to come up with many variations evaluating each and finding the best. The outcome of this step is wireframes covering hero scenario and edge cases.
Prototyping
The purpose of a prototype is not only user testing but also understanding the product better by developing interactions and immersing into the details. In my opinion, a prototype has to replicate the real product as much as possible. If there is an opportunity to use real data and dynamically update content I will always do it. A perfect prototype is the one that enables a user to use it without a single thought that it's not real or it's not working fully.
Testing
Apart from usability and accessibility evaluation testing is used to identify potential issues or missing features. Depending on the product variety of methods can be used to validate the solution from observation and interviews to A/B tests.
Iterating
There is always something to improve, innovate. The world continuously changes, technology moves forward bringing new inventions. The basis of any solution might work for decades and we will never know it in advance. A good solution will stay for years, great will change shape and adapt to the new reality. Many things will be reinvented again or opened from the new perspective. Never stop thinking, always improve and iterate.