Few software project management frameworks have attracted the level of attention as Scrum. Of course, implementing Scrum is easier said than done. While proponents of Scrum insist that companies must follow the exact process, the reality is many companies (including us at Avicoma) adapt Scrum to fit their needs. Today we’re going to discuss exactly how Scrum can help you better manage your remote software development team.
Common Misunderstandings When Managing a Remote Team
It’s no surprise that managing a remote team varies in many ways from managing one that is physically present. Unlike outsourcing, outstaffing requires you work directly with team members rather than rely on one or two contacts. For those unfamiliar with outstaffing, improper management can lead to:
- Misunderstanding of Job Roles: If you manage a local team, you have a firm grasp on each person’s strengths and weaknesses. This is more difficult with remote teams, where you can only rely on electronic communication.
- Lack of Accountability: Let’s say, for example, your remote team discovers a bug after pushing a series of updated code. Could the bug impact other applications? If you don’t understand which team member does what, it’s difficult to create actions plans to prevent similar issues in the future.
- No Way of Measuring Progress: Bugs and mishaps aside, remote project management needs metrics for gauging progress. You need to think about tools that can provide all the necessary project updates.
How Scrum Addresses These Needs
While there are several project team management frameworks to choose from, Scrum is among the most popular due to its flexibility.
- Constant Communication: The Scrum framework relies on constant communication between team members. The most obvious example is the Daily Scrum, where team members give progress reports and ask for help if needed. The Scrum Review allows team members to give feedback on the completed Sprint. Team members can also suggest areas to focus on for upcoming Sprints.
- Accountability: Scrum divides large projects into tasks that are assigned to complete over the Sprint. Every team member knows exactly what’s needed to be done. If you have questions about a particular project, you know who exactly to go to. If a task falls behind schedule, you can work with the assigned person to determine what needs to be done to get back on track.
- Progress: The beauty of Scrum is the ability to track progress at any point. Burn-down charts allow you to forecast progress. Whether you’re working with a team located on the other side of the world or simply in different time zones, Scrum’s measurement tools give you a snapshot of the team’s progress.
- Managing Issues: Encountering bugs is inevitable for any software development team. Scrum framework helps with prioritization of bugs and features. You also have the ability to groom and sort the backlog so urgent issues are resolved first. Don’t forget you can always set aside a few points for minor issues during each Sprint.
Adapting Scrum to Your Needs
Scrum contains definitive steps that many insist must be taken and followed for the system to work. Note that they can be fully adapted to your needs.
- Communication Methods: The traditional scrum framework requires your team to meet for the daily scrum. Fortunately, there are several resources available that make meetings in different time zones possible. Avicoma configures various communication methods to meet your needs, including Skype for Business, Skype, Google Hangouts, Slack or any other system you prefer. We also install version control systems based on your requirements (e.g. GIT, SVN, TFS, Jira, etc.).
- Rotation of Duties Every Sprint: During one sprint, you’ll likely have some developers focus on bugs and other focus on implementing tasks (a.k.a. features). Before the next sprint begins, team roles can change so nobody is bored and everyone has the chance to develop different skills. This doesn’t have to apply exclusively to developers: QA testers, for example, can trade between manual and automated testing.
- Task Assignment: Upon the approval of technical leads, tasks are distributed to team members based on their abilities and strengths. This allows the remote team to leverage the different skills of its programmers. In other words, every team member brings the best of his or her abilities to contribute to the project.
- Length of Sprints: Sprint length is one of the few areas of flexibility approved in the official Scrum process. Sprints should last no longer than one month, though 2 weeks is the most common. It’s a good idea to familiarize yourself with the capabilities of your remote team to before determining the timeframe of your Sprints.
Implementing Scrum at Avicoma
At Avicoma, we have distributed teams which use Scrum principles for development. We apply daily meetings from Scrum. We have a backlog and organize our projects into sprints. We don’t use retrospective.
- We conduct daily and weekly meetings. During daily stand-ups, Team members report on the previous day’s activities, the current day’s plans and states any problems they’re facing. Following the meeting, members facing problems discuss them with a tech lead or someone else who can help. We also organize weekly meetings between in-house and remote teams to discuss any issues related to the process of product development and find solutions.
- Recently the defect concept was introduced to our team. The difference between a defect and bug is that defect is found within sprint and at the development phase, while bug is found after the deployment and release. We implemented this to manage fixes more effectively and keep track when the issues appear.
- Ticket filters have proved to be very useful for our team. Developers can filter tickets by sprint number, priority, status, assignee or reporter and more. Jira is very flexible and allows us to add customized fields to our filters.
- Our team uses Confluence for the recording and storage of all bug and commit documentation.
Simply put, we have adapted the Scrum framework yet use the principles relevant to our project. We always customize development process and suggest the methodology that fits our customer’s needs best. Adaptation is key!
We must remember that Scrum is not a silver bullet, but rather a tool that has its merits and downsides. Although this methodology is based on stable principles, it’s very flexible and convenient and can be adjusted to match your specific requirements and needs. In the right hands and with a reasonable approach, Scrum will become a working model of project management both for your in-house and remote team.