What it means for an agency to be "transparent"
When I started Bytehogs, one of the main principles I wanted our agency to operate by was transparency. We wanted to establish relationships based on trust with our clients and I had had previous experiences where a lack of transparency had led to relationships breaking down.
Having run my agency for two years, I’ve come to realise that “being transparent” means a lot more than giving regular updates on the project status. It also requires a lot of courage. This blog post is to share some advice for any other agencies on how to be transparent with your clients.
Be open with time and budget from the outset
Every client is different, but there are two universal things which every client will care about - time and budget. It is important to be as clear and open about these things before a project has even begun.
Being transparent about time and budget involves accepting a simple truth - you can never predict the future. Features will take longer than expected, unforeseen circumstances will arise, and project scope will change midway through the project. Being transparent about time and budget means making clients aware of the inherent uncertainty that is involved with software development.
At Bytehogs, we no longer give fixed estimates for projects as it inevitably leads to one of two things - either the client pays for more time than was delivered, or we end up working for more time that we can bill for. The former is unfair to clients and the latter can lead to compromising quality to meet budget or deadlines. A better approach is to provide clients with estimates - tell them how long and how much a project should take and how long it could take. Estimate as well you can - but make it clear that’s all it is - an estimate.
Understand what your client cares about
Beyond time and budget - each client will have different priorities. Technically oriented clients may want to know the data model prior to starting development, design oriented clients will want to see brand guidelines and sign off on typography.
The main thing to keep in mind here, is to make sure the client is not faced with any surprises when the project is finished. The finished product should always meet their expectations, even if expectations have changed during the course of development. This means providing regular updates specifically highlighting the things you know the client will care about.
Learning what your client cares about often means understanding the things they don’t care about. Providing too much information can distract from the things a client really needs to hear. Focus on providing the right information that set or adjust the clients expectations accordingly.
Setting up clear channels of communication
Being transparent does not mean sharing every update, roadblock or decision that the team has made internally. This information should always be accessible to a client if they need access to it - but more generally you should plan out what you are sharing, why you are sharing it and how you are sharing it.
When an important decision has been made internally, or something has happened which alters the timeline of a project - set up a call with key stakeholders to relay this information - and then follow up with an email.
More informal channels such a Slack and Teams are great for day to day communication but should never be used for relaying important information, it’s too difficult to ensure that the communication has reached all relevant parties and easy for updates to get lost.
Communicate problems early
One of the most difficult lessons any agency has to learn is that problems are inevitable. No matter how well you plan - things will go wrong. The most important thing an agency needs to learn is to effectively communicate issues in a timely manner. This is where courage is important. It can be tempting for an agency to not mention an issue and try to resolve it independently without impacting the overall timeline.
The problem is that these issue can pile up leading to you running out of time with an unfinished project and client who believed things were going swimmingly.
To avoid this, let clients know as soon as things come up. Assess the size of the issue, and the overall impact the issue will have to the project - and then let the client know. The more projects you deliver, the better you get at forecasting the impact of issues - but initially it is both reasonable and realistic that things may fall behind schedule. If you have set expectations correctly from the outset - this should be understandable from the client’s point of view.
When first starting out, I hated giving any form of bad news to clients. But sharing small issues early is much better than sharing big issues late into the project. Make it a habit to regularly let clients know issues as they arise and their overall impact.
Don’t say things are on track if they are falling behind. Don’t say a sprint went smoothly if the team is pulling their hair out. Don’t promise the moon when you can only deliver the earth.
Your client’s are people and they will understand if things are not going as well as initially anticipated. The key thing is to keep them in the loop as every project will have its ups and downs. You may feel pressure from a client to commit to something achievable, you may be able to fool yourself that by pulling a few all-nighters, you can meet their expectations in time - remember these words - it’s not worth it.
Establish yourself as an agency which gives 100% - but be clear that you can give nothing more. Let your clients know the boundaries of what’s achievable, and let them know when you don't know and will need time to figure that out. Ultimately - be honest. Your clients will respect that, and if they don't, they are not worth working with.