Managing Distributed Software Development Effectively
Software development is a process of evaluation and management of user requests and requirements, control of
project specifications and scope, and leadership and coordination of the development team. Distributed software
development refers to the development of solutions based upon distributed cooperating processes. It has become
pervasive in modern enterprise environments. To support collaboration, a software configuration management
(SCM) it is necessary for a system to feature a common, consistent repository, be tolerant to network outages, and
support heterogeneous environments with minimal administrative overhead.
In order to be effective, some techniques require buy-in and active participation by every team member. In other
cases, planning and oversight on behalf of team leaders produce the best results.
Ø Communication
Distributed software developers need to stay in constant contact despite their geographical distribution. Emails
and conference calls are the most important ways that are used regularly. These days, however, a networked team
has new choices like threaded discussions, instant messaging, web conferencing, or blogging to stay in touch.
Threaded Discussion
Threaded discussion tools debates on specific issues and save the dialog for later use. It is one of the many tools
that facilitate discussions that allow multiple developers to communicate on any topic. It allows some tools to link
discussions to specific projects tasks or any other development assets.
Instant Messaging
Many IM tools can save dialogs for later review. It is valuable for asking a quick question or holding an informal
chat. Teams should consider an IM tool that can be deployed on the corporate intranet to avoid privacy concerns
of IM messages traversing public networks.
Blogging
Blogs characteristically contain short messages that follow a chronological order. Like IM, blogging is beginning to
find its way into the corporate setting. Team members can use blogging to publish their progress, and the Web
interface makes it easy for everyone to see each other’s notes.
Web conferencing
Web conferencing is usually used for group presentations, interactive planning and review, and unstructured
brainstorming sessions. Depending on the software, Web conferencing products may include collaboration
features such as white boarding, file sharing, instant messaging, and cooperative editing.
Depending on bandwidth availability, teams may also want to consider emerging technologies such as voice-over-
IP and even video-over-IP. Anything that promotes successful team communication should be considered.
Ø Communal Repositories
These days there is a wide array of software management tools that are internet enabled. These tools make it
increasingly viable for all team members to share common repositories when combined with better availability of
reliable bandwidth. Distributed software developers are provided with up-to-date information with shared
repositories. For key development processes there are internet-enabled, repository- centric tools that are available
like, product lifecycle management, requirements management, source code management, change management,
project management, and test management. Internet-enabled tools help to manage processes and provide
integrated collaborative features like threaded discussions and peer to peer messaging.
Ø Involving Remote Developers
By keeping remote developers included, it can be ensured that every team member is assured that they are
important to the project. A remote developer is likely to contribute effectively when they are in the loop. The
various ways to ensure that a distant team member is on track, some of them are:
Show-and-Tell: Effective software development management includes periodic demonstrations of their
work via online presentations. Participation allows distant developers to showcase their work and
demonstrate their expertise.
Reviews: To keep remote developers from feeling singled out it is important that they should participate
in reviews of other team members. One approach is to perform code walkthroughs in which the author
drives the presentation, and by doing this each team member’s responsibilities and sense of equality is
rotated.
On-Site Visits: Most remote developers appreciate having occasional team meetings at their locale.
Though digital collaboration and information sharing is helpful, it cannot replace the interaction and
camaraderie of occasional face-to-face meetings.
Distributed development teams are fast becoming the norm for today’s software projects. New forms of
information exchange provide innovative ways for distributed developers to collaborate. Internet-enabled,
repository-centric development tools give developers real-time access to up-to-date development assets.
Recognizing the human side of distributed teams is important as it allows remote developers to feel important
with team activities. By utilizing available tools and keeping alive the spirit of teamwork, distributed software
developement can be managed effectively.
Know more - Best product development companies , Mobile application development
Add New Comment