Thursday, November 22, 2012

Global Software Development Patterns for Project Management :: Patterns




Global software development needs project management for a software to succeed.some of the problems that need to be monitored for the existing process model to function well, without the need of creating the new process model. There are a various ways to do the same. the pattern language Q-PAM and the model PRINCE2 which can easily deduct the quality that a particular scenario requires and also which all patterns need to be monitored for the same. The patterns exhibit a trade-off between themselves and have certain risks associated with them at times. Project management is a crucial activity and if it is performed well , it can result into the success of the project.



Project management deals with the organizing, planning, securing, managing, leading and controlling resources to achieve goals. Global software development needs good project management as the challenges of communication and coordination makes it more difficult to manage the global software development. The paper discusses various common problems encountered in the process model and present a few solutions for them. The paper calls those various problems as the “patterns”.

A research was performed to discover various problems faced during GSD and then the patterns were evaluated. For evaluation of the patterns the language used was called Q-PAM.

The patterns so identified are as follows :

• Pattern 1: GSD Strategy

GSD strategy to be followed by a company should be identified well before in advance and should be communicated to all the teams involved in the GSD. The GSD strategy might comprise of the motivation and the reason that lead to the adoption of GSD.The strategy should comprise of estimating the cost that would be incurred in GSD. Also the short term and long term planning should be well communicated to all the team members.

• Pattern 2: Fuzzy Front End

Often the need for the development of the product are not clear. To address this problem maintaining a global database in which both the internal and external needs can be entered will help a lot. The project manager then with the architect can sit and decide the need of on the product.

• Pattern 3: Communicate Early

Communication is one of the major problems in GSD, hence for the success of the project, communication should be monitored well. The possible solutions can be arranging a meeting of all the team members before the start of the project and discussing the roles of each team member. Also the use of common repositories can be done so as to keep all the team members updated with the latest happening in the project. Also common communication tools can be used to facilitate communication across geographically distributed sites.

• Pattern 4: Divide and conquer with iteration

The project should be carried out using the divide and conquer strategy and hence all the features to be developed during the project should be explained in iteration to the team members. This way there will be less confusion among the team members. Also the latest technology to be used should be explained to the team members in the very first iteration.

• Pattern 5: Key Roles in Sites

Many a times when there is some problem in the one of the sites then the team members are not aware whom to contact. A possible solutions to such problems could be that the sites should define the roles of the members working in the site like the team leader , site manager and all. A document should be prepared defining all the roles and then distributed to all the sites s or uploaded on the common repositories so that all the team members are aware of whom to contact in case of emegencies.

• Pattern 6: Communication Tools

The problem of communication gets worse when there is no common communication tools between the sites or some some site lack some of the communication tools used. In such cases the communication tools that would be used should be decided prior to beginning of the project and all the members should br trained in how to use them. The communications tools used for different processes could be different and this should be well communicated between the team members.

• Pattern 7: Common Repositories and tools
The problem arises when we cannot get the latest version of the project and this might result in problem when integrating the software. To solve such problems a common respository containing the updated information should be used.

• Pattern 8: Work Allocation

The problem may also arise if the work is not allocated properly , which may reult into two or more teams working in the same module or some module being left out. Hence work should be properly allocated

• Pattern 9: Architectural Work Allocation

The work can be allocated by modules that are mentioned in the architecture.

• Pattern 10 : Phase-based Work Allocation

The work can be allocated in phases too. For example a particular team can be asked to work on say requirements gathering phase whereas other team could be asked for the testing phase. This is much like the rapid application development.

• Pattern 11: Feature-based Work Allocation

The work can be allocated by features in which a team could be asked to develop a feature independent of the other.

• Pattern 12: Use common processes

The teams should share a common template for the reports they write. This will result into better synchronization among the teams and will not face much of the problem in understanding.

• Pattern 13: Iteration planning

Not all the features to be developed should be indicated in the first go. There should be well planned iteration and with every iteration few of the feature to be developed should be unleashed.

• Pattern 14: Multi level Daily Meetings

The meetings to be held daily at particular site to discuss what is going on in the project . And the meetings between different sites can be held weekly to discuss the happenings by the site manager.

• Pattern 15: Iteration Review

Better reviews for all the iterations should be delivered and updated at the common repository. This will help those who have missed the meeting by chance.

• Pattern 16: Organize Knowledge transfer

Knowledge transfer can be done so as to teach all the developers about different technologies and skills.

• Pattern 17: Manage Competence

The competence of each developer should be mantained by the site manager, this will help to assign a particular work to the developer as his competence has been monitored and graded over time.

• Pattern 18: Notice Cultural Differences

Cultural differences result into many problems like the communication , coordination and all. There should be meetings held between people of different cultural so that they understand each other well. Also certain visit to different sites can be arranged to make members understand the context of each other.

No comments:

Post a Comment