Our process starts with Phase Zero, a session that involves a one to two day, face-to-face client meeting to review the precise features that the project will have at its completion.
At the same time, we generate mockups and user stories for each page in the application. Doing this in-person with the client at the beginning of each project helps us guarantee that we have a firm, shared vision of the project to move forward.
From this initial vision, we build the simplest thing that will work, using test-driven development. This allows us to put a working, albeit incomplete, product into the customer's hands in the earliest feasible timeline.
At this point, we work alongside the customer to move the application from “a thing that works” to a product they love. Getting this right requires a period of near-constant contact.
Now we get the current version of the product out the door and in the hands of the end-users. As soon as users are involved, we can work with the client to not only build the product the client planned, but also the product and experience that their end-users desire.
Web software is a living, breathing creature. Metaphorically, of course. You want to add and refine features to gain customers and keep them happy. We aim to keep a tight feedback loop between shipping software and adding functionality.