Marcelo Cataldo, Matthew Bass, James D. Herbsleb, and Len Bass. Managing complexity in
collaborative software development: On the limits of modularity. InCSCW’06, Banff, Alberta,
Canada., November 2006. ACM.
View the paper here.
View the presentation here.
Abstract:-
This paper is about the common mistakes which occur in a distributed development. The paper has listed about the poor practices which are followed by industries following distributed development and what serious consequences they pay up because of these types of negligence. The paper aims at making us understand that identification and management of dynamic dependencies between components of software systems is a constant challenge for software development organizations through 4 case studies. We have to appreciate the above statement by means of case studies which author speaks about. The problems occurring in a distributed development can range from simple syntactic differences to complex semantic dependencies. To overcome all these problems, the author suggests the necessity of communication and coordination.
Discussions:-
The paper starts with the Conway’s law which states that organizations which design systems in distributed manner often produce designs which are copies of the communication structures of these organizations. Conway’s law which was proposed in 1968 doesn’t hold true today because at that time, communication tools was not as prevalent like as they are today. So, if proper communication and coordination is ensured between different teams spread across the world, a single product can be built with less cost, more intellect, less time and better quality. Baldwin’s and Clark’s work suggests that for this improvement to achieve, there has to very good modularization of work by architects so that teams can work independently and parallelly with as little communication and coordination possible between different teams.
collaborative software development: On the limits of modularity. InCSCW’06, Banff, Alberta,
Canada., November 2006. ACM.
View the paper here.
View the presentation here.
Abstract:-
This paper is about the common mistakes which occur in a distributed development. The paper has listed about the poor practices which are followed by industries following distributed development and what serious consequences they pay up because of these types of negligence. The paper aims at making us understand that identification and management of dynamic dependencies between components of software systems is a constant challenge for software development organizations through 4 case studies. We have to appreciate the above statement by means of case studies which author speaks about. The problems occurring in a distributed development can range from simple syntactic differences to complex semantic dependencies. To overcome all these problems, the author suggests the necessity of communication and coordination.
Discussions:-
The paper starts with the Conway’s law which states that organizations which design systems in distributed manner often produce designs which are copies of the communication structures of these organizations. Conway’s law which was proposed in 1968 doesn’t hold true today because at that time, communication tools was not as prevalent like as they are today. So, if proper communication and coordination is ensured between different teams spread across the world, a single product can be built with less cost, more intellect, less time and better quality. Baldwin’s and Clark’s work suggests that for this improvement to achieve, there has to very good modularization of work by architects so that teams can work independently and parallelly with as little communication and coordination possible between different teams.
The author explains the first case study in
which some design specification was changed by one team. They changed the
syntactic formation of the code given by the central team. But the team did not
document that changes were made, nor did they mention about the changes done by
them in forums or video conferences etc. The team did not even mention about
the change being done to the other teams which were likely going to use their
piece of code. Finally, when another team used it, there was a serious problem
in understanding the resolving needed. This shows the importance of
documentation and communication in global software development
In the second case study, a team changed the
semantics of the interface of code which was going to be used heavily later on
by many teams. The team made the changes in code without the proper
acknowledgement from central team. As a result, there was a big spiraling
effect on all the development centers to make changes in their code to suit
according to the required interface. This shows again the importance of teams
following the proper orders by central teams and not creating their own rules.
In the third case study, the modularization
of a project work was not done properly. The code which was having inter dependencies on each other was split across different teams. As a result,
continuous communication and coordination was needed between the two teams
which did not take place for long. This shows the importance of architect roles
in properly modularizing the work and then dividing it into different teams.
In the final case study, it shows the
importance of contact person of the group. In a country where international
language is not spoken and if the contact person who is the lone link between
the two sides of the world, falls sick, it can have catastrophic effects on the
development. That is what happened in the final case study.
Communication and
coordination is very important in teams which are performing distributed
development. But yet, it is necessary that modularization of the work is done
in such a way that communication and coordination happening among the teams is
as little as possible so that work can take independent of each other. Also,
maintaining proper documentation is extremely important in case of distributed
development.
No comments:
Post a Comment