Respect your Design Process

We're working on some fairly big projects at the moment, a number of which are still at the design stage. We have a pretty solid approach to design here at Sereno but as new methodologies and tools emerge, it's important to continually question your process and make improvements. For example, while we have used a five stage project delivery approach for over ten years, the details of the phasing has changed a lot. Our phases are pretty self-explanatory and hold true for Drupal and non-Drupal projects: Discovery, Planning, Development, Quality Assurance, Maintenance.
Up until a couple of years ago, we'd either develop ourselves - or receive from our clients - PhotoShop designs for how the site or application would look very near the start of a project. This could occur at the Planning or often as early as the Discovery stages. These days, polished screen design has shifted into Development. We employ a whole raft of design tools to work in partnership with our clients to develop a fully comprehensive and functional specification before we begin worry about what shade of pink or blue we're going to use.
We find that developing with user profiles & user stories fully engages our clients in the design process. We can guide and manage this exercise but we know it's our clients (and their users or customers) - not us - who are the experts on how the system needs to operate. With powerful and accessible design methods that anyone can employ and understand, we find our clients both enjoy and engage fully in the process of design. Use plenty of pens (good quality ones it feels nice to draw with), paper & post-its. It doesn't have to be high-tech. There are plenty of great tools like like Balsamiq or Mockflow to help you pull this together later on, or (agile) project managament software to help you keep track of your stories (we're currently testing Kanbanpad).
I can't emphasise how important it is not to rush this stage. There is always a pressure to move forward to deliver a functional specification as early as possible - a document, a data model, a pretty picture - whatever. But experience over many years shows that resisting this pressure is key to project success. Create your user profiles; spend time describing all your user stories; draw wireframes of as many key screens as you possibly can. I know there's only so much time and so much budget. I'd love always to work on projects where Discovery and Planning stages actually set the budget, and sometimes this even happens! But for many projects, clients need to know how much the project is going to cost them up-front. Experience (and keeping on top of your time-keeping and project management) will guide you here - however, you must stick with the plan and get your design right before committing to the next stage of your project.
What I've learned is to hold fast to the principles of good and thorough design. Clients and developers are partners in a joint enterprise. Maintain your faith in the process and only begin building your product when you are really ready to do so. What you'll then find is that building websites and applications is ultimately quicker, more reliable and very much more successful.