There are many things that contribute to the success of a project, but one of the most important is good communication with our clients.
Every project has its unique set of individuals and circumstances that dictate which forms of communication will work best, but for all projects the goal is the same: help everyone on the team make good decisions. Decisions require open channels of communication so information can flow back and forth as needed.
At Atomic we try to use the right tool for the job, and that applies to communication too. We use tools that are tailored to the specific type of communication that makes sense for the information that we are sharing with the team.
Here are some of the tools that we regularly use and what they are best for.
A Project Board
Every project needs a way to capture the work that is planned, in progress, and completed. Depending on the size of the project and our client’s preference, we’ll use a tool such as Trello, PivotalTracker, or Jira.
These tools capture feature details and acceptance criteria and allow us to carry on conversations about individual tasks. We make these tools visible to all involved in the project. They give the entire team a window into the project and a way to quickly assess progress.
A Discussion Board
We use a discussion tool, such as Basecamp, as a place for a dispersed team to have shared, asynchronous, archived conversations about the project.
It’s a better way to have conversations than email because everyone on the project can participate without having to be consciously included, and newcomers to a project can go back through Basecamp and see discussions that occurred before they joined. This is also a good place to document and summarize a discussion that was had in person so that it is archived.
A Chat Tool
Chat clients, such as Slack and HipChat, allow dispersed teams to have short, less formal project discussions, when decisions don’t necessarily need to be documented. But a nice feature is that conversations are archived so that teammates who weren’t involved in real time can catch up on what was discussed earlier. We make every attempt to include our clients in daily discussions about their project, and this is a great way to do that.
Email for One-on-one Conversation
Email is appropriate for one-on-one conversations that don’t need to be shared with the entire team and don’t need to happen in real time. However, we’ve found that we’re using email less and tools like Basecamp or Slack or HipChat a lot more because they allow all team members to take part in a conversation if they choose.
Weekly Status Reports
Formal written communication is a good way to periodically reflect on the project and document progress. We prepare a weekly status report that is delivered to all involved in the project to convey our understanding of project progress and to present what we feel are project risks in a formal, documented manner. However, for big projects or ones that involve many stakeholders, I feel that status reports should be followed up by an in-person or telephone meeting with the client to go over the report and answer questions.
A Document Repository
Status reports, requirements documents, design artifacts, and other project documentation need a place to live that’s easily accessed by all members of the team. Different tools that we use include Basecamp, DropBox, and Confluence.
Daily Standup Meetings
So much of our communication is written, and much of it takes place asynchronously through tools like Basecamp, chat, and email. But it’s important from time-to-time to sync in real time and see the whites of one another’s eyes (or the telephone equivalent!).
We have daily standups to reflect on what we’ve done in the past 24 hours, plan what we will do in the next 24 hours, and discuss issues in person as needed. We include our client in our daily standup so that they are aware of what’s going on and decisions that are being made. The client can ask and answer questions. We keep these meetings short so that they don’t become unproductive. Sometimes two or more teammates decide to take a conversation about an issue offline and re-sync in-person, over the phone, or by Skype to work things out.
Iteration Planning Meetings
We gather the entire team weekly—preferably in-person, but by video conferencing if the team is dispersed—to report on project progress and plan the work for the week. The real-time nature of these meetings allows the team to present information verbally and ask and answer questions quickly. It also gives us a chance to get to know one another better.
Sync-ups
These are longer one-on-one meetings I like to have with project stakeholders to talk about the project in higher-level terms, discuss project risks and how to mitigate them, and learn more about the client’s business and how our software fits into it. Sometimes these are on an as-needed basis, sometimes they are regularly scheduled. For bigger, more complex projects, we try to sync up periodically with all project stakeholders so that we all have as clear a picture as possible about what’s going on with the project.
As you can see, projects require communication on a lot of different levels, and choosing the right tool for each type ensures that the information exchange happens as smoothly as possible. Recognizing that different types of communication need to happen, and each is carried out more smoothly with the right tool, helps to keep the project moving forward with less friction and misunderstanding.