June 12, 2014
Posted by: John Maddox
Inside the web development industry, it is extremely common for client/vendor relationships to go south due to misunderstandings of changes, inability for both sides to communicate ultimate vision, and the inability to account for every variable that is not defined in the scope of work, but mentioned in passing conversation. This can lead to severe mistrust on both sides of the business relationship, with neither side wanting to go the extra mile. In my opinion, the core of this arises from a fear of being taken for a ride.
The Foundational Issue
For the client, frustration often comes because we’re literally speaking a different language, everything doesn’t work correctly until very late in a project, and simply because they are writing a check for something they can’t touch. So many have been burned in the past, their paranoia is legitimate, but in reality it ends up fulfilling itself do to lack of clarity.
On the vendor side, lack of understanding the time, effort and complexity to make modifications, not making payments on schedule, and most importantly, telling us that what we do isn’t that complicated or why should they have to pay for “X” leads to paranoia on our side.
One of the most frustrating things in the web development industry is the difficulty of translating the complexity that goes into building applications, and often even normal websites. What may seem like a very simple change often requires multiple modifications just to avoid the “domino effect” which can bring everything down.
There are literally thousands, sometimes millions of lines of code which you never see, but just a “}” in the wrong spot can crash a piece of functionality, if not the entire site.
The Brick Wall
As this tension grows, both sides instantly go on defense. Not wanting to give up to much as the client or the vendor just perpetuates the issues. This defensive “brick wall” now destroys quality communication, which is vital to achieve the actual objective, which is to turn great ideas into functioning technology. You could never expect to build an amazing house without a fantastic architect, builder, interior decorator, painters, landscapers; without successfully relaying what you want as the ultimate dream home.
That same logic applies to software development. There are project managers, UI/UX teams, database architects, frontend and backend developers, quality assurances testers. Just like building a house, there will always be things that need to be modified, or changed completely as it starts to take shape. If they are not communicated clearly and without distrust, then it is unlikely that telepathy will occur and wishes become true.
Avoiding Issues & Building Better Relationship
In truth, these issues faults on both sides. Not taking the time to communicate with clients, and educate them on processes which will be utilized during their project is a major spark of conflict. It is worth the time to explain how the intricacies in play will come together. If we don’t do our best to keep everyone involved up to speed on progress, it is totally reasonable that concerns start to appear. Just be open and honest with your clients. If you have questions, just ask them and have logic behind your concerns.
On the client side, it is extremely important to accept that there is a significant amount of behind the scenes activity going on that is both difficult to explain and is often much more complicated that it seems on the surface. During the course of development so many things are brought up in conversations that aren’t clearly defined as “essential” requests. If they aren’t on paper it’s very common they become lost. If there are things you want done, just ask. Not from a confrontational perspective, but as a way to make sure everyone is on the same page. We really want to deliver the best possible product we can and what you were actually looking to receive.
Let’s Solve Problems Together
As what is possible with technology only expands on a daily basis, the demand for solutions to problems is growing exponentially. So much time is lost because of miscommunication on both sides. Often time and money could have been saved, and an even better solution created!
In my opinion, it’s all about sides accepting the same goals, and doing everything possible to achieve them. Since we are literally creating something that doesn’t exist, isn’t it better to be a “team” rather than opponents?