[IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland...

7
Developing Methods for the Identification of Competences Needed for Software Production and Utilization in Industry André Leme Fleury, Afonso Fleury Production Engineering Department, University of Sao Paulo, Brazil Abstract--Software plays an increasingly relevant role in modern life. Particularly, software enables most features of innovative goods and services. However, the way in which software production should be organized is still open to discussion. Although software development has been extensively researched by software engineering theorists and practitioners, there is an increasing concern that the linkages between software suppliers and software users should be clarified, bringing new research possibilities for the Technology Management discipline. The purpose of this paper is the presentation of a new framework for an improved understanding of the existing relationships between software users and suppliers. Software users were characterized by using insights originated from a research in the Telecommunication industry. To characterize software suppliers, two distinct surveys were realized. Finally, to clarify the different relationships that exist between software users and suppliers, we analyzed which competences are required from the supplier company in order to understand the specific needs of each group of user companies and to develop and deliver the most appropriate software system. I. INTRODUCTION Software plays an increasingly relevant role in modern life. For service companies, the emergence of digital media, convergent spaces including software, digital content and multiple channels to access the market 1 , impacts existing dynamics and changes the competitive basis of this market [1]; for manufacturing companies, the expansion of functionalities in products made possible with software moves innovation from hardware to software, changes research and development strategies and positions software management at the core of corporate strategies [2]. Although software is currently a key component for service and manufacturing companies, the way in which software production should be organized is still open to discussion. Software development is being extensively researched by software engineering theorists and practitioners, and development frameworks, such as the Capability Maturity Model Integration – CMMI [3] and the Extreme Programming – XP [4], are widely accepted as references of best practices to be performed by software development teams. However, these development frameworks provide little guidance for the management of the complex relationship that exists between software users – 1 According to Gorton et al. (2004), the term multi-channel is used “when the same service offering is available, to a greater or lesser degree, over more than one delivery platform or type of device (e.g. fixed Internet, TV, wireless)” service and manufacturing companies - and software suppliers during the acquisition, development and delivery of a software system. As a consequence, literature concerning the software discipline is plenty of examples of software project failures caused by the misalignment between users expectations and suppliers deliveries [5]. The aim of this paper is the presentation of a new framework for an improved understanding of the existing relationships between software users and suppliers, aligning the required competences in both teams for the development process, in order to produce the most appropriate results for both companies. Software users were characterized by using insights originated from a research in the Telecommunication industry [6]. To characterize software suppliers, two distinct surveys were realized [7, 8]. Finally, to clarify the different relationships that exist between software users and suppliers, we analyze which competences are required from the supplier company in order to understand the specific needs of each group of user companies and to develop and deliver the most appropriate software system. The following sections of this paper describe software evolution and review the relevant literature; report on the development of a model to analyze Telecommunication companies; report on the development of a model to analyze software development companies; describe a case study used to analyze the relationship between software users and suppliers; and discuss the findings and draw some conclusions. II. LITERATURE REVIEW Much of the difficulties concerning software acquisition, development and use are related with its essential characteristics [9]. Software is embedded knowledge, structured in the form of instructions, databases and documentation. Software is changeable, differently from products, which are usually unchanged after manufacturing, being superseded by later models. Software is embedded in a matrix of applications, users, laws and machines, which all change continuously, and these changes forces changes in software systems. Software is invisible, and it cannot be represented geometrically. Geometrical abstractions have been extensively used in all engineering areas, in order to prototype new product development. Although some powerful software modeling techniques have been developed during last years, software remains inherently unvisualizable, and it does not permit the mind to use some of its most powerful conceptual tools. PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET 1580

Transcript of [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland...

Page 1: [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology - Developing methods

Developing Methods for the Identification of Competences Needed for Software Production and Utilization in Industry

André Leme Fleury, Afonso Fleury

Production Engineering Department, University of Sao Paulo, Brazil Abstract--Software plays an increasingly relevant role in

modern life. Particularly, software enables most features of innovative goods and services. However, the way in which software production should be organized is still open to discussion. Although software development has been extensively researched by software engineering theorists and practitioners, there is an increasing concern that the linkages between software suppliers and software users should be clarified, bringing new research possibilities for the Technology Management discipline.

The purpose of this paper is the presentation of a new framework for an improved understanding of the existing relationships between software users and suppliers. Software users were characterized by using insights originated from a research in the Telecommunication industry. To characterize software suppliers, two distinct surveys were realized. Finally, to clarify the different relationships that exist between software users and suppliers, we analyzed which competences are required from the supplier company in order to understand the specific needs of each group of user companies and to develop and deliver the most appropriate software system.

I. INTRODUCTION

Software plays an increasingly relevant role in modern life. For service companies, the emergence of digital media, convergent spaces including software, digital content and multiple channels to access the market1, impacts existing dynamics and changes the competitive basis of this market [1]; for manufacturing companies, the expansion of functionalities in products made possible with software moves innovation from hardware to software, changes research and development strategies and positions software management at the core of corporate strategies [2].

Although software is currently a key component for service and manufacturing companies, the way in which software production should be organized is still open to discussion. Software development is being extensively researched by software engineering theorists and practitioners, and development frameworks, such as the Capability Maturity Model Integration – CMMI [3] and the Extreme Programming – XP [4], are widely accepted as references of best practices to be performed by software development teams. However, these development frameworks provide little guidance for the management of the complex relationship that exists between software users –                                                             

1 According to Gorton et al. (2004), the term multi-channel is used “when the same service offering is available, to a greater or lesser degree, over more than one delivery platform or type of device (e.g. fixed Internet, TV, wireless)”

service and manufacturing companies - and software suppliers during the acquisition, development and delivery of a software system. As a consequence, literature concerning the software discipline is plenty of examples of software project failures caused by the misalignment between users expectations and suppliers deliveries [5].

The aim of this paper is the presentation of a new framework for an improved understanding of the existing relationships between software users and suppliers, aligning the required competences in both teams for the development process, in order to produce the most appropriate results for both companies. Software users were characterized by using insights originated from a research in the Telecommunication industry [6]. To characterize software suppliers, two distinct surveys were realized [7, 8]. Finally, to clarify the different relationships that exist between software users and suppliers, we analyze which competences are required from the supplier company in order to understand the specific needs of each group of user companies and to develop and deliver the most appropriate software system.

The following sections of this paper describe software evolution and review the relevant literature; report on the development of a model to analyze Telecommunication companies; report on the development of a model to analyze software development companies; describe a case study used to analyze the relationship between software users and suppliers; and discuss the findings and draw some conclusions.

II. LITERATURE REVIEW

Much of the difficulties concerning software acquisition, development and use are related with its essential characteristics [9]. Software is embedded knowledge, structured in the form of instructions, databases and documentation. Software is changeable, differently from products, which are usually unchanged after manufacturing, being superseded by later models. Software is embedded in a matrix of applications, users, laws and machines, which all change continuously, and these changes forces changes in software systems. Software is invisible, and it cannot be represented geometrically. Geometrical abstractions have been extensively used in all engineering areas, in order to prototype new product development. Although some powerful software modeling techniques have been developed during last years, software remains inherently unvisualizable, and it does not permit the mind to use some of its most powerful conceptual tools.

PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET

1580

Page 2: [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology - Developing methods

One fundamental characteristic of software is the repeatability of its development process. Software development always includes four fundamental processes, which must be performed in all software projects [10]: 1. Software specification: methods, techniques and tools for

the definition of the functionalities of the software and constraints on its operations; includes requirements analysis and definition, which should be understood and agreed by customers, users and development team.

2. Software development: comprehends methods, techniques, and tools to design software architecture and develop it; includes system and software design, which partitions software requirements, generates the overall system architecture and detailed design, and software implementation, when software design is realized in sets of programs.

3. Software validation: comprehends methods, techniques, and tools to guarantee that the produced software does what the customer wants; includes unit program tests and system testing;

4. Software evolution: comprehends methods, techniques, and tools to evolve the software to meet changing customer needs; each evolution cycle can be considered a small software development cycle.

Because software development follows a repeatable

pattern of activities, software engineering theorists have been working on the development of frameworks that represents sets of best practices for the performance of these activities. Those frameworks can be divided into two major groups: formal and agile methodologies. We present some of the most important features of these development frameworks, emphasizing the most important contributions provided by the research community for the activities concerning software acquisition and supply.

Currently, one of the most important formal software development methodologies is the Capability Maturity Model Integration (CMMI), an evolution of prior capability maturity models developed at the Software Engineering Institute (SEI). The model prescribes good practices for developing and maintaining software products and services during their complete lifecycle, since inception until delivery [3]. The practices, sub-practices and examples that flesh out the model guide software professionals in making decisions about the adequacy of a range of process implementations; however, there are no practices in the CMMI concerning specifically software acquisition and supply activities.

The Unified Process (UP), currently supported by IBM, aims to provide a disciplined approach to assigning tasks and responsibilities within a software development organization. The software lifecycle is broken in four consecutive phases: inception, elaboration, construction and transition [11]; similarly to the CMMI, the Unified Process doesn’t address specifically software acquisition and supply activities.

The Extreme Programming (XP) is an agile software development process, developed specifically for small to

medium teams building software in the face of vague and / or rapidly changing requirements. The process is intended to be highly dynamic, where development teams deals with requirements changes throughout an iterative life-cycle with short loops [4]. Specifically about the relationship between software users and developers, XP claims that customers should be completely involved in development activities, participating in all decisions that are made during the iterative development.

Finally, the ISO/IEC 12207 – Software Lifecycle Process - aims to be the most comprehensive document concerning software development, describing the complete set of tasks required to develop it, since its inception until its maintenance and discontinuity [12]. This norm forms the basis of the ISO/IEC 15504 – Software Process Improvement and Capability Determination [13], which is also used to evaluate the maturity of development processes at software companies. The ISO/IEC 12207 provides a common language for software practitioners, including buyers, suppliers, developers, maintainers, operators, managers and technicians. It is divided into three major groups of processes: primary life cycle processes, supporting life cycle processes and organizational processes. Primary life cycle processes include acquisition, supply, development, maintenance, and operation. Supporting life cycle processes include documentation, configuration management, quality assurance, verification, validation, joint review, audit, and problem resolution. Organizational processes include management, infrastructure, improvement, and training. The five primary life cycle processes are divided into "activities," and the activities into "tasks”. Acquisition process includes activities that should be performed by software users and the process starts with the definition of the need to buy a software; supply process includes activities that should be performed by software suppliers, and the process starts with the decision to respond to a request for proposal and continues with the allocation of the necessary resources to develop the software. - Conclusions from the literature review

Software systems are being developed to perform very different applications, varying from word processors that are sold to hundreds of millions of users until very specific systems developed to support military applications. However, because software development follows a repeatable pattern of activities, most of the theories currently recognized as sets of best practices for software development consider all development activities as equally important for all software projects. This observation reinforces the arguments presented by Boehm [14], who claims that value considerations must be incorporated to analyze and prioritize the most important activities during the software development process.

Specifically concerning the relationship between software users and suppliers, only the ISO/IEC 12207 proposes a set of common activities that should be performed by the companies involved in the acquisition and supply processes.

PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET

1581

Page 3: [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology - Developing methods

Therefore, this norm was used as the basis for the development of frameworks to categorize software users and developers and to analyze the relationship between these different companies, emphasizing the competences and skills required to obtain the most effective results from a software project.

III. CHARACTERIZING SOFTWARE USERS – AN ANALYSIS OF THE TELECOM INDUSTRY

The initial insight toward the development of a model for

the alignment between software users and suppliers came from a research process focused on the Telecommunications industry, aiming to its assessment as a Global Value Chain. Telecom, as part of the Information Technology industry, is carrier of new technical and organizational paradigms for industry and the society, and consequently, it can be considered as one of the most important software consumer industries.

Initially, the framework used for that research was the one elaborated by Fransman [15], who proposed that telecommunication activities might be grouped into six different layers. The first is the equipment and software layer, the second is the network layer, the third is the connectivity layer, the fourth is the navigation and middleware layer, the fifth is the applications layer, and the sixth is the consumer layer. Importantly, the first and second layers combine hardware and software, while the third, fourth and fifth layers are predominantly software based.

For this reason, the research project initially focused on the first and second layers aiming to characterize software and hardware producers and network operators as one value chain. Three primary life cycle processes presented by the ISO/IEC 12207 were used to characterize the most important

competences of these companies: system acquisition, system development and system operation. This initial framework was submitted to be validated by a small group of telecommunication’s specialists. However, the field research revealed another type of firm, not previously identified, which had system integration as its core competence.

Therefore, the resulting model included four distinct categories of companies acting in the Telecommunication industry. Network Operators: these are the organizations that

interact directly with the ultimate consumers. They are industrial producers of "service" and essentially commercial enterprises.

Integrators: the increasing complexity involved the conceptualization, design, specification, procurement, assembling, testing, delivery and implementation of large technological solutions paved the way to the emergence of Integrators, providers of large technical systems or systems of systems for Network Operators, as coined by Hobday et al. [16].

Developers: under this label are included firms that are leaders due to their competence in Research and Development, which widened the scope of their activities by becoming "Solutions Providers". According to the typology by Hobday et al. [16], these firms are oriented towards “Product Systems”.

Manufacturers: These are firms specialized in production (manufacturing), and their core competence is process design and execution. They are able to deliver to their clients the products and services following strict requirements in terms of quantity, cost, quality and time.

Figure 1 presents schematically the existing relationships among the four identified categories of Telecommunications companies.

OperatorsIntegrators

Developers

System (Integrated Solutions)

System Characteristics

Producers

Solution Characteristics

SolutionSolution

CharacteristicsSolution

ProductProductProject

Market

Figure 1: Categories of Telecommunication companies

This new framework was submitted for a Delphi group, and validated by the participants; minor relevant considerations were presented and the outcomes of that

research revealed the following pattern of firms and core competences, which are presented in Table 1.

PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET

1582

Page 4: [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology - Developing methods

TABLE 1: SUMMARY OF THE TYPES FOUND IN THE TELECOMS INDUSTRY Products/Markets Core competence Key processes Network Operators

Service providers (products and/or services), direct interaction with end markets.

Marketing, Customer relationships

Service identification, development, implementation and operation

Integrators

Complex systems providers (integrating products, processes and operational systems and software taking into consideration institutional requirements)

Customer driven systems design, engineering and delivery Management of large multidisciplinary projects

Systems Engineering, Institutional and Financial Engineering, Technology monitoring and assessment, systems specification, procurement, assembling and delivery

Developers

Providers of innovative products and solutions

R & D Complex products design and production

Advanced R&D Breakthrough type of innovation

Manufacturers

Providers of parts and components (hardware and software)

Process and production Engineering, efficiency

Manufacturing processes conception development and operation

The above model will be used to characterize software

users, emphasizing the different needs that each category presents in terms of software systems.

IV. CHARACTERIZING SOFTWARE SUPPLIERS

The second research initiative towards the construction of a model for the alignment between software users and suppliers came from a research specifically concerning the software sector. Differently from the Telecommunications industry, in this study there was no initial model to be used as a basis, because at the market level, software companies are usually classified as “product developers” or “service providers”, and this categorization is useless to analyze the linkages between the development process and the core competences at software companies [8].

Two surveys were realized, aiming to gain preliminary insight about the differentiation of software companies according to their development practices. The first survey was designed and implemented using the guidelines proposed by Forza [17]. The content of the questionnaire was based on the “ISO/IEC 12207 - Software Life Cycle Description” [12], incorporating questions about strategic priorities, commercial practices, and software development activities.

Among the proposed questions, respondents were asked about their commercial practices, including number of active projects and number of active customers at their business units. Software management deals with the concepts, methods, and techniques for managing a software project and its development activities [18]. In this context, each software project can be considered a “unit of analysis” for a software company, since a complete “software life cycle”, which include software management activities and software development activities, will be performed each time a software project is executed.

Each software project generates only one final system, and the number of customers that can benefit from this project output (final system) generates a perspective of scale for the result of a software project. If a project output has thousands of potential customers, corporate strategy should be based for mass-selling; on the other extreme, if the number of customers that can benefit from this project output is the initial customer only, the development company should focus on selling more software projects for this specific customer.

As a consequence, the relationship between total number of customers and total number of projects in a software company reveals the company’s specialization towards customized or mass development. Therefore, an analysis of the obtained data using the relationship between number of active customers and number of active projects to segment software companies revealed three relevant categories: • Customer Oriented: companies with less than one

customer per project, usually developing several software projects for few specific customers. The main objective is to develop software on demand for their customers; as a consequence, the stronger the customer, the bigger the opportunities for the software company.

• Service Oriented: companies with few customers per project. They usually work with few software systems and provide services related with these systems for their customers, including software customization, implementation, user training and software operation (outsourcing).

• Product Oriented: companies with several customers per project, usually working in the development of standard software solutions, which are commercialized with several other companies.

Based on this new categorization, we could verify that

services and products at the software market can be divided as presented in table 2:

PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET

1583

Page 5: [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology - Developing methods

TABLE 2: TYPES OF SOFTWARE PRODUCTS AND SERVICES

Category Deliverable Description

Service Original Software Software originally developed for the user; Custom Software Existing software, customized for the user;

Product

Application Software that can be used directly by the end user; Complex Products Software that needs customization before utilization by the end user; Components Software that will be incorporated during the construction of new software; Tools Software that will be used for the construction of new software;

Using these categories of products and services, the software industry dynamics can be illustrated as presented in figure 2:

SoftwareUsersCustomer Oriented

Services OrientedProduct Oriented

Software Product- Tools- Components

CustomSoftware

CustomisationRequirements

Original Software

Software Requirements

Software Product- Applications

Software Product- Complex Products

Figure 2: Categories of software companies

Based on the analysis of the outcomes of the survey, the most important characteristics of each category of company can be

summarized as follows:

TABLE 3: CHARACTERISTICS OF SOFTWARE DEVELOPMENT COMPANY CATEGORIES

Customer Oriented

Service Oriented

Product Oriented

Description Original software developers Software service providers Innovative mass software products developers

Focus Customer orientation Service Orientation Product orientation Research and development focus

Customer portfolio Service portfolio Product portfolio

Products / Services

“One-off” software systems, based on customers specification

Software Services including: - Customization - Implantation -Training - Software operation (outsourcing)

Packaged software, including applications, tools, components or complex products.

Quality Process Quality Project Quality Product Quality Certification SW-CMM/CMMI PMBok [19] ISO 9126 [20] Major Risks Requirement changes and project

duration Project cost and project duration Project duration

Project Management Focus

Management of customer expectations Management of project constraints Management of product quality

Training Programming and configuration management

Programming and system modeling Programming and system tests

The above model will be used to characterize software

suppliers, emphasizing the different competences that are required for the software company to attend satisfactorily their customers.

V. ALIGNING SOFTWARE USERS AND SUPPLIERS: INSIGHTS FROM A CASE STUDY

The final initiative towards the development of the

framework for the alignment between software users and

suppliers included the analysis of the existing relationships among the companies identified as software users and the ones characterized as software suppliers.

At this stage of the study research methodology included the realization of a case study at a telecom company, specialized in the development of communication systems to be used for the transmission of data originated at remote machines using the mobile network, reducing the cost required to collect this data manually. This company was selected because it was experiencing high growth rates,

PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET

1584

Page 6: [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology - Developing methods

starting to face strong competition from multinational companies and needed to align its business strategy with its technological capabilities.

The company developed its software in-house, and during its first years, the communication solution had to fit all potential customers, preferably with minimal degree of customizations. The embedded software used in this solution needed to provide innovative functionalities in order to attract new customers and had to meet quality standards, in order to minimize the cost of fixing bugs during the time early adopters were testing this solution.

The company was successful in developing a robust solution and an electric company ordered a specific system to automate the transmission of data from its electrical metering. This order was big enough to justify the customization of the embedded software and the company began to develop specific data transmission systems for this electric company. In this moment, the software had to have the functionalities specified by this customer, and since the system would be extensively tested by the customer before operation, software quality standards were not so important during initial development.

Therefore, from the analysis of the two experiences of this company, it is possible to connect the two models previously

presented in this paper. In the first period, when the company positioned itself as a “Developer”, investing in research and development to create new telecommunication solutions, the embedded software needed to provide some of these innovative functionalities and had to have good quality, minimizing the need for customization. This description is consistent with the description of “product oriented companies”, which have to develop innovative software, with high quality standards.

However, when the analyzed company started to develop specific systems for the electric company, it started to act as an “Integrator”, satisfying the unique needs of this company. As a consequence, software development had to comprehend all the requirements proposed by the customer, and therefore, it started to act as a “customer oriented company”.

VI. CONCLUSIONS

In both situations experienced at the analyzed company, it was possible to observe that its position in the Telecommunication model determined which would be the major characteristics of its software development process. Figure 3 presents the explained relationships.

SoftwareUsers

Customer Oriented

Service OrientedProduct Oriented

OperatorsIntegrators

Developers

Producers

2Software (Suppliers)

Telecommunication (Software Users)

1

3

4

Figure 3: Aligning software users and suppliers

The core competence of a “Developer” company (1) is

research and development, aiming the creation of innovative technological solutions. Since part of these innovative functionalities are provided by software and these solutions will be transacted with several “Integrators” and “Operators” with minimal customization, then software development presents characteristics described for “product oriented companies”, since the software must present innovative

functionalities, obtain high quality standards and demand minimal customizations.

The core competence of an “Integrator” company (2) is the development of technological systems in accordance with the unique specifications provided by the “Operators” to create a projected service. Since this service will require several different solutions provided by different “Developers” working together, the process of integrating these different

PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET

1585

Page 7: [IEEE Technology - Cape Town, South Africa (2008.07.27-2008.07.31)] PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology - Developing methods

solutions is possible only with the development of specific software, developed in accordance with the unique requirements of this customer.

Finally, “Operators” (3) are specialized only in software use; therefore, competences required to specify and validate software may be outsourced for “Integrators” companies, which will handle the development of the systems necessary to deploy the services imagined by the “Operator” company. In its turn, “Producers” companies (4) are not involved in any of software development activities, because they only receive finished software (executable files) that will be embedded in hardware systems using simple transferring techniques.

Therefore, the way in which software production should be organized clearly differs considerably among firms dealing with distinct types of software. As a consequence, distinct organizational settings will require different competences from the workforce. Understanding the alignment between the competences required to specify, acquire and validate software systems at software user companies and the distinct competences required to develop this software inside or outside the firm improve the dynamics of creation and diffusion of innovation, and consequently, enhance the competitiveness of the involved companies.

The presented analytical frameworks and tools, developed to align the required competencies of software developers in relation to the requirements of industries different from the software industry, have been validated afterwards in new research initiatives by software theorists and practitioners, and were used to structure educational directives for the Brazilian Industrial Educational Service [21].

REFERENCES [1] M. Gorton, S. Brown, and S. Banks, Analysis of the multi-channel

software, digital content and related service converged business space - a report to the Department of Trade and Industry. London: OVUM, 2004.

[2] D. R. Probert, F. H. Hunt, P. Fraser, A. L. Fleury, and T. Holden, "Sourcing software content for manufactured products," Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture, vol. 221, pp. 809-820, 2007.

[3] M. B. Chrissis, M. Konrad, and S. Shrum, CMMI: Guidelines for process integration and product improvement: Addison-Wesley, 2003.

[4] K. Beck, Extreme Programming Explained: Addison-Wesley, 1999. [5] T. deMarco, Why does software cost so much?: Dorset House

Publishing, 1995. [6] A. Fleury and M. T. L. Fleury, "Towards a new analytical framework

for the study of production and operations management," 2006. [7] A. L. Fleury, M. d. M. Spinola, and A. C. Tonini, "The State of the

Practice of Software Engineering in Brazil," presented at PICMET, Portalnd, 2005.

[8] A. L. Fleury, F. Hunt, M. Spinola, and D. Probert, "Customizing the Technology Roadmapping Technique for Software Companies," presented at Portland International Center for Management of Engineering and Technology, Istambul, 2006.

[9] F. P. Brooks, "No Silver Bullet Essence and Accidents of Software Engineering," Computer Magazine, vol. April 2007, 1986.

[10] I. Sommerville, Software Engineering: Addison-Wesley, 2006. [11] P. Kruchten, The Rational Unified Process: an introduction: Addison

Wesley, 2000. [12] I. S. O. ISO, "ISO/IEC 12207 - Information Technology - Software life

cycle processes," 1995. [13] I. S. O. ISO, "ISO/IEC 15504 - Information technology - Process

Assessment," 2004. [14] B. Boehm, "Value-Based Software Engineering," ACM SIGSOFT

Software Engineering Notes, vol. 28, 2003. [15] M. Fransman, "Evolution of telecommunications industry into the

Internet age," in The International Handbook on Telecommunications Economics: Edward Elgar Publishing, 2001.

[16] A. Prencipe, A. Davies, and M. Hobday, The Business of Systems Integration. Oxford: Oxford University Press, 2003.

[17] C. Forza, "Survey research in operations management: a process-based perspective," International Journal of Operations and Production Management, vol. 22, 2002.

[18] S. E. I. SEI, "Software Engineering Body of Knowledge," 2005. [19] P. M. I. PMI, A Guide to the Project Management of Knowledge -

PMBOK, 2000. [20] I. S. O. ISO, "ISO/IEC 9126 - Software engineering - Product quality,"

2003. [21] A. L. Fleury and A. Fleury, "Novas Formas de Organização do

Trabalho - Setor Software," Brasilia 2007.

PICMET 2008 Proceedings, 27-31 July, Cape Town, South Africa (c) 2008 PICMET

1586