It's relatively simple to build websites and webapplications if you compare it to building with bricks. You don't need any permits, no pouring of concrete nor to buy any expensive machinery and building materials. If all goes well you don't need a morgage or a notary nor years of patience before the build can start. Unless things go really bad.
Unfortunately that also happens. Just like in all IT projects al lot can go wrong. This often has to do with communication and not understanding each other.
For my studies I once wrote a thesis with the title "Do we understand each other?". It sounds so very simple. And in theory the proces is very simple. But in practice, having a clear message, listening and giving (relevant) feedback can have many possible disruptions. Proffesional dialect and abbreviations and a differrent frame of reference don't make it any easier. Understanding that someone possibly really doesn't understand what I'm talking about with “mobile first”, “accessibility” and “api’s”, is apparently pretty hard.
Furthermore, you can have endless meetings and agreements, if someone has never seen the light it might be impossible to explain how it looks like. This counts for all involved parties. There are often many differences in knowledge, experience and talents. In practice this often means getting "new insights". You can best take this into account and be on guard for it.
Who expects what?
It's a cliche but to be happy with each other as client and builder managing expectations is probably most important. But maybe also the most difficult. Because as a builder (and salesman) you want to promise the perfect endresult but in practice you run into limitations of technology, available knowledge and budget and also the many "new insights" these projects tend to have.
To avoid frustrations and damaging the relationship you have to ask a lot of questions and listen well. What's the purpose and what endresult are you hoping for? How does this look like (for example)? Make designs and wireframes. What's the budget and when should what be delivered?
Do not lose sight of the end goal
All kinds of methods can help aligning communication. Daily standups, sprints with all disciplines and the clients in one office, kanban boards, many many post it’s, interactive wireframes, open discussions, lots of calls and a chat channel. All good and usefull tools.
Unfortunately even these tools do not guarantee succes. The daily standup can equal a daily waste of time and while scrumming the tool itself becomes the purpose instead of helping reaching the end goals. Common sense should be able to help here.
Asking questions and listen
When to use what tools might be a matter of knowledge and experience but asking questions and listening hard to the answer always helps.
What also helps enormously as a client is to have the end goal very clear. And to understand what it needs to get there. It sounds so simple!