This is the design process that I have learned throughout my time designing and building websites & web apps. I am sure it is not that different from yours, but I thought it would be cool to share.
Analysis & Specification
This is a crucial phase of the application design process. Gathering all the requirements, objectives and specific functionality that the design should provide solutions for. Be detailed and look closely to all requirements, these will often have ramifications that need to be addressed, and if you fail to do so they will come back to bite you. The more in depth this process is, better the response to the specific problem. You really need your head screwed on specking a product. Produce light documentation as a reference for you and the client.
Sketching, Wire-framing & low-fi prototyping
Use sketches and low-fi tools to quickly iterate solutions for the design challenge. Detail content blocks, positioning of controls, animation and all other interaction behaviours. This is the perfect time to debate with your team, identify possible technical problems and find the solutions. This is generally a long process, but it will save you an enormous amount of time later on. This phase will make the most impact in the finished product. Iterate & iterate!
Visual Design
By now most technical problems have been identified and solved. You know where most visual elements will sit. While in the prototyping phase, any good designer has pictured the application in its full splendour, it’s time to bring that vision to life, use hi-fi tools to deliver a polished, intuitive and functional user interface. Make the user understand and enjoy using the application. Convey meaning, use semiotics basic rules to convey meaning and function. Add eye candy with moderation keeping usability in mind.
Build & Implementation
It is time to pour all the previous work into the build of your product. Keep to the plan, no deviations, no downgrades, no feature suppression, nothing but the plan. Often in this phase unexpected problems will arise. No worries, these will often lead you to research a bit further to deploy the exact experience you had in mind. Make sure you test and correct any possible limitations or flaws, specially in the realm of browser support and accessibility. Produce light documentation for your app, this will be necessary for the training and support for your app.