There are many factors that go into successfully completing a project. A few that we focus on are client participation and communication. Keeping the client involved in the project at all phases insures that the work is completed accurately the first time. This minimizes the need for reworking any features saving both time and money. I will focus on a few of the methods we use to keep clients informed.
One of the key tools we use is our project management system Trac. It's an open source ticketing solution we've customized to fit our process. The lead engineer responsible for breaking each project down into a series of smaller tasks and creating tickets for each of those tasks. Tickets can contain any thing from small bug reports to detailed design including database design, mockups, business rules, etc. Tickets can be grouped together by milestone or component to make it easier for the client to track progress. The system allows for clients and the development team to review and participate in discussions about each task.
Part of configuring Trac is setting up email notification recipients. Once completed each subscriber will get an email message every time a ticket is updated. It's a great way to keep all those involved up to date on the latest changes. On large projects with hundreds of tickets this can be a little overwhelming and hard to keep up with so we do offer other options for clients based on their preferences. Some of those options are do daily/weekly phone calls, daily/weekly status reports, skype chats, or use a clients internal system.
The time frame when client participation and communication are most important is in the early phases of the project while the lead is performing a detailed analysis of the project specifications and working on system design. During this phase it's critical for the client to be available to respond to questions and provide clarification when needed to ensure the project gets off to a good start. As a project nears completion it's also important for the client to have experts in each are of the system do an in depth review of the system to ensure all requirements have been met.