Software architecture and Architect play a crucial role in development of software in a Global software development. In a multi-site development environment, it is not enough to coordinate development activities to achieve a common goal. Rather, more emphasis should be put on coordinating interdependencies between activities. Shifting the interest from activities (and subsystems) toward system-level dependencies requires software architects and developers to have a common understanding of the software architecture. Coordination challenges in multi-site environment with geographically dispersed teams. It is claim that architecture could be used to coordinate distributed development.
To get first hand information about coordination issues based on the architecture, in-depth analysis was performed on the software development project of an international information and communications technology (ICT) company. It was mainly focused in two folds: first, coordination problem and the types of processes; Second, difference between same-site and multi-site development environment. The goal of the studied project was to develop a directory service platform for the global telecommunications market. To gain easier management, the project was partitioned into two subprojects on
the basis of architecture and technology (client and server module). The development work in these two subprojects was carried out in different ways, which gave us a possibility to make comparisons between these two subprojects. Using the grounded-theory approach (Discovery of theory through the analysis of data) was used to investigate the importance of software architecture in multi-site coordination.
During the analysis, six different coordination processes to explain most of the coordination problems in the case study were found out. These categories were:
- Managing interface between system components, i.e. how the functionalities of one component affect the functionality of the other components.
- Managing the assembly order of system components, i.e. how the components can be integrated to each other into a working system.
- Managing interdependence of the system components, i.e. how the system components are dependent on each other.
- Communication, i.e. how the communication between development participants is taking place.
- Overall responsibility, i.e. how the responsibility of decisions related to the software architecture is taking place.
- Orientation, i.e. how the orientation of development participants affects the interpretation of the architecture in a shared situation.
The results of the comparison between same-site and multi-site development problems were noted. The main difference between the two subprojects seemed to be in the informal communication and orientation. Client subproject had problems in informal communication mainly because the subproject architect and designers had cultural differences and they could not communicate with each other. The physical distance between subproject participants resulted in poor informal communication. The situation in the Server subproject was better: they were in the same site, and in this way,
informal communication was easier. The architecture description was poor in both subprojects, but the Server subproject participants did not see this as a major problem because they could talk with the architect everyday. The difference between architects’ orientation in these two subprojects affected, mostly, the content of the architecture description. In the Client subproject, the architect’s orientation was business oriented containing analysis of different business cases and in the Server subproject, it was a
technical one containing technical terms. Both of the architecture descriptions were partial, one from a purely business point of view and the other from a purely technical point of view.
The role of software architecture in the coordination of multi-site software development through a case study. Objective was to better understand the coordination in multi-site environment, characterized by geographical, cultural and language distances between development participants. Architecture was intended to be the tool for coordination in the project. The architecture description was supposed to contain the rules of how the components of the system exchange information with each other. The observed problems in coordination (lack of overall responsibility, communication and orientation) in architecture design resulted in poor or missing architecture description and different interpretations of the architecture by the project members. These problems caused actual system coordination problems in later phases.
There were problems with managing the interfaces between system components, their assembly order and interdependencies between them. These problems manifested themselves in the difficulties of the realization of the final system as well as delays in the timetable.
In multi-site environment, it is not enough to coordinate activities, but in order to achieve a common goal, it is important to coordinate interdependencies between the activities. This kind of coordination needs a common understanding of the software architecture between software development participants. Participants coordinate their development work through interfaces of their components. Each component can be developed separately, and thus, it is not necessary to take into account development of other components or distance, cultural and language differences between sites. The important issues that matter in are the appropriate architecture description and well defined interfaces between components. Furthermore, these need to be communicated, both informally and through formal descriptions, to all parties involved.
No comments:
Post a Comment