A Competence Model for Global Software Development Teams
Javier Saldaña Ramos, Ana Sanz Esteban, Javier García Guzmán, Antonio de Amescua Seco
Software Engineering Lab – Computer Science Department Carlos III University of Madrid
Page: 2 1.- PURPOSE:
The aim of this report is to describe a competence model for the main profiles which take part in global software development projects, specifying for each profile both technical and general competences that they should have, as well as the competence level required to each role.
This competence model has been developed in response to the lack of competence models specifically defined for global software development profiles.
The final goal of this work is getting that universities update curriculum following these competences and guidelines, as well as to develop new professional profiles and courses to include in VET, because it is vital to prepare individuals for today's society and ensure Europe's future competitiveness and innovation. Therefore, enterprises could have better professional specifically trained to work in the current geographically dispersed contexts, which are so common nowadays.
Page: 3 2.- PROFILES (ROLES)
Main GSD roles.
Rol
N. Name Description
1 Organizational Unit Manager (OUM)
His main responsibilities are managing resources, both material and human, and participating in activities of team building in an active way. He provides information on needs and validates the results, and also he participates in project monitoring and tracking.
2 Project Manager (PM)
This role performs team coordination and management tasks.
He is responsible for project management and takes part in project monitoring and tracking. Further, he participates in the result evaluation.
3 Team Leader (L)
His main task is to coordinate the GSD team. Leading the team with the aim of achieving the both team and project objectives.
He supports and encourages team members and coordinates the training activities. He is a liaison between the project manager and software engineers and provides support to project manager.
4 Software Engineer (SE)
This role is responsible for carrying out the technical project tasks, specifically addressed to develop and validate the software product in a global software development context.
Page: 4 3.- GENERAL COMPETENCES
This section contains the general competences identified for working in a global software development team. Those competences that are new, has either never been identified in the literature or have been redefined to suit the features of GSD teams, have been highlighted in green.
General Competences
N. Name Description
1 Analysis and synthesis The person is able to analyze and synthesize information,
2 Creative
The person is able to suggest ideas to solve problems, design new products, propose new features of a product, etc.
3 Teamwork The person is able to work collaboratively with other team members in an efficient way.
4 Communication The person is able to listen and speak with others in a correct way, expressing his opinions but
respecting others.
5 Problem solving The person is able to solve problems using the information that he has available, his knowledge and expertise.
6 Efficiency and quality The person is able to perform his work efficiently and with the required quality levels.
7 Professional attitude The person holds the capacity and willingness to perform responsibly his work.
8 Risk management The person is able to manage risk, identifying potential risks, their impact and importance, and defining corrective and mitigation actions.
9 Customer orientation
The person is able to maintain a close relationship with clients in such a way that he can understand their requirements and provide them the best suited solution according to their needs.
10 Knowledge of other cultures and customs. The person has knowledge of different cultures and customs, and he knows their peculiarities.
11 Information management The person is able to manage information
efficiently, getting that it is classified, organized and available for stakeholders.
12 Mentoring & Supporting Others
The person is able to advise and coach others both in issues related to their work and in personal issues that affects to their performance.
13 Business awareness The person is able to understand business needs and try to do his best to fulfill them.
14 Persuasiveness The person is able to convince others, using his reasons to achieve that others change their
Page: 5 opinions.
15 Innovative
The person is able to innovate in the way he does his work or take his decisions, achieving better results in his work or project.
16 Commitment to excellence The person is able to work to achieve that his organization is the best in its business area.
17 Negotiation The person is able to negotiate with other stakeholder, defending his thoughts.
18
Interpersonal conflict resolution adapted to distributed environments.
The person is able to listen and talk to team members who are confronted, and he is able to solve the conflict achieving an agreement between them.
19 Positive attitude and motivation capacity.
The person is able to face up problems which appear in the project execution with enthusiasm to overcome and try to solve them. Further, he is able to and commitment to other team members.
20 Self-learning capacity. The person is able to learn in an autonomous way.
Further, he is able to distinguish relevant information and things that are well-done.
21 Interpersonal relationship ability.
The person is able to interact efficiently with other people. He is also able to communicate in a quick way and keep in touch with other team members.
22 Ability to use the communication and in- formation technologies.
The person is able to use appropriately communication, collaboration and information management technologies that are available for team members. Further, if he has not used this technology, he is able to follow the training program and learn quickly how to use the technology.
23 Ability to work in a global context
The person is able to ingrate into a team with participants from multiple countries and adapt to cultural and social peculiarities of each one.
24 Ability to communicate oral and written in English language.
The person is able to transmit information, ideas problems and solutions to an audience both skilled and unskilled. Moreover he is able to perform these tasks in English.
25 Organization and planning capacity.
The person is able to organise and plan his work in such a way that he can achieve his goals, fulfilling time and cost constraints. Also, he is able to manage, coordinate and schedule the project supervising functions and resources, and he can change the plan to deal with contingencies that appear throughout the project.
26 Initiative and leadership.
The person is able to take decisions for any unforeseen and innovate in the way of working to achieve better results. Further, he is capable of leading the team to reach its final goal, and organise and distribute work in concert with all members.
27 Decision taking The person is able to take decisions that entails risks in the project, and assume responsibilities which they are associated.
Page: 6 4.- TECHNICAL COMPETENCES
This section contains the technical competences identified for working in a global software development team. Those competences that are new, has either never been identified in the literature or have been redefined to suit the features of GSD teams, have been highlighted in green.
Technical Competences
N. Name Description
1 Software Development Tools The person is able to use software development tools to carry out programming tasks.
2 Computing system design The person is able to design computing systems using both object oriented and structured design.
3 Testing The person is able to test computing systems using techniques for unit, integration or load testing.
4 Documentation The person is able to develop documentation correctly.
5 Application Design The person is able to design applications using both object oriented and structured design.
6 Hardware architectures
The person has knowledge about hardware
architectures that can be used to design and develop a system or application.
7 Software architectures The person has knowledge about software
architectures that can be used to design and develop a system or application.
8 Hardware networks and interfaces concepts
The person knows concepts associated to hardware networks and interfaces.
9 Databases The person is able to design, implement and manage databases.
10 Statistical analysis The person is able to carry out and understand statistical analysis.
11 Computer programming The person is able to program application in different programming languages.
12 Hardware technology The person has knowledge about hardware technology.
13 Ability to understand and evaluate internal/external specifications
The person is able to understand and evaluate internal/external specifications in order to identify potential requirements.
14 System integration The person is able to perform system integration activities.
15 Software engineering
The person is able to carry out software engineering tasks addressed to perform analysis and design of systems.
16 Work estimation and scheduling The person is able to estimate and schedule the work according to the project scope and user
Page: 7 requirements.
17 Security,encryption and data protection.
The person knows concepts and techniques related to Security, encryption and data protection.
18 Embedded systems The person is able to design and program embedded systems.
19 Project management The person is able to carry out project management activities to ensure that the project is performed successfully.
20 Mathematics The person knows concepts about mathematics.
21 Technical documentation The person is able to develop technical documentation related to the project.
22 Artistic knowledge The person has knowledge about arts that helps them to carry out creative activities.
23 Configuration methodologies The person knows configuration methodologies.
24 Methods and techniques for designing and developing computer based systems
The person knows methods and techniques for designing and developing computer based systems.
These methods and techniques help him to design and develop systems.
25 End User Interface The person is able to communicate with the final user of the application.
26 Process improvement and change management
The person has knowledge about process improvement and change management. This
knowledge helps them to improve project processes and quality of products. Moreover, he is capable of managing the change doing that team members can change the way in which they work according to the new processes.
27 Technology trends
The person knows the latest trends in technology, so he has and updated vision about current technologies.
28 Integration concepts The person knows concepts about system integrations.
29 Quality assurance The person knows methods and techniques addressed to carry out quality assurance activities.
30 Commercial and business vision
The person has a commercial and business vision the helps him to create attractive products to the market.
31 Meeting management. The person is able to organise, plan and manage both face to face and virtual meetings.
32 Competence identification. The person is able to identify skills and abilities needed to perform a task.
33 CV interpretation.
The person is able to identify individual skills and abilities from the curriculums vitae. He is capable of selecting the best suitable person according to the organization or team needs.
Page: 8 34
Management of synchronous and asynchronous
communication on global contexts.
The person is able to use advanced collaboration tools and information management technologies correctly in each phase of the project. Further, if he has not used this technology or tool, he is able to follow the training program and learn quickly how to use the technology.
35 Requirement identification. The person is able to identify and define
requirements expressed by the client and put them into a requirement specification document.
36 Requirement estimation and prioritizing.
The person is able to estimate the time needed to implement every requirement into a software product, as well as prioritize their importance and relevance.
37 Requirement management.
The person is able to manage requirement
efficiently, ensuring that they are updated or deleted according to client agreements. Further, he is capable of ensuring that these requirements are traced to implementation and testing.
38 Collect, analyse and interpret information.
The person is able to collect, interpret and analyse the information that allows them to perform tracking activities on performed work and evaluate its quality.
39 Technical problem solution.
The person is able to detect incidents and technical problems that can appear along the project.
Moreover, he is capable of taking actions needed to solve these problems or, at least, minimize their impact on the project.
40 Share knowledge management.
The person is able to develop, structure and maintain information, with the goal of transform it in a critical asset and make it available to other users.
41 Brainstorming sessions management
The person is able to organize, plan and manage brainstorming sessions, maximizing participants’
contributions and achieving the goals established for the session.
42 Establish rules to work with shared data.
The person is able to define efficient and useful rules for working with information and
documentation shared among different places, avoiding duplicates, inconsistencies or loss of information.
43
Analyses of synergies from information gathered from social networks.
The person is able to collect, interpret and analyze information regarding to synergies that appears among virtual team members. These synergies came from social networks used for this purpose.
44 Online training creation and management.
The person is able to create training courses specifically designed for each team member and manage them efficiently. Further, he is capable of using and managing e-learning platforms used for
Page: 9 the training.
45 Use of advanced techniques to distributed communication.
The person is able to use advanced techniques for distributed communication correctly in different environments. Further, he is able to choose what techniques are more appropriate according to the environment in which he is going to carry out the communication.
Page: 10 5.- DEGREE OF COMPETENCE FOR EACH ROLE
5.1.- Competence level description.
Competence level description
Level Description Level Level Identifier
Team member dominates the competence and practices it
in a stable way. Very high VH
Team member is autonomous. The competence is totally
acquired. High H
Team member is in a learning period. The competence
has been partially acquired. Medium M
Team member does not have this competence. Low L
Page: 11 5.2.- Competence levels for general competences.
General Competences Role’s degree
N. Name OUM PM L SE
1 Analysis and synthesis H VH H M
2 Creative H H H L
3 Teamwork H VH VH H
4 Communication H H VH H
5 Problem solving M VH VH H
6 Efficiency and quality H H H H
7 Professional attitude H H H H
8 Risk management H VH H L
9 Customer orientation VH VH M L
10 Knowledge of other cultures and customs. H H VH H
11 Information management H H H H
12 Mentoring & Supporting Others M M VH L
13 Business awareness VH H M L
14 Persuasiveness VH VH VH L
15 Innovative H H VH H
16 Commitment to excellence H H H M
17 Negotiation VH VH H L
18 Interpersonal conflict resolution adapted to distributed environments.
VH VH H M
19 Positive attitude and motivation capacity. H H VH M
20 Self-learning capacity. M H H VH
21 Interpersonal relationship ability. H VH VH H
22 Ability to use the communication and in- formation technologies.
H H H VH
23 Ability to work in a global context H H VH VH
24 Ability to communicate oral and written in English
language. VH VH VH H
25 Organization and planning capacity. VH VH H M
26 Initiative and leadership. H H VH L
Page: 12
27 Decision taking VH H M L
Page: 13 5.3.- Competence levels for technical competences.
Technical Competences Role’s degree
N. Name OUM PM L SE
1 Software Development Tools L L H VH
2 Computing system design H H VH VH
3 Testing L M H VH
4 Documentation M VH VH H
5 Application Design M H VH VH
6 Hardware architectures L M H VH
7 Software architectures L M H VH
8 Hardware networks and
interfaces concepts L L M H
9 Databases L L M VH
10 Computer programming L L M VH
11 Statistical analysis H H H M
12 Hardware technology M M M H
13 Ability to understand and evaluate internal/external
specifications VH VH H M
14 System integration L M H H
15 Software engineering H H VH VH
16 Work estimation and scheduling VH VH M L
17 Security,encryption and data
protection. L L L M
18 Embedded systems L L M M
19 Project management VH VH M L
20 Design systems and architecture M H H VH
21 Mathematics M M H H
22 Technical documentation M VH VH H
23 Artistic knowledge L L L M
24 Configuration methodologies L M H VH
25 Methods and techniques for designing and developing computer based systems
M H H VH
26 End User Interface L L L H
27 Process improvement and change management VH H M L
28 Technology trends M H H H
Page: 14
28 Integration concepts L M H H
30 Quality assurance M M H VH
31 Commercial and business
vision VH H M L
32 Meeting management. H VH M L
33 Competence identification. VH VH M L
34 CV interpretation. VH VH L L
35
Management of synchronous and asynchronous
communication on global contexts.
M H VH H
36 Requirement identification. M VH VH H
37 Requirement estimation and
prioritizing. M H VH M
38 Requirement management. M H VH H
39 Collect, analyse and interpret
information. VH VH H L
40 Technical problem solution. M H H VH
41 Share knowledge management. H H VH VH
42 Brainstorming session
management H VH M L
43 Establish rules to work with
shared data. H VH M L
44
Analyses of synergies from information gathered from
social networks. M H VH L
45 Online training creation and
management. L M H L
46 Use of advanced techniques to
distributed communication. M H VH H