Developing custom software requires hours of discussions, planning and feedback calls. Plus, as a project manager, you’re always between the devil (client) and the deep blue sea (development team). Fortunately, there are ways to leave the hassle behind. In this post, we will discuss what to do to build successful communication with clients during projects. What you’ll get in return are informed, up to date and happy customers.
Before the project
The road to a successful project starts long before the development. I’m not mentioning sales talks here but the onboarding session. We usually take three to five days with a client to understand the project domain. It’s time when we ask tons of questions about client’s priorities, industry and audience.
Once we understand them, the entire team will be able to focus on what’s the most important – helping the client achieve their business goals.
During the onboarding, we also set up a clear project plan, agree on how often we are going to communicate and which tools we are going to use. In order to kickstart the project, we prepare user stories for the first two weeks of our work.
It’s so important because the majority of software houses we know work in sprints. In other words, they develop software in iterative cycles. Successful communication happens within every cycle and has to be planned and predictive.
Before the sprint
At the first meeting before every sprint, we plan the work. Beforehand, the project manager’s task is to talk with the client about priorities and address the questions from the development team (if there are any). Our idea is to work in very close contact with the client. It’s the most efficient way we see to understand and fulfil the client’s vision.
Within the development team, we discuss how each functionality should work and what are the possible solutions we could use. Then we estimate how many hours it will take for us to finish a specific functionality. After doing so for a couple of functionalities we know how many of them we can fit into a two-week sprint. We usually estimate more than we can fit to make sure we always have some prepared stories in the pipeline.
During the sprint
In order to keep the communication brisk and efficient, we use two main channels – one for video updates and the other for instant messaging.
Skype / Hangouts
The first one is Skype / Hangouts.
The PM will contact the client regularly on Skype to discuss how things should work in details. They will ask a lot of detailed questions starting with “what if…” because the PM’s main task is to translate the business needs into user stories developers can work with. I know what you think – we already answered those questions during onboarding. You’re right. But the project development is a living process – requirements and priorities change and it is our job to make sure both sides are on the same page.
The second tool we use is Slack. We set up three Slack channels for each project: one for the client and two for the team (instant messaging and alerts). The benefit of using Slack is that it’s the fastest way to get answers. Also, it’s a way for the client to communicate with the developers. We learned that it saves a lot of team’s and client’s time to handle the tech issues directly. A great thing about Slack is that the client doesn’t even have to have a membership – one can add them to a single channel as a guest member.
As a project management tool, we use Jira. It’s where we write down all the requirements, acceptance criteria and other notes about the project. The developers can easily go into Jira and see that “this functionality needs to look like this”. The project manager needs to pay attention whether the criteria or requirements change on the way. In this sense, they are guards who make sure all stories and tasks are up to date.
Jira is also a way to document the project. We have the whole project history in one single source. It’s especially important in long-term projects as it’s hard to remember every single thing.
Jira also allows us to see the progress of the entire application. Everyone involved can see whether a task is under development or already done. It gives us also the information about what we can test. And every time something is delivered we test it against the acceptance criteria. Also, our clients get a chance to see whether the feature works as planned.
After the sprint
It seems a lot but it’s not everything. On top of Slack, Jia and plannings, we will provide the client with weekly reports and updates. I know our clients don’t always find the time to dig deep into Jira. That’s why the project manager provides them with a weekly email with the summary of all necessary information.
After each sprint, we have a so-called demo meeting and show what we did over the two weeks period. The client will be able to see exactly what we achieved, ask questions, comment on it. It’s especially important if the client recognizes something does not work as it should. The benefit of having these meetings on regular basis is that it minimises the risk of receiving a product the client wants. It also helps verify ideas.
We have seen too many times that after a demo meeting, the client came back and said: “I know you made it the way I wanted but now when it’s done I see it was not a good idea.” Such “aha” moments are crucial in product development and can take place only when the client attends demo meetings.
This one is usually the most detailed. The goal of the update is simple. We compare the plan to the actual work and add up the hours we spent on the project. The comparison is very important because it:
shows the client how much of their budget we already spentgives us a chance to explain any delays or challenges we came across.
Only when the client accepts the update we feel legitimate to bill the client for our work.
It’s a feedback session to evaluate what worked, what didn’t work in the process and how we can improve it with time. As we work with closely with our clients, we encourage them to be a part of the retro meeting. If they can’t participate, the account manager collects the client’s feedback before the meeting and present it to the team.
Bringing an account manager to the loop is very valuable. It’s like having a second pair of ears listening to a conversation. The client working with the project manager on regular basis may be more open to sharing their concerns with someone’s who is a bit on the side. If this happens, make sure the account and project managers speak openly and work towards taking the client worries away.
The beauty of iterations is that every time they bring the team and client closer. We share ideas, exchange concerns, present solutions, plan and estimate, approve and reject. Thanks to the right tools such as Slack, Jira and Hangouts, we are able to do it quick and clean.
It may seem like there are a lot of meetings and discussions. That is right and that’s the foundation of working with people. So is the feedback we can give to one another in order to speed up the work and focus on the most important tasks.
With a successful communication process, we are able to address concerns and react to ever-changing requirements without putting the project to hazard.