Factors Influencing Software Team Performance Management Essay
Abstract -Software development is a team work. Research has shown that a number of projects have been failed in software industry due to cost and schedule overruns. One of the major reasons for the project failure is poor performance of software team. There are a number of factors that would affect team performance such as incorrect composition of software team, environment in which software team perform its activities and team leaders that are responsible for team management. In this research paper, we have conducted a literature survey to identify various factors that have direct or indirect impact on software team performance. And discuss which of these factors should be considered in order to build effective software team and improve the team performance.
Keywords: Software Team; Software Team Performance; Factors Effecting Team Performance, Team work
Introduction
Software Project Management (SPM) is an important part of software development process. It has been observed that poor management would result in project failure. Software industry has been paying attention to improve SPM activities in order to make software projects successful. Software engineering is an interdisciplinary field. There is a need for software project management as software engineering is subject to organizational budget and schedule constraint [9]. Software project management deals with activities like project planning, scheduling, risk management, people management, software cost estimation and quality management.
Software development is a team work, in order to produce a high quality software product, development team plays a vital role [13]. When team members contribute effectively and remain motivated during development process would cause high quality and productivity results. Team management is beyond the engineering and project management field and lies into the domain of sociology as it deals with people issues. Unfortunately, little attention has been paid to build an effective software team. Since software product quality is very much dependent on the development team. If team members contribute effectively and remain motivated during development process would be able to produce high quality software product. John S.Reel highlights critical success factors for software projects. Some of these are building a right team, providing such an environment in which they perform well and maintain their momentum [7].Effective team building is a intricate task. Technical as well as soft skills of team members should be considered while building software team [1]. Therefore building effective team is one of the most important factors that contribute to the success of software projects. Section II provides a literature survey, Section III provides Discussion and Section IV provides conclusion.
Literature Survey
A vast amount of research has been made on effective team formation by conducting several case studies on Software Engineering (SE) students. As an effective software team would be able perform well and produce better results. From literature survey , we come to know that different strategies are proposed to build software team and identify the factors that will software team should exhibit in order to give high performance.
Tracy L.Lewis believes that one of the reasons for the poor performance by software team is that the teams are not build using the relevant and salient criteria. According to them key selection criteria for team formation is still overlooked by SE literature. The better criteria to develop software team are to test the problem solving preferences of team members and numerical dominance of problem solving style [15]. They conducted a case study in which they follow two strategies to build software team, one having diverse personalities and other having non diverse personalities. They concluded that team diversity have a positive impact on team performance if it would be considered at deeper level not at surface level as this approach would contribute in increasing creativity, innovation and flexibility among team members. Also they are on contrary to the results of other research work that dominance of problem solving style is related to negative impact on team performance.
Narasimhaiah Gorla and Yan Wah Lam; are of the view point that personality type analysis is a better criteria to build an effective software team. They conducted a survey in which they identify the characteristics that are essential for the software team members in order to perform well. They define these characteristics using the criteria of Myers-Briggs Type Indicator (MBTI) for different team member such as project mangers, team leaders, system analyst and programmers. They are also in favor of team diversity. According to them it is more suitable that there would be heterogeneity among team leader and team members. But they are not in favor of heterogeneity among team members as there point of view is that it s unnecessary to have diverse personalities among team members because of the fact that members needs to perform multiple task during SDLC and heterogeneity is not good for all phases [10].
Effective job design also play an important role in improving team performance. According to Mohammad M. Tanabian, by applying job design techniques in software engineering we are able to develop an effective software team. His motive is that by “making small changes we create big differences” [9]. He identify a number of factors that should considered in order improve job for healthier and competitive team members. In his paper, he suggested some small changes that have positive impact on team performance. His emphasis on the effective job design for early stage software start up that is organization should provide such an environment to its employees so that they feel secure, remain motivated and influence on their job. This would result in effective software team.
In order to improve software team performance Wolfgan, Thomas has proposed an approach to use a questionnaire based on skill and personality traits for providing feedback to the software team during running projects. They proposed that using that questionnaire based technique we are able to improve team performance by assigning right job to right person [16]. Using the results of questionnaire, it is easier to identify the conflicts among team members, provide a better understanding of teammate’s relationship and attitudes. This approach will be a shortcut to develop an effective for coming projects by assessing team member’s capabilities on the basis of previous project experience.
Gerard M. Blair gives an idea to improve the software team performance by building a quality in software team. He define quality in terms of customer that something to do with satisfying customer expectations [4]. According to him, software team leader is responsible for improving team performance as quality must become a habit and training would be required to build habits. He suggested some strategies that team leader should follow in order to build quality in a team. He also recommended that in order to improve team performance, organization should provide an environment in which team members can freely express their ideas and work should be done with mutual coordination. Considering these factors would reduce communication gaps and conflict among team members.
Team performance is greatly affected by the team structure. Heng-Li Yang, Jih-Hsin Tang, in their article defines a relationship between team structure and team performance through social network perspective. They found that cohesion has positive impact on team performance and team structure is an important factor for good performance [5]. They describes that how cohesion and conflicts among team members fluctuate in different phases of information system development process. In order to measure software team performance they define cohesion and centrality as predicator. They also used a questionnaire based approach to evaluate the teammate interaction. They concluded that centrality has positive impact on team performance as a key person having domain knowledge is useful for smooth progress but is suitable for simple task. .
Building a high performance team is on of the key challenge in software industry. As there is a big difference between functional group and team. Ken P. Walsh describes that significant amount of work is required to create a team at first instance [8]. His point of view is that most of the researchers are proposing strategies to build high performance software teams and identifying the factors that influence team performance. According to him, the first step to build effective software team is to convert functional groups into high performance team. He suggested a strategy to convert a group into a team by following these five steps; drive out the team myth, choose right person, ensure that success is along the way, Add profile, and recognizes team members efforts.
Another important factor that should be considered in order to improve team performance is to build trust among team members. Team leaders and Team managers are responsible to develop trust among team members. Research has shown that lack of trust among team members causes a number of problems like communication breakdown, increasing work load , conflicts among team members, low feedback, poor quality of wok which in turn results in lack of motivation and poor team performance [2 ].
Software development involve team work that can be done effectively if team structure would be flexible and provide an equal opportunity of participation to all team members. One way to enhance team participation team work skills is by assigning roles to the different team members. Robert lingard identify some potential factors that would affect software team performance. These factors include age, gender, previous work experience and degree of individual team member participation [ 11].
Disruption in software team badly affects software team performance. In order to build effective software team personality profile is an important factor, that should be consider so that one can seasily determine how well team will work and reach to the problem. According to J.S.Karn , team dogged buy disruption have more serious problems during system development. Many other factors are highlighted by researchers that affect team performance like individual team members often hesitate to share their idea’s or there is a lack of communication among team mates[ 6].
Communication among team members is very important. As effective communication resolve conflicts and team members can share their innovative ideas with each other. Lack of discussion and destructive debate would cause serious problems. For effective team work, team members must coordinate their efforts with each other in detail [ 14].
one of the most frequently used approach to improve software team performance is by providing tool support to the development team. Different traditional tools are available that help project mangers to perform their task. Donna Dufner proposed a web based tool PMA, that would be design to facilitate project mangers to perform various activities and also helps in decision making. PMA provide alerts and suggest corrective actions in order to continue smooth development of software projects. Tool support for software projects would greatly affect team performance, such a tool has been developed as an expert system and helpful in analyzing less structure decisions [3].
Shirley D. Brennen analyze the research work done in U.K for last three years in order to determine most appropriate team structure and factors affecting team and representing them using a model. A case study has been done in order to determine the effectiveness of this model named Integrated Performance Modeling Environment (IPME). The concept behind this approach is to identify the factors that affect software team performance from literature survey, operationalize these concepts in a behavioral terms. They are of the point of view that although research has been made in order to identify factors affecting software team performance,but exploration of these concept produce quantitative result is very limited. There is a need to represent these concepts in operational terms to generate quantitative outputs [12].
Discussion
From the literature survey, we have observed that there are number of factors that would affect software team performance. We should consider all these factors in order to develop a high performance team. Most important factors that are identified by different researchers are personality traits for individual team members, communication, conflicts, roles and responsibilities , trust, working environment , early job design, disruption, motivation problem solving style and team diversity. There are some other factors that partially influence software team performance like team members feedback and tool support for software team.
For last few decays software industry is paying attention towards improving team performance as they have realized the importance of team work while developing a quality software product. Team work greatly impact the success and quality of software projects. Therefore, there is a need to build effective software team that would contribute to the success of software projects.
According to the researchers [ 1,2,6,7,14], one of the most important factor that have a huge impact on the performance of software team is communication. If there is a good communication among team mates, they can easily understand each other problems, resolve their conflicts and convey their idea’s. However, lack of communication would cause a number of problems that would result in a poor team performance.
Personality type analysis is also a way to improve software team performance. There are a number of characteristics that each individual team member should exhibit to work in a team. While developing a software team, these characteristics should be considered, as there is a difference between a functional group and software teams [8].
In a team work individual effort can not contribute enough to improve team performance, unless all the team members would participate equivalently. Therefore building an effective team that could perform well , personality type analysis is an important aspect, as each individual role should exhibits certain characteristics , like project team leader should have leadership ability, motivate his/her team members, build trust among them, able to resolve conflicts among team members, transparent and have decisions making ability.
There are many other factors that are also considered in personality type analysis like age, gender, cultural diversity, stress management, innovation and problem solving style.
Assigning roles and responsibilities to the team members in an effective may also contribute in team performance. Assigning right job to a right person is a difficult decision that would in turn impact team performance. Assignment of roles and responsibilities not only clarify the job each individual team member, but also develop a sense of participation in all individual team members. As, it’s very important that all team member should participate equivalently in the software project development.
Conflict among team members negatively impact software team performance. Due to the conflict among the team members there is a lack of discussion among them that would result in to a communication gap. One of the major reasons for the conflict among the software team is lack of trust and disruptive nature of individual. There is a common misconception that team diversity would cause conflict among team members, but research has shown that team diversity have positive impact on team performance in many case studies. Heterogeneity among team members does not impact team performance, if there is no communication gap among team members.
In order to build a high performance team organization not only considers the technical skill of individuals but also take in to account soft skills that would contribute a lot in team performance. Working environment, also plat a vital role in enhancing the software team capabilities. Early job design is an approach that would design such an environment for the software team so that they can perform well and excel themselves. In early job design, by making little changes organization can motivate its team. As during the early phases of development work load is usually high, that would result in building stress on team members, organization should adopt such strategies that would reduce work load and stress among team members so that they would be able to work in an effective manner.
As mention earlier there are few factors that work as a supplement in order to improve software team performance. These factors include feedback and tool support. By getting feedback from the software team members, provides an opportunity to the organization to analyze the problems that team would faced during project development. This is how, organization would be able to identify the problems that would affect software team performance and take in to account these problems while building a software team for future projects.
CASE tool support enhances software team performance by providing aid to the software team during development process.
Conclusion
Based on the literature survey findings, we have concluded that, no doubt software team plays a vital role in software projects and is one of the key factors that affect quality and success of software projects. So, there is a need to build effective software team and providing such an environment so that team members could perform well.
The most dominant factor that greatly affects software team performance is communication. It has been observed by conducting various cases studies on software teams, that team having effective communication among team members is more productive. Communication gap among team would result in to a number of many other problems.
Another very important factor that organization must focus is that build effective team by doing personality type analysis. All the factors influencing software team performance are interrelated. Lack of one factor many cause other factor to increase or decrease, i.e. lack of leadership decreases motivation and increase conflict among team members.
Therefore, factors affecting software team performance would not be considered in isolation as these factors impact each other. Research should be done in order to find the ways through which an organization should be able to improve software team performance, as it directly impact software productivity. It is a need of hour, to build software teams in such away that they would be able to contribute in accomplishment of software projects. Since there is a trend of Global Software Development in which teams located at different sites work together in collaboration [12]. There is heterogeneity within and among the teams. It’s really a big challenge for project mangers to maintain communication and motivation among teams.
Another very interesting point that we find during literature survey is that team diversity have positive impact on software team performance. As it is a good approach, that a team has multi talented minds and they solve the problem in many different ways.
A lot of research work is required in this area, as that dimension of software project management in software engineering is still overlooked by most of the organization. Projects should be assigned to the students of software engineering so that they would experience how to work as a team and understand importance of software team.
Acknowledgment
We are like to thank our respected teacher Ms.Salma Imtiaz for encouraging us to perform such an activity during our course work and guiding us to work in a right direction by providing feedback. This research activity would not be possible without her support.
Order Now