Article Preview
TopIntroduction
The software industry has become one of the main streams of development all around the world. In Europe, the ICT market represented 5.74% of the GDP in 2007, and the expected growth for 2008 is 2.9% (EITO, 2007).
Software project management is a relatively recent discipline that emerged during the second half of the 20th century (Kwak, 2005), although most software projects are more concerned with aspects of technology rather than management (de Amescua et al., 2004). The task of managing a software project can be an extremely complex one, drawing on many personal, team and organizational resources (Rose, Pedersen, Hosbond, & Kræmmergaard, 2007). In this scenario, some authors (E.g. Turner & Müller, 2005; Munns & Bjeirmi, 1996) have indicated that the influence of competencies on the success of projects has not been successfully explored, while other authors (E.g. Pinto & Kharbanda, 1995; Skulmoski, Hartman, & DeMaere, 2000; Jiang, 2002; Crawford, 2005) have identified the competencies of project managers applying the competency concept, that is, they have identified the competencies which fundamentally make project managers competent and successful.
In software development projects, Boehm (1981) points out that subsequent to the size of the product, personnel factors have the most important influence on the total effort necessary for the development of a software project, and that personnel characteristics and human resources related activities constitute the most relevant source of opportunities for improving software development (Boehm et al., 2000). On the same issue, some other authors state that inadequate competence verification of software engineers is one of the principal problems when it comes to carrying out any software development project (McConnell, 2003).
In the ICT field, software is a critical element. Failure rates associated with software projects are extremely high, and the personnel included in software development teams is one of the most decisive aspects for projects and their deficiencies (McConnell, 2003). The teams should be comprised of practitioners having heterogeneous education and experience (McConnell, 2003) and human resources management systems should be easily able to identify and assess the engineers’ professional training, with the objective of improving the workforce’s competence level (Curtis, Hefley, & Miller, 2001). This improvement is one of the key elements of profession models as stated in the ‘skills development’ component by Ford & Gibbs (1996) and McConnell (2003).
In software engineering, development work is a team activity, and the effectiveness of this teamwork represents a crucial factor for the quality and the success of the entire project (Humphrey, 2006a). Based on this premise, TSP (Team Software Process) originated, aligned with the principles provided by CMM (Capability Maturity Model) and PSP (Personal Software Process), TSP. The main objective of TSP is to provide the fundamental mechanisms so that a development team is able to establish a development process and a plan to define how the work is to be carried out (Humphrey, 2000b). The relevance of TSP is supported by both its integration into the quality framework provided by the SEI (Software Engineering Institute) and the benefits reported by several organizations after its adoption in terms of quality and productivity of engineering teams’ improvement (Humphrey, 2000b). For example, Teradyne saved 228 engineering hours for every 1000 LOC (lines of code) and reduced the repair costs about 4.5 times the cost of producing the programs in the first place (Humphrey, 2000b).