Often there are stories related to “customer from hell”, “cheating webmaster”, “web developer disappearance”, etc... Partially there is a lot of truth, but let's not forget that there are two sides in these stories.
Practically communication between web developer (company) and customer is extremely important, but what usually happen is that there is misunderstanding, that's why educating the client is important.
All the steps that I will describe are absolute necessity to prevent future problems and possibility to do double job.
Communication with your Team
Every project is related to cost, time-frame, technology choice, scalability, etc... As a team leader you should have the expertise related to all these factors. In web development there are always delays, but sometimes delay on time-frame is related to miscalculation by the company or changing the project too often in the last moment, to fit client requirements.
Collaboration between the team is very important, as well as prioritizing the tasks, you simply can't build a house, if you try to put the windows first.
Planning and Communication with Customer
Especially for brand new web project, creating a detailed outline of what customer want is essential. Document all communication and requirements, to prevent delays. Recently I've worked on a project where design was changed few times, logo, headers and features were replaced about 5 times each and there were request for extra functionalities all the time.
This may turn your customer angry, but if everything is documented, extra request and changes in the last moment may be prevented or you simply may ask for additional charges. Very often inexperienced customer will take advice from inexperienced friends. This will happen more often that you can think of. Often there will be request for color change, layout change, or something else, just because a friend don't like blue color or someting similar.
Educate your Customers
Most customers that require web development/design help, do not know anything about web development, web trends, good design practices, online marketing, etc... Be prepared to explain a lot, explain the basics with simple words that everybody can understand, hopefully client will have strong common sense and will understand some of the essential concepts.
Prepare documents regarding all work done by your team, step-by-step providing details on different milestones achieved by your team. Keep customer updated all the time.
Work In Progress, Support and Maintenance
Majority of customers that I've worked with do not clearly understand that a web project is continues work. Many simply think that after web development is completed, job is done.
I have to admit that many of these customers do not want support or expect support for free. Two particular “fresh” cases:
Customer 1: “Can you add this or replace that in the website for free?” - this conversation appeared a project that was completed 2 years ago and customer was not interested in maintenance and support services.
Customer 2: “You will not charge me for SEO services, right?” - Conversation on web development completion. Even stated clearly on our first meeting that SEO services cost …
Customer 3: “My website crashed, can you fix it?” - another customer that decided that can handle project in house and didn't perform any updates on their WordPress website.
Customer 4: “Website was in Google top 10, two years ago, two years ago, my SEO left”, he cheated me. Why now website is invisible?” - Well, this particular customer don't understand that SEO is continues job, results can be there after 2 years lack of SEO.
Customer education and communication with customer, plays very important role for fast project completion. Both sides should be synchronized all the time.
Customers simply don't understand web development process, the way you do, if they do know, probably wont need to hire you. Often there will be request for free services by them on completed project.
Be patient, explain everything in details and keep everything well documented.