The development process we use is the same for all software development we do. It's a process that is very much inspired by the way the extreme programming groups and open source software development works.
The fundamental idea is simple: Develop an early shell of the application and keep expanding on it. We release versions of the software to the client very often. (The conventional open source term is "release early, release often".) The customer will be able to run this application from the first days of coding all the way until the project is done.
There are many client benefits to this development style. Among the most important are:
The one part of extreme programming we insist on using is to develop an extensive regression test suite. While this adds to the initial development time, it pays back immensely by cutting down on debugging time. In other development styles, the programming is no more than about a third of the time spent on the development; the rest of the time is spent in a debugging phase that draws a lot on the client. This debugging time is always a frustrating time for both the consultant and the client, and it is in this phase deadlines are postponed and milestones are not kept. Minimizing this is an effective way to cut down on the whole cost of project, increasing the odds that the budget and timeframes are met.