Building Great Client Relationships

Mar 21, 2010 • Josh Cramer

We are currently in the process of launching a fairly large web application that we’ve been working on for one year. We built this application under a client / contractor relationship, but through the lifecycle of the project, we’ve been able to build the relationship together with the client to the point where everyone involved really feels like they are part of one organization. This relationship has taken time and effort to develop, but several things have greatly helped us along the way.

Transparency in Communication

Often in the client / contractor relationship, a wall exists between what the client sees and what the contractor is actually doing to get the work done. Sometimes this arrangement is preferred by the client, while other times, the client is forced to pry in an attempt to see what’s really going on with the project. It is my opinion that this wall needs to be broken down in our industry. If we are really doing our best work we should not have anything to hide, good or bad. Transparency is also the best motivator for us to always give our best and to ensure that everyone’s expectations remain based in reality.

Being a distributed team, we are very adept at using web based project management (we use Redmine) and communication tools. It was natural for us to invite the client into this environment and to interact on this playing field. I think our experience working as a distributed team actually helped us to teach our client how to work together effectively across borders. We granted full access to the project management site and allowed the client to see every action taking place on the project in an up to the minute fashion. This was not some site that we maintained for the client’s consumption, this was the actual tool that we ourselves used to do our work. We also gave out Skype usernames and encouraged direct collaboration whenever it made sense.

Also through the process, we asked for permission and have taken the liberty to call our client out when we saw things heading in a direction that was not good for the project. And we’ve also asked for our client to let us know if something didn’t seem right or wasn’t happening in a way that worked for them. These kinds of discussions have sometimes been hard and have always required courage, but because we’ve been willing to deal with the hard issues, we’ve been able to build a team that is more engaged and more productive than we could have otherwise.

Ownership & Responsibility

Any successful organization is built on good people who take ownership of the different areas of the product or service. We’ve all been on the short end of this when we call in to our phone company or internet service provider and no one we talk to is willing to really take ownership of our problem. You end up getting transferred from this department to that department and then eventually disconnected. This condition can sometimes be created in the client / contractor relationship. All too often, the client is the one who benefits from the success of the product, while the developer only benefits from features delivered or hours logged. A gap can sometimes be created where issues fall through the cracks and the stakeholders have their hands tied, while the developers are the bottleneck in dealing with the harder to define issues.

To address and prevent this scenario, we’ve taken great pains to ensure that everyone involved understands and is on board with the vision and mission of the project as a whole. Without vision, the people perish. Together with the client, we’ve identified different areas of the project that require ownership and have made sure that all of our bases are covered. As part of this ongoing exercise, it is essential to create space and freedom for the developers and designers to do what they need to do to make sure that things are as they should be. This is not always easy for some clients and takes a high degree of trust. It is important to understand that vision and freedom create an environment in which people can do their best work. Most great designers and developers will be motivated and rewarded by being able to do their best work and in an environment where they can continually improve the areas over which they can take ownership.

Processes & Protocols

On top of all this, it is essential to build a framework that defines when feedback can be given, when change requests can be made, when and how priorities will be set, and how we will make sure that the most important things are always getting addressed. We follow a relatively agile development methodology and have adopted elements of SCRUM. The roles defined in the SCRUM framework provide a natural place to plug in stakeholders, designers & developers, and project managers. It has taken some time to really refine everyone’s roles in this process, but I’m not sure that we would do it much differently if we were all within the same organization. SCRUM is often used within the boundaries of an organization to keep a project moving along efficiently, but it is also well suited to solidify and define the client / contractor relationship if both sides are willing.

Building a great client relationship in a web project is as much about having exceptional designers and developers as it is about having a great client. In the end, your client is as much a part of your team as your developers and designers. But even after having all the right players involved, the areas I’ve noted above all need careful attention and plenty of time and energy to refine and build.