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
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: 2
2.- PROFILES (ROLES) Main GSD roles. Rol N. Name Description 1 2 Organizational Unit Manager (OUM) Project Manager (PM) 3 Team Leader (L) 4 Software Engineer (SE) 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. 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. 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. 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: 3
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 2 Creative 3 Teamwork 4 Communication 5 Problem solving 6 Efficiency and quality 7 Professional attitude 8 Risk management 9 Customer orientation 10 Knowledge of other cultures and customs. 11 Information management 12 Mentoring & Supporting Others 13 Business awareness 14 Persuasiveness The person is able to analyze and synthesize information, The person is able to suggest ideas to solve problems, design new products, propose new features of a product, etc. The person is able to work collaboratively with other team members in an efficient way. The person is able to listen and speak with others in a correct way, expressing his opinions but respecting others. The person is able to solve problems using the information that he has available, his knowledge and expertise. The person is able to perform his work efficiently and with the required quality levels. The person holds the capacity and willingness to perform responsibly his work. The person is able to manage risk, identifying potential risks, their impact and importance, and defining corrective and mitigation actions. 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. The person has knowledge of different cultures and customs, and he knows their peculiarities. The person is able to manage information efficiently, getting that it is classified, organized and available for stakeholders. 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. The person is able to understand business needs and try to do his best to fulfill them. The person is able to convince others, using his reasons to achieve that others change their Page: 4
15 Innovative 16 Commitment to excellence 17 Negotiation 18 19 Interpersonal conflict resolution adapted to distributed environments. Positive attitude and motivation capacity. 20 Self-learning capacity. 21 22 23 24 25 Interpersonal relationship ability. Ability to use the communication and information technologies. Ability to work in a global context Ability to communicate oral and written in English language. Organization and planning capacity. 26 Initiative and leadership. 27 Decision taking opinions. 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. The person is able to work to achieve that his organization is the best in its business area. The person is able to negotiate with other stakeholder, defending his thoughts. 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. 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. The person is able to learn in an autonomous way. Further, he is able to distinguish relevant information and things that are well-done. 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. 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. The person is able to ingrate into a team with participants from multiple countries and adapt to cultural and social peculiarities of each one. 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. 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. 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. The person is able to take decisions that entails risks in the project, and assume responsibilities which they are associated. Page: 5
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 2 Computing system design 3 Testing 4 Documentation 5 Application Design 6 Hardware architectures 7 Software architectures 8 Hardware networks and interfaces concepts 9 Databases 10 Statistical analysis 11 Computer programming 12 Hardware technology 13 Ability to understand and evaluate internal/external specifications 14 System integration 15 Software engineering 16 Work estimation and scheduling The person is able to use software development tools to carry out programming tasks. The person is able to design computing systems using both object oriented and structured design. The person is able to test computing systems using techniques for unit, integration or load testing. The person is able to develop documentation correctly. The person is able to design applications using both object oriented and structured design. The person has knowledge about hardware architectures that can be used to design and develop a system or application. The person has knowledge about software architectures that can be used to design and develop a system or application. The person knows concepts associated to hardware networks and interfaces. The person is able to design, implement and manage databases. The person is able to carry out and understand statistical analysis. The person is able to program application in different programming languages. The person has knowledge about hardware technology. The person is able to understand and evaluate internal/external specifications in order to identify potential requirements. The person is able to perform system integration activities. The person is able to carry out software engineering tasks addressed to perform analysis and design of systems. The person is able to estimate and schedule the work according to the project scope and user Page: 6
17 Security, encryption and data protection. 18 Embedded systems 19 Project management requirements. The person knows concepts and techniques related to Security, encryption and data protection. The person is able to design and program embedded systems. 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 22 Artistic knowledge The person is able to develop technical documentation related to the project. 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 25 End User Interface 26 Process improvement and change management 27 Technology trends 28 Integration concepts 29 Quality assurance 30 Commercial and business vision 31 Meeting management. 32 Competence identification. 33 CV interpretation. The person knows methods and techniques for designing and developing computer based systems. These methods and techniques help him to design and develop systems. The person is able to communicate with the final user of the application. 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. The person knows the latest trends in technology, so he has and updated vision about current technologies. The person knows concepts about system integrations. The person knows methods and techniques addressed to carry out quality assurance activities. The person has a commercial and business vision the helps him to create attractive products to the market. The person is able to organise, plan and manage both face to face and virtual meetings. The person is able to identify skills and abilities needed to perform a task. 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: 7
34 Management of synchronous and asynchronous communication on global contexts. 35 Requirement identification. 36 Requirement estimation and prioritizing. 37 Requirement management. 38 Collect, analyse and interpret information. 39 Technical problem solution. 40 Share knowledge management. 41 42 43 44 Brainstorming sessions management Establish rules to work with shared data. Analyses of synergies from information gathered from social networks. Online training creation and management. 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. The person is able to identify and define requirements expressed by the client and put them into a requirement specification document. 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. 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. 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. 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. 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. The person is able to organize, plan and manage brainstorming sessions, maximizing participants contributions and achieving the goals established for the session. 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. 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. 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: 8
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: 9
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. Team member is autonomous. The competence is totally acquired. Team member is in a learning period. The competence has been partially acquired. Very high High Medium Team member does not have this competence. Low L VH H M Page: 10
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 19 Interpersonal conflict resolution adapted to distributed environments. Positive attitude and motivation capacity. VH VH H M H H VH M 20 Self-learning capacity. M H H VH 21 22 23 24 25 Interpersonal relationship ability. Ability to use the communication and information technologies. Ability to work in a global context Ability to communicate oral and written in English language. Organization and planning capacity. H VH VH H H H H VH H H VH VH VH VH VH H VH VH H M 26 Initiative and leadership. H H VH L Page: 11
27 Decision taking VH H M L Page: 12
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 17 Work estimation and scheduling Security, encryption and data protection. VH VH M L 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: 13
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 43 44 45 46 Brainstorming session management Establish rules to work with shared data. Analyses of synergies from information gathered from social networks. Online training creation and management. Use of advanced techniques to distributed communication. H VH M L H VH M L M H VH L L M H L M H VH H Page: 14