Finally, the most likely solutions the team came up with are further refined and formalized, in order to be implemented them in some programming language.
This is not a linear process, and developers usually go back and forth, as the circumstances demand it.