All projects begin the same way. Identify the users, examine the data, determine the project's goals, put a cap on costs, and dream. We never expect the client to design a solution or even set expectations. We rely upon the client for feedback, however brutally honest, and to help us understand client needs and the data at hand. Our objective is to empower each user while providing a rich user experience.
Design always precedes programming. We build a complete click-around template for each user type to mimic the user the experience. The pages can be screenshots or interactive html. The design encompasses where you want it today and where you want it a year from now. The models are easy and cheap to edit because they don't involve programming.
The finished project needs to look and act like the click around model. All features need to be tested with good, bad, and null data. The goal is two-fold - 1) Does everything work according to expectations? 2) Given a bounty, can a tester "break" the product?
The user experience is highly educational. Products are often used in unexpected ways. Be prepared to adapt and use your best judgment to ensure the product was built with flexibility in mind.