|
Last Modified 1-1-2011 |
Shop the Low Price Leader from Home:
|
IUSB |
||||||||||||||||||||||
|
Home Software Engineering Software ArchitectureUser Interface Design Software Reusability Component Based SE Service Orientation Global Software Development Software Architecture Architecture IntroductionSoftware Life Cycle Architecture Design Architecture Design Decisions Architectural Views Architecture Styles Main Program with Subroutines Abstract Data Type Implicit Invocation Pipes And Filters Repository Style Layers Architectural Style Architecture Assessment Architecture Summary User Interface Design Seeheim ModelPart-Whole Decomposition Model View Controller User Interface Aspects Human Computer Interaction Humanities Artistic Design Ergonomics HCI Models HIP Models IS Mental Models UIDC Models Interactive System Design Design Activity Structure Design Collaboration Task Analysis HCI Task Analysis Collaborative Work Collection Methods Task Analysis Specification Details UVM Dialog UVM Representation UVM Evaluation Decision Evaluation Specification Evaluation Prototype Evaluation Summary Component Based SE CBSE Justification Component Models Component FormsComponent Architecture CBSE Development Process CBSE System DevelopmentComponent Assessment Component Development Architectural Approaches Product LinesCOTS Development Select Approach Summary Service Orientation Description & Communication Service Oriented Architecture Web Services XMLSOAP WSDL UDDI BPEL4WS SOSE Summary Global Software Challenges |
Global Software Development
Members of a collocated team development are usually housed within walking distance. Psychology tells us that if we have to walk more than 100 feet or climb a set of stairs, we are more likely to reinvent the wheel, rather than ask a colleague. This would indicate that teams should share a project room. Experimental studies confirm that frequent informal exchanges occur in a collocated environment. These informal changes foster collaboration, information sharing, mutual learning, and efficient communication. The tasks of a software development team are interdependent. They coordinate their activities to reach a set of common goals and share the responsibility for reaching those goals. Traditional, collocated software development teams fit this scenario. A global, or virtual team has the same goals and objectives, but it has multiple sites, different time zones, most likely different cultures, and perhaps even different organizations. Many organizations have outsourced part of the work in an attempt to lower labor cost. Mostly, low-end tasks are outsourced, while high-end activities remain in the high-wage countries. It is unknown if this situation will continue or undergo changes. However, there are many factors that can be considered when deciding where to locate software development activities:
There is little proof that these alleged advantages actually materialize. For example, around-the-clock development often results in shifts that overlap, so that developers from the different sites can have direct contact and collaborate. Work then shifts to overlapping hours, this can result in quite a bit of overtime at either side ensuring that direct contact is possible. Cost advantages can be offset by high travel costs, higher maintenance costs, and collaboration costs. Studies indicate that if wages in one area are 10% of those in another area, the resultant savings may be in the range of 20-40%. Challenges of Global System DevelopmentOne of the reasons for the success of the collocated team is that many things are shared between team members. The teams will share tools and most likely conform to the same process. The team shares information and they all have an understanding of the job to be done. It has been observed that developers would spend up to 75 minutes per day in unplanned personal interaction. Sometimes development teams will share the same office area on purpose, to stimulate interaction and speed things up. A shared room or office is one of the distinguishing factors of agile development. These features disappear once the work becomes distributed. The challenges that face global software development all have to do with Distance: temporal distance, geographical distance and sociocultural distance. In a similar manner, the challenges of software development can classified in the following 3 categories:
Expanding on the table entries in Figure GSD-1: Effective Communication: When team members are at different locations, communications are often asynchronous (email). Asynchronous communication is less effective than synchronous communication. Receiving immediate clarification on a misunderstood message is not possible. Problems may crop up at a later stage if people are reluctant to contact a colleague at a remote site. They would rather guess at an answer and accept the risks. Coordination Costs: For global software projects the rule is coordination costs are higher than collocated projects. In some cases, representatives from the client organization are located at a development site for the duration of the project. Key people such as the architects and managers frequently travel to the different teams to have personal contact and have onsite meetings. The infrastructure will also incur some costs: such as video conferencing with the required hardware, software and installation. Minimizing Delays: When an issue arises that requires information from another site, a delay is inevitable. The other site may have just gone home for the day, reaction time may spread from one day into the next. The resolution may even have to wait until a videoconference can be scheduled. Asynchronous communication easily leads to delays where the same issue would be dealt with immediately at a collocated site. Effective Information Exchange: For teams located at geographically different sites, informal, unplanned contact is almost non-existent. During unplanned meetings, passing in the hallway, the lunchroom or water cooler, highly valuable and relevant information is often exchanged. Small issues are often easily settled in an uplanned meeting as two developers pass in the hallway. On the other hand, the same issues may have to wait until the next formal teleconference meeting, and with the formal setting with many other developers present may lead to reluctance in sharing ideas and opinions. |
|
||||||||||||||||||||||