I cooperate with a designer/UX expert and another full stack engineer depending on the type of project.
While approaches may vary per project, over time I've become convinced of agile development. Projects typically go according to the following pattern:
Developing begins in 1-3 week sprints
Before the sprint, the sprint goals are submitted. When the sprint is over, the goals are reached and a demo is given and the client can give feedback and decide on the next features to develop.
The sprint system goes on for as long as the client wishes.
Support contracts can be agreed upon depending on the client's need. These support contracts range from monitoring and maintaining the application and servers to active support for users e.g. email support.