If there’s one thing that can help guarantee the success of a software project, it’s ensuring that everyone’s expectations about the project are aligned.
It’s very important to set expectations about what features a project will have, what platforms it’s supposed to run on, when it’s going to be delivered, and how much it’s going to cost. That’s not to say these can’t ever change throughout the course of a project, but it’s essential to make sure everyone has the same expectations.
## A Three-Day Software Project
For the past two years, I’ve volunteered at the Weekend for Good, which matches local non-profits with teams of volunteers to help them with marketing, design, or software development.
These projects help non-profits increase their outreach, acquire data for grant applications, or provide their services to more people. There’s a lot at stake to ensure that these projects are successful, and teams need to complete them in a weekend.
I’ve learned a few things from planning these events that I think could benefit all software projects.
## 1. Set Expectations Up Front
During the registration process, the Code for Good West Michigan team interviews non-profits to determine if our event is a good fit for them. We ask them to describe what they’re hoping to get out of the event by defining what a successful project would look like. This helps determine if their project is scoped correctly for a weekend event. It also acts as a great starting point for a later discussion.
At Atomic, we typically use a [Research, Design, and Planning](https://spin.atomicobject.com/2014/04/15/strengthen-software-investment-research-design-planning/) phase before we start developing any software. This ensures that the project (big or small) is set up for success.
## 2. Encourage Pre-Project Meetings
Once the non-profits have been selected, we assign each project a volunteer to be their team lead. The non-profit representatives and team lead meet to discuss the project in advance. This helps the team lead refine the definition of “done” for the project and understand the needs of the non-profit. It also helps us, the admin team, find volunteers to make sure the project is allocated properly.
At Atomic, our projects last much longer than a weekend, so it’s important to meet regularly and discuss the team’s progress. On [SCRUM](https://www.scrum.org/resources/what-is-scrum) projects, these meetings tend to happen at the end of a sprint.
## 3. Provide Resources and Communication Channels
Once teams have been assembled, it’s important to make sure everyone has what they need leading up to the event. The foundations for the project (source control, continuous integration, etc.) need to be set up before team members can make meaningful contributions. People need access to any existing systems so that they’re able to start working.
All the logistical questions need to be answered: where to go, where to park, what food will be available, who to contact with questions, etc. Having answers ahead of time gives everyone a sense of ease and allows them to focus on getting the work done.
## The Results
The improvements we’ve recently made to the registration/allocation process have led to more Weekend For Good projects completing successfully. Managing expectations isn’t an exact science, and it relies on all parties actively participating. But if done correctly, it will increase the chance of success for your own software projects.
What do you do to help manage expectations on a team?