Posted on September 20th, 2011, 4:00
Organizations now have a tendency to make greater development efforts in more attractive zones, leading to the evolvement in Distributed Software Development (DSD). Although new processes and tools are necessary, the main advantage of this lies in a greater availability of human resources in decentralized zones at less cost. SMEs are different to large enterprises with regard to the application of DSD in the convolution of their structure and organization. They generally use quality models such as CMM and CMMI that automate parts of their software development, decentralize their production units and promote the reusability of architectures, knowledge and components.
By adopting a suitable methodology oriented towards distributed software development in SME environments, taking into account the limited complexity and budget of these organizations, can help improve distributed software development in SMEs.
A local sub-contractor can help manage all the communications for a particular project. In instances when on occasions developers may need to contact other remote developers who are working on different parts of the software, and it may not always be possible to know which person to contact. A contractor can locate the members with the help of an organizational chart and simplify the communication process.
* Configuration Management
In a distributed software environments configuration management tools ought to be able to duplicate the information in the various locations. This way, each virtual team can work from a local server that is often coordinated with the central server. Any communication problems arising from the periods of inactivity, and this would also improve local time access.
* Knowledge Management
A system that facilitates collaborative knowledge management between remote sites should be used by distributed environments. By integrating with other tools that are involved in the software cycle, documents can be shared by a control versions system and manage schedules, meetings, etc. This allows access control based on roles using collaborative spaces.
* Risk Management
Taking into account the risks arising from any new problems caused by DSD that directly affects the productivity and the project budget, a risk plan and a mitigation plan needs to be developed. By conducting periodic surveys, project managers can have an idea of the problems that are encountered. It is therefore recommended that a local person be nominated to monitor each software product development, who must in turn reach an agreement with the global person in charge for ascertaining the priorities and actions that need to be carried out
* Quality management
It is important to acquire information regarding the progress of the various teams and to make certain that the existence of automated tools that will guide the development in observance with the established standards. To facilitate decision making, quantitative information regarding the project status and progress needs to be readily available. It is therefore advisable to store all information related to the software lifecycle in a way that all the team members to view and follow all the formal interactions.
* Software Testing
To detect errors in the early stages, it is necessary that the testing process begin as soon as possible. This is also necessary due to the high complexity of the systems which must be tested and the communication difficulties in DSD environments. For the analysts to be aware of the status of the project at any time, it is necessary to use collaborative tools that facilitate testing tasks and monitor them. To standardize the information of the tests, a formal communication between the team members involved in the testing needs to be carried out.
These recommendations can be used by SMEs to adapt a traditional software process model to a distributed model. As every organization has needs that depend on its distribution characteristics, activity and the tools that it employs, it is necessary to adapt to both the technical and organizational procedures, as per each organizationís specific needs.
Also read on: Agile lifecycle management , Product engineering services