Managing Virtual Software Development Projects
In a global software development world, many software development projects are now virtually organized with remote team members distributed across different countries and time zones, employed directly by the sponsor company, recruited in software outsourcing organizations or freelance platforms. This article discusses the specific techniques that could help you manage remote teams for virtual software development projects.
Author: Quratulain Habib
The Agile methodology of software development project was formed because the traditional waterfall method generally fails or delivers modest results for software development projects. For virtual software development project, these methods need to be further modified as they are completed virtually or entirely over the Internet. The Internet, mass availability of high-speed Internet connections, a surge in software companies throughout the world and start-up organizations and availability of many platforms for online work now means that any individual or company can get work done at on third or one tenth of the price they would normally pay an in-house or contracted resource. This also means that managing teams, clients and projects is done virtually, may involve more than two time-zones and will be subject to more misunderstandings than a normal software development project.
For such virtual projects, the role of Software development project managers now requires them to adapt typical project management practices to work with distributed teams. The varying locations of team members mean more than ever that best practices within software development be used and that they should be tailor-made for each project. The intent of this article is to cover some basic ideas for monitoring quality, scope and change in virtual projects as well as how to effectively work with virtual team members. For this, the writer assumes that such projects have reasonable budgets from $5,000 – $25,000.
Managing The Project Scope
The project scope includes scope definition, requirements gathering, creation of a WBS, a scope validation procedure and methodology to control project scope. None of these rely as heavily on clear and constant communication as the requirements gathering activities. Keeping this in mind, it is extremely important that when dealing with virtual projects, the PM use the following techniques:
- Define requirements in as much detail as you can at the beginning of the project. 
- Project planning and software development methodology should be defined after the requirements’ definition rather than before. This is because in most cases, there is no team before the project; the right team is chosen according to the final scope and requirements of the project at that time. This may seem contradictory to an Agile software development approach however it works unless you already have a pre-selected development team.
- Use collaboration tools such as Asana, to fine tune requirements, use MS Excel, Google Docs or any spreadsheet to define and monitor the changes in the Scope of Work. And use a wire-framing tool to create a visual representation of the software, website or app that is being developed by the team. Wire-framing is extremely important for virtual projects mostly because virtual teams may read a requirement one way and you may have intended a different outcome.
Software Quality Assurance Management
Quality management can be a full time role on a project however due to the size and nature of these virtual projects, it generally falls on the project manager to ensure that the delivered product is in line with the project’s quality guidelines and the client’s acceptance criteria. Once each requirement has been laid out and user stories defined to test them, it is important to focus on the desired outcomes of this process by ensuring the following:
- Decide quality management measures for the project early: Consider a website against a mobile game, both are very different types of development projects and will require different quality control and quality assurance measures. A website may get away with full testing left till the very end, but a mobile game will not. It is important to decide this along with the development method and the project type.
- Choose appropriate time for the type of testing: This depends on the type of testing being done on the software and what the desired outcome for the test exercise is. For instance an e-commerce website should get their landing pages and a basic shopping cart test done in the initial stages so that flaws with user experience, conversions and abandoned sales can be fixed or re-done. It costs less in time and money to do a fix early rather than later for such projects.
- Consider hiring ‘outside the project’ testers: For virtual projects it is recommended to hire an outside source(s) to test the developed software or web application. The benefits are numerous as they will also provide a good litmus test of the average user and their feedback will be valuable to the development team as well as the project on the whole. User experience design, functionality and bugs, all come to light with third party testing.
- Use a tool for reporting and tracking bugs: Use open source bug reporting tools such as Bugzilla, Mantis, Trac, etc that are freely available. Some freelance hiring websites provide these tools as part of their service.
Managing Change or Adapting to Change in Projects
The change control procedure differs from each software development methodology. While Agile, Scrum and XP welcome change in requirements and naturally adapt to it, the Waterfall methodology does not facilitate a quick change and requires a formal change control procedure that can take days to approve. Within a virtual team environment and offshore software development, any changes being considered need to be communicated quickly and managed efficiently in order to serve the original purpose of saving costs and time. However, due to the nature of a virtual team, much can go wrong during the project and the project manager needs to carefully manage this stage via:
- Regular communication with all parties: Communication is the cornerstone of all virtual projects and needs to remain front and center during the entire project. Once the project is underway and teams are busy, it is important to keep in touch and also keep the client informed. This helps anyone from assuming or wondering what is going on with their project. With many tools and free VOIP services available it is easy to directly communicate with your team and the client. A short meeting every second or third day with the project team is important to ensure the health of the project. Similarly, a meeting with the client should be set at a reasonable time-period as well.
- Managing expectations of both the client and team: Once the project is underway, change should be monitored closely via the tools used to finalize scope and report bugs. Depending on the development model of your project, the PM needs to keep a close eye on what the requirements were and how the software is meeting them. In the event your development methodology welcomes change, use the same tools to bring that requirement or change within the scope. Use a product backlog and prioritize the requirements with the client.
Project Communication: Appreciate Language Barriers and Cultural Diversity
Working across multiple time zones and with different cultures can add to the complexity of project communication. These language and understanding barriers should be taken seriously esp. at the beginning of the project as teams are still getting assimilated to the project environment.  Similarly time zones can be utilized to a full extent so that each team is productive. For instance, a resident tester in Europe would complement a development team in Asia where they get a few overlapping working hours together and can reduce the number of days required to complete the project.
Like all projects, software development projects can be both a dream and a nightmare for project managers. The ease with which it can be delivered depends on how quickly you adapt to the environment and lead the project successfully.
1. A. Tiwana, Beyond the black box: knowledge overlaps in software outsourcing, IEEE Software 21 (2004) 51–58
2. D. Damian, D. Zowghi, Requirements engineering challenges in multi-site software development organizations, Requirements Engineering 8(2003) 149–160.
About the Author
Quratulain Habib has over 6 years of experience in the IT, media and banking industry. Her work experience includes, change management, project management, contracts, responding to RFPs, functional analysis and usability assessments. She also specializes in managing remote projects. Quratulain was certified as a Project Management Professional (PMP) in 2009.