Technology for distributed collaboration for application lifecycle management has come a long way in the last few years. Email and conference calls used to be the main ways to allow team members to work together across great distances, but that is no longer true. Here project managers will learn about some modern day uses of tools that will have your virtual team members communicating as effectively as if they were sitting face to face.
The biggest advantage of instant messaging over communicating through email is that team members are communicating and exchanging information directly without having to wait a long time for a response. Technology such as smart phones allows team members using certain instant messaging tools to be available away from their desks (or even outside of the office) to answer questions from their team members.
Distributed teams can use teleconference calls to allow people in many different locations to speak together at the same time. There are both free and commercial solutions available that provide dial-in numbers for companies and individuals to make group calls.
Many of the conference bridge service providers also offer the ability for the moderator to record the phone call and download the recording as an MP3 file from a website. Another way to record teleconference calls is to record the sound from a speakerphone using your mobile phone or a portable voice recording device and make the recording available to the rest of the team.
For distributed teams, recording local brainstorming sessions or explaining designs as part of an audio file can help teams quickly get up to speed on decisions the team is making.
Distributed teams can use videoconferencing to maximize the communication experience of team members based in different locations. The challenge is having the necessary bandwidth available in all locations because team members in remote areas with slow online access may have challenges doing video conference calls. There are basic solutions available to allow two people to communicate and advanced solutions allowing more than two people to do a videoconference together.
For videoconferences with multiple participants in a location, the main challenge is missing the non-verbal communication of participants not on camera.
Distributed teams can use a wiki site to help them share information and collaborate. Wikis allow teams to have a common easy-to-search storage location for information such as decision logs, designs and API specifications. Team members can attach files to specific pages. Wikis also allow everyone to comment on a page which creates productive distributed discussions.
There are various wiki solutions available online such as solutions you can deploy on an internal server and cloud-based solutions that you can subscribe to.
Screen sharing tools
Different types of screen sharing tools are available to distributed teams. There are tools better suited for a connection between two people sharing a single screen and more advanced tools allowing a group of people to share a single screen.
Group screen sharing tools are useful to:
- Share notes during a team meeting or conference call.
- Share the same view of the Agile planning tool during a sprint planning meeting.
- Share the screen during a sprint review meeting.
Some screen sharing tools also allow recording of the shared session which can be very useful to capture and publish any demonstrations in the sprint review meeting.
Online collaboration suites
Many online collaboration tools are available to allow team members to work together on the same document in real-time. You can find either full featured suites with word processing, spreadsheet and presentation software or other tools for more specific tasks such as collaborative mind mapping.
Before using any of these tools in a corporate environment, you may want to verify company policy before storing and sharing confidential company information in the cloud.
Agile planning tools
When working with distributed team members, it is much more difficult to use a physical task board to keep track of the progress the team is making during a sprint. Instead, having the team use a planning tool in a centralized location will help everyone collaborate better. You can find either commercial or cloud-based solutions on the market.
These tools should provide the team with the ability to create and update a product backlog, projects, sprints and sprint plans. They should also provide burndown charts and various other reports to help the team keep track of their progress.
Most tools have functionality such as attachments, links and discussions that can help distributed teams centralize information relating to a backlog item. More advanced tools provide Web-based dashboards the team can use to help the team track their progress easily.
Screen recording tools
I quickly introduced screen recording capability when discussing screen sharing tools but here are some other interesting ways to use screen recordings with distributed teams:
- Document designs by recording a presentation, talking through it and putting the recording in a shared location.
- Record snippets of working functionality for work from remote team members in a sprint review.
Any time when making recordings, you need to make sure to let others know before starting to record so they can voice their objections if they have any.
Version control system
In ALM, virtual teams must have a centralized version control system and before using it, teams need to identify and document their project branching and integration strategy to make it clear to all team members.
A common centralized source code repository ensures everyone is working on the right version of the code and enables the team to use other practices such as having an automated build server or continuous integration.
Build servers and continuous integration
For a distributed team, having a common build server that can extract the project code from the common repository, compile and package it is an absolute minimum. Figure-1 below illustrates four different levels of build server maturity and how the server evolves from one level to the next.
Figure 1 - Build server maturity levels
Once you have the build server in place, even at the first maturity level, you can reuse your build scripts as part of a continuous integration build. A continuous integration server will regularly check the code repository for changes and will automatically launch a build once it detects a change.
To keep the builds fast, some teams will regularly run a lighter build process that does not do any packaging but extracts, compiles the code and runs all the unit test suites. These same teams will run the full build process at least once a day at a predetermined time to create the deployment packages and carry out more extensive build verification testing.
For distributed teams, continuous integrations allows teams working in different locations a way to make sure the code they delivered in the common source code repository does not break the build.
Social networks are no longer only for individuals keeping touch with friends and family. Companies can now also create their own private social networks on hosted sites such as Yammer and Facebook, which make them easily accessible to employees from anywhere. These collaborative sites allow employees to easily share information, links and pictures with their colleagues.
Distributed teams can create separate groups on these social networks where team members can discuss and share information about their projects in real-time. Employees taking part in special committees at work (such as fund-raising or green initiatives) could potentially join other groups specific to those activities.
Virtual teams have so many alternatives available now compared to only four or five years ago that it is difficult not to be successful working remotely. The various tools mentioned in this article provide a canvas to work together limited only by the imagination of the people using them. Take the time to put some of them together and find which combination works best for you.
For a comprehensive resource on social media, see Social media: A guide to enhancing ALM with collaborative tools.