Logo en.artbmxmagazine.com

Software development cost estimate

Anonim

The estimation of software development costs is a very important factor in the analysis of computer projects, it is a strategic issue to have indicators to measure the cost of them, guaranteeing efficiency, excellence, quality and competitiveness. Cost analysis is the process of identifying the resources necessary to carry out the work or project efficiently.

The cost evaluation determines the quality and quantity of the necessary resources in terms of money, effort, capacity, knowledge and time, influencing business management. Currently there are a set of metrics that are not used, and that can be applied to any type of software project to calculate their cost.

This research proposes the design of a set of metrics to calculate the cost in the software development process. The metrics are as general as possible and are not tied to a specific software methodology, but to evaluating the software as a commercial product.

To select the metrics, the influence that they have for decision-making was taken into account, providing key elements for the analysis of the projects, such as the adequate aptitude of the project manager in relation to the understanding of technology, administrative skill, personal skill. for communicating. Ability to make decisions, positive relationships with beneficiaries, participation of the project team in the analysis, adequate resources. Assessment of income and costs, administrative and managerial support and the commitment that must exist among the project members.

Key Words: metrics, costs, software development, software methodologies.

Abstract

The estimation of the costs in the software development process is a very important issue in the analysis of the information-technology projects. Constitute a strategic theme counting with indicators to measure the cost of the software development projects, keeping the efficiency and competitiveness of these process. The analysis of cost is the process of identification of the necessary resources to carry on the work project efficiently.

The evaluation of the cost in the software projects determines the quality and the quantity of the necessary resources in terms of money, effort, capacity, knowledge and remaining time, making these factors have direct consequences into the enterprise efficacy.

Nowadays there are a set of metrics that are not very used, and it can be applicable in any type of project of software, since these projects defer as much in programming tools, methodologies, platforms, etc. Even in many instances one of the points that are used in the estimate is the developer's experience.

This investigation proposes the design of a set of metrics to measure the cost and the viability of the products of software and a tool to evaluate the same. This metrics are the most general possible and are not linked to the methodologies or frameworks in specific, rather to evaluate the software like a commercial product.

Key word: metrics, costs, software development, methodologies of software.

Introduction

The estimation of costs in software development is a really important factor for the analysis of projects, it is a strategic issue to have metrics to measure the cost of a software project guaranteeing efficiency, competitiveness, effectiveness and excellence. An indispensable element in any economic system constitutes ensuring the role of cost in planning the country and fundamentally in the correct direction of the company through agile mechanisms that allow a high degree of reliability.

Currently, those companies that seek to reach a competitive level need a good cost system that serves as a basis for decision-making. Defining the different types of costs by areas of responsibility and cost centers is a great advantage for any organization.

In today's business world, it is essential to achieve the levels of efficiency expected by customers and by the competition. To achieve this, the entity's costs must be known; they can provide the information required for the entity's planning, evaluation, and control operations, allowing strategic, tactical, and operational decisions to be made that contribute to the fulfillment of an organization's objectives.

Achieving the effective measurement and management of operating costs or expenses implies a competitive advantage, which will allow the organization to better value the expenses of all its activities, make decisions aimed at reducing them, and thus meet the objectives set and satisfy the demand of your potential customers.

Cost analysis is the process of identifying the resources necessary to carry out the work or project. The cost evaluation determines the quality and quantity of necessary resources in terms of money, effort, capacity, knowledge and time, which on different occasions are not estimated or, as in other cases, it is valued that the cost is so low that it is not analysis necessary. Similarly, it often happens that once the project has started, developers realize that the equipment, materials, and human resources required to complete it are not available and the project fails (Jones, 2004).

Cost analysis not only helps determine the cost of the project and its maintenance, but also helps determine if it is feasible. The software should be measured to evaluate the benefits in terms of productivity and quality derived from the use of new software engineering methods and tools, establishing a baseline for the estimation.

Calculating the cost of software development and its accuracy has become a key factor for both the entity developing the software product and the customer who expects the cost of the software to match the estimate. A sufficiently accurate estimate allows the company to better plan the projects it manages, as well as a better allocation of the necessary resources for each project, while errors in the estimate may mean that project planning ends up suffering more problems from initially expected, a decrease in quality, delays in the delivery date, excess resources reserved for the project, which leads to an excessive budget.

Software development cost calculation models are based on a set of variables, these are called factors such as cost, effort or size, each model bases its estimates on its own set of factors.

Estimation methods are affected by the large amount of data required and the difficulty of obtaining it. The lack of information is accentuated in the initial stages of the project because the application to be developed is not fully defined. As the development of the project progresses, more details are known about the system, the relationships between the factors increasing, allowing a greater accuracy in estimation.

Software development is a very complex activity, resulting in an intangible product that depends mainly on the intellectual effort and creativity of the people who carry it out. Human errors are present in all stages of a project of this type and its correction can be very expensive. The result of a software product with the most exact cost possible implies the use of methodologies, procedures, metrics and standards for the analysis, design, programming and testing of the software that allow the work philosophy to be uniform (Jones, 1996).

The estimation activity is not done once in the project, as more data becomes available, more precise estimations are made that allow better planning of the rest of the project.

Of all the points at which the estimation can be made, when the least data is available to carry it out is at the initial moment, when the feasibility of the project is still being evaluated. From the point of view of the development and sale of specific software for third parties, this estimate, from an early stage, is one of the most important.

Correct early estimation of a software project is a difficult task. This situation is known and that is why development companies try to sell the analysis and design separate from the coding, so that the latter can be estimated on a firmer basis. In particular, the Unified Software Development Process maintains that only at the end of the development phase is it in a position to make a firm economic proposal, which implies having consumed 25% to 30% of the project's resources upon reaching this period (Ivar Jacabson, The Unified Software Development Process, 2000).

Regardless of what is more correct, the truth is that the market requires closing a price before starting work. The cost of both material and human resources is another issue that must be reconciled between the parties in order to minimize errors and maximize the quality of the result, which is why it is of great importance to carry out good cost planning from the preliminary phase of draft.

Therefore, the need arises to provide a solution to the problems posed, defining as a scientific research problem, how to calculate the total cost of a computer product in software development?

The objective of this research is to design a set of metrics to calculate the cost of a software product.

In order to solve the problem situation, it was necessary to execute a set of specific objectives:

  1. To inform current trends, methodologies and most important concepts related to the cost of a software product. To identify the main models for calculating the cost of software. To study the metrics used in the creation of a software product.

From the foregoing, the following hypothesis is defined : If there were a set of metrics to calculate the cost of a software product, it would help determine the feasibility of the project.

Study object: Software engineering.

Field of action: Methods for calculating cost in software development.

For the development of these metrics, a series of research questions were taken into account :

What are the current metrics that are followed globally to measure the cost of a software product?

Understand the latest software development methodologies and how they influence the final product costing process?

What are the advantages of developing a software taking into account its cost from early stages?

How many human and monetary resources would be saved by calculating the cost of the software product efficiently?

This research has the Scientific Novelty:

The thesis shows theoretical elements that support the preparation of the set of metrics to calculate the complexity of the software product in the Company. This analysis will increase the capacity for decision-making, it is correct for the company, being useful for progress and perfection. of business and economic performance indicators, promoting superior efficiency and competitiveness. Developing new instruments that are novel in the country and in the world constitutes a challenge to continue strengthening the methods that are used today.

As research methods, observation was used to obtain much of the research knowledge; the analytical-synthetic method, which allowed analyzing the theory and existing documents, to subsequently carry out the extraction of the most important elements related to the object of study. As a technique for collecting information, the interview was used to accumulate other data of interest for the investigation.

The content of this research is broken down into 3 chapters, the general conclusions, recommendations, and bibliography used, lastly the annexes that complement the body of the work and that are necessary for its understanding.

Chapter 1 “Management Accounting and Estimation Techniques” includes the results of the study on the state of the art at the international and national level on how to calculate the cost in software development; The main concepts that will be covered throughout the work are described, as well as the analysis of the main estimation techniques that are used worldwide to calculate the cost of a software product, showing the benefits of its use for making decisions.

Chapter 1. Management accounting and estimation techniques.

This chapter describes the main aspects and concepts of relevance that have been analyzed throughout the research. The tools and technologies to be studied show the state of the art regarding the techniques used to estimate costs in software projects which allow analysis of the feasibility of a computer product. Methodologies for agile development of business applications are analyzed, as well as the metrics most used in software development.

1.1 Management Accounting

Cost Accounting is a part of accounting that aims to capture, measure, record, measure and control the internal circulation of company values, with the aim of providing information for making decisions about production, training based on the cost price policy and on the sales price policy and analysis of the results, based on the technical laws of production, the social laws of organization and the economic laws of the market, is in close collaboration with the rest of the areas functional, allowing those responsible for its execution to participate, together with management, in decision-making ”(Fernández, 1993).

It transmits financial and non-financial, quantitative and qualitative information, in order to facilitate decision-making by the different levels of the organization, regarding the monitoring and achievement of the strategic and general objectives set, the planning, control and measurement of all activities of the organization (internal and external), in close collaboration with the rest of the functional areas, allowing those responsible for their execution to participate, together with management, in decision-making. It provides data for planning and controlling routine operations, policy making and long-term planning as well as profit determination (Cost Accounting, 1991).

Cost accounting constitutes an expanded basis of the General Accounting of an industrial or commercial entity that quickly provides management with data related to the costs of producing or selling each item or supplying a particular service (Maldonado).

The most important term that establishes the conceptual basis of cost accounting is cost. Many definitions have been raised by personalities who study the subject, and later different definitions of cost will be presented:

  1. ″ Cost is the monetary value of the resources that are delivered or promised to be delivered, in exchange for goods or services that are purchased. » (Colín, 2001) ″ Cost is the sum of efforts and resources that have been invested to produce something. » (González, 2001) ″ Cost is the set of payments, obligations contracted, consumption, depreciation, amortization and applications attributable to a given period, related to the functions of production, distribution and financing. ″ (Ortega, 2001) ″ Cost is defined as the sacrificed value to acquire goods or services, which is measured in dollars by reducing assets and / or incurring liabilities at the time benefits are obtained. ″ (Ralp Polimeni, 1989)

Given the importance of cost, which is a necessary and indispensable element to set the price of the product, it was decided to introduce a new concept of cost for research.

  1. "It is the necessary consumption of financial, material and human resources to obtain a computer product."

The analysis of the execution of costs allows decision-makers to take management measures since the determination of cost constitutes a fundamental tool in defining the prices and rates that will govern during a period. Taking into account that the cost calculation is carried out on the basis of a greater reliability rigor in correspondence with the established norms and budgets, it allows to define it as an effective instrument for the management, allowing to measure the behavior of the economic activity of the companies, hence, it is vitally important to keep control of the entity's costs.

1.1.1 Importance of Costs.

Cost represents an indicator to measure economic efficiency. It reflects the levels of labor productivity, the degree of efficiency with which the funds are used, as well as the results of saving material, labor and financial resources.

It allows the comparison of the results obtained in different periods and thus helps to find new ways for the rational and optimal use of productive resources, in a planned way and aimed at guaranteeing reproduction. (Rumiantsev, 1975)

The cost as a management tool facilitates the assessment of possible decisions to be made, the cost measures the use of available resources in any economic process, to such an extent that it facilitates knowing the effect of the deviations that occur in relation to the programs, and that will provide the assurance of proper planning and use of the material and human resources that are possessed. It facilitates strategic decision-making as it shows the real level of competitiveness of the company, as well as the possibilities of success or failure compared to the competition. (Cueto Ible & Sánchez Batista, 2000)

There are also the expenses of Research and Development (R + D + i), these are the costs that are incurred in the creative work carried out in a systematic way to increase the volume of knowledge, including knowledge of man, culture and society, and the use of this knowledge to create new applications (Chang, 2013). There are several classifications for costs, which allow grouping it according to its characteristics.

Cost is the value invested to obtain goods or services. They have as purpose:

  1. Provide cost-related reports to measure profit and evaluate inventory (income statement and balance sheet.) Offer information for administrative control of company operations and activities (control reports). Provide information to management to inform planning and decision-making (analysis and special studies).

Costs are used as a tool of management in decision making for the following purposes: (Audirac, 1997)

  • Determine the price of a good or service. Product costs are generally used to distinguish the product that generates the greatest gross profit or loss. Measure the execution of the work, that is, compare the real cost of manufacturing or service with a previously determined cost. Evaluate and control inventory. Inventory control refers to keeping adequate quantities of the different products in stock in the proportions necessary for sale.

1.1.2 Cost Classifications.

Relationship with the volume or level of activity:

  • Variable costs: Are those in which the total cost changes in direct proportion to the changes in volume or production within the relevant range while the unit cost remains constant. Fixed costs: They are those in which the total fixed cost remains constant for a relevant range of production while fixed cost per unit varies with production and proportionally with volume. Mixed costs: These have both fixed and variable characteristics throughout various relevant ranges of operations. There are two types of mixed costs: semi-variable costs and tiered costs. Semi-variable costs: The fixed part generally represents a minimum charge when making a certain item or service available. The variable portion is the cost charged for actually using the service.The fixed part changes abruptly at the different levels of activity because they are acquired in individual portions. A tiered cost is similar to a fixed cost within a very small relevant range.

Ability to associate them:

  • Direct costs: These are those that management is able to identify with the specific items or areas, for example the costs of direct materials and the direct labor of a specific product are examples of direct costs. (Sáez, 1993) Indirect costs: They are common to many articles and therefore are not directly identifiable with any article or area. These are usually uploaded to articles or areas using allocation techniques. (Gayle, Accounting and Cost Management, 1999)

Register, accumulate, distribute, control, analyze, interpret and report the costs of production, distribution, administration and financing, are some of the tasks that must be carried out in companies to guarantee the quality of their products and services, the Software companies are not left behind in these analyzes, since every software engineering project must start with a good planning and examination of the resources available to create a quality product, to achieve this final product it is necessary to go through several stages in a row It describes what software development consists of.

1.2 Software Development

Software development is the application of a systematic, disciplined, and measurable approach to software development, operation, and maintenance, and the study of these approaches, that is, the application of engineering to software. (Alain Abran, 2004)

According to IEEE Software is defined as the sum total of the computer programs, procedures, rules, documentation and associated data that are part of the operations of a computer system. Under this definition, the concept of software goes beyond computer programs in their different forms: source code, binary or executable code, in addition to their documentation.

Software development is a complex activity that depends mainly on the intellectual effort of people, as well as on the processes and technology with which it is developed.

Today the boom in communications has generated a constant employment of computer engineers who are capable of creating programs that were previously only utopias. In the creation of the software specialists, technicians, engineers from different branches of the sciences are grouped, who are capable of solving real problems based on the economy and society, with intellectual capital being vital in software development. That is why this research takes into account the knowledge possessed by specialists linked to the development of computer applications.

For software development, the software methodologies are taken into account. Some of them are referred to below.

1.2.1 Software Development Methodologies

Currently, one cannot speak of software development without mentioning the software development methodologies which aim to achieve the construction of an efficient computer system that meets the stated requirements, it is a really intense task and above all difficult to do. comply (Pressman, 1998).

Software development methodologies impose a disciplined process on software development to make it more predictable and efficient. The main objective of a software development methodology is to increase the quality of the software, evaluating the requirements at each stage

There is no universal software methodology, as all methodology must be adapted to the characteristics of each project (development team, resources, etc.), thus requiring that the process be configurable. Development methodologies can be divided into two groups according to their characteristics and the objectives they pursue: agile and robust.

Traditional or robust models have their phases defined, and more requirements for closing one phase before moving on to the next. These require more documentation of each phase and the verification of completion of each work product, tend to work well for long-term projects.

For new software with well-defined deliverables, dynamic models are inherently incremental, and demonstrate that small editions produce a more robust than larger product, documentation is less, the basic idea is code-focused basing all your efforts and documentation to it (Principles of the agile manifesto, 2005).

Each project should be decided by the model that best suits the project to be created taking into account its particular application, the size of the project, the experience of the team, and the timeline of the project. Some software methodologies are mentioned below.

1.2.2 Robust Methodologies

Robust or traditional methodologies are guided by strong planning. Focusing your attention on keeping an exhaustive documentation of the entire development process and on complying with a project plan, defined in the initial phase of it. Robust methodologies include: Microsoft Solution Framework, METRIC 3, and Rational Unified Process (RUP).

These control the planning, development and management of technological projects. They are adaptable, scalable, teams as small as 3 or 4 people can be organized, as well as projects that require 50 people or more. They facilitate communication and understanding between the different participants in the production of software throughout the life cycle of the project, taking into account their role and responsibility, as well as the needs of each and every one of them. Among the most recognized is the Unified Development Process (RUP) which clearly defines who, how, when and what should be done in the project.

The RUP has three fundamental characteristics is directed by use cases, that is, that in the project they are oriented to the importance for the user of what the product should do, it is a process focused on architecture, where the baseline of architecture is organized, and is iterative and incremental. (Ivar Jacabson, The Unified Software Development Process, 2000) This methodology is generally the one used in technical and university education.

In agile methodologies the concept is different, the following section shows some of the most used.

1.2.3 Agile methodologies

Agile methodologies begin in the mid-1990s, at the Institute of Software Engineering (SEI) at Carnegie Mellon, this new process model was light weight. It required less documentation and fewer process controls. It was targeted to specific sectors in small pieces for medium software, it is projected for smaller teams of developers. It was intended to allow these developer teams to quickly adjust, change requirements, and put demands on the client as the software was delivered (Martin, 2009).

Dynamic development takes effect from the proposition that the goal of any software development project is code, so the development team should spend most of their time writing the code, not writing documents (Shore, 2008).

Agile methodologies have several characteristics, they tend to emphasize code, frequent product editions, constant exchange with the client in development, code reuse to make it simpler and more readable.

There are several agile methodologies such as Extreme Programming (XP), KANBAN, Agile Unified Process (AUP), Scrum. For the design of the proposed metrics, the conception of the Scrum methodology was taken into account due to its great use and positive results, in addition to proposing an analysis of the costs in software development.

The idea in the dynamic Scrum methodology revolves around the team, which is unified around a single goal and meets to maneuver towards that goal. (L Rising, 2007)

Scrum in this case provides the necessary tools to estimate as close as possible to reality. In many cases contracts are a very useful tool for specifying project time and costs. Companies in recent years have given value to agile technologies and have taken their positive aspects and benefits that they provide to their end users. The use of Scrum is mainly based on the analysis of time and materials, it is a methodology that It can also be used in large-scale projects. (Zeitler, 2001)

Entities that make use of agile tools ensure that time rationalization is the main motivation to apply dynamic methodologies, another advantage is increased productivity, an even greater advantage is the ability to manipulate the changing requirements of client which makes the client's progress more visible.

Scrum is a framework for software management and development analyzing among its variables the cost, scope and time (See Annex 1). The following section shows the relationship between them.

1.2.4 Iron Triangle

In every project there are three related variables, the so-called "iron triangle" the scope which reflects the requirements or tasks to be carried out, the time or planning shows how long the project will last, the cost or resources that analyzes how much money, people, resources are will dedicate to the project. In order to maintain certain quality objectives, any modification in one of the three variables implies the modification of one (s) of the other two. (Kniberg, 2012)

Iron Triangle

Illustration 1 Iron triangle. Source: Own elaboration .

If the people dedicated to the project are reduced, given a certain quality, it will be necessary to reduce the scope of the project and / or increase its delivery date. If the date on which the project must be delivered is reduced, given a certain quality, it will be necessary to reduce the scope of the project and / or increase the resources that will be dedicated to it. If the scope of the project is increased, given a certain quality, it will be necessary to increase the delivery date of the project and / or increase the resources that will be dedicated to it.

Planning from initial stages the behavior of these variables is necessary to obtain a product that meets customer requirements where the time and estimated cost are as accurate as possible to what is contracted. The challenge is to define them unequivocally, so that risks are detected and there are no surprises when the product is delivered (Larman, 1999). To achieve this, estimation techniques are used that contribute to project planning.

1.3 Estimation of costs.

Costs are usually quantifiable and estimated in economic units. In a cost-benefit analysis, one must consider those tangible aspects, quantifiable in values ​​such as money, time, resources, and the intangibles, not ponderable or palpable, but essential to analyze the costs of a project. Although the intangible benefits are difficult to quantify, there is no reason not to take them into account, where all those interested in the software must be involved (Sexton, 2009).

Economic indicators for software development that will be taken into account in the research.

Cost-Benefit Analysis: The technique of cost-benefit analysis has the fundamental objective of providing a measure of the costs incurred in carrying out a project and comparing said cost forecast with the expected benefits of carrying out said project.

When calculating costs, elements such as the following should be considered, among others: (MAP, 2001)

  • Acquisition and maintenance of hardware and software. Communication expenses (lines, telephone, mail, etc.). Installation expenses (wiring, room conditioning, human and material resources, travel expenses, etc.). Cost of system development. Expenses (annual cost) of system maintenance Consulting expenses: If an external consultant is required at any stage of the project. Training expenses: for all types of personnel (developers, operators, implanters, end users, etc.). Expenses of material: Paper, toner, etc. Costs derived from the learning curve of the personnel involved Financial costs, advertising costs, etc.

And for the estimation of benefits, questions such as the following should be considered:

  • Increased productivity: Savings or better use of human resources. Savings in maintenance costs of the current system. Savings in acquisition and maintenance of hardware and software, or reuse of replaced platforms. Increased sales or results, and decrease in costs produced by management improvement (stock rotation, “just in time”, customer relationship management, etc.). Material savings of all kinds: replaced by electronic data provided by the system, such as: paper, mail, etc. Financial benefits Other tangible benefits: Saving of external resources, consulting, training, etc. Intangible benefits: Increase in the quality of the product or service, improvement of the image of the company, improvement in customer service, improvement in exploitation, etc.

Productivity: Productivity is another of the indicators most strongly related to the economic aspects of software manufacturing. There are standards dedicated exclusively to this measure (IEEE, 1992) is also one of the most controversial and imprecise. (Oded & Mounford, 2008)

These economic indicators in accordance with the metrics are the way to go to achieve the expected quality in the software. Chapter 3 shows a study of the importance of recording the real costs and making the appropriate examination in the entities that develop software.

Cost-efficiency this raises that the convenience of the execution of a project is determined by the joint observation of two factors:

  • The cost: involves the implementation of the computer solution, acquisition and commissioning of the hardware / software system and the associated operating costs. Efficiency: is understood as the relationship between final goods and services (results) and the inputs required for it. (effort). Thus, it is a matter of measuring to what extent the expenditure of resources is justified by the results, minimizing costs or optimizing inputs.

1.3.1 Calculation of Costs in Software Development

When the need to use the software increases in any human activity, the greater the complexity and difficulty of implementation that it acquires. Although there are more and more techniques that facilitate the design and development of systems, the new demands of users and new application domains generate new problems. Creating the need to pay more and more attention to the planning, measurement and estimation processes of various software parameters, before beginning with the development of the application.

This need makes software project management a vitally important task, with effort estimation being one of its key points, time and monetary costs, necessary for the completion of these products. Without good estimates of these parameters, unforeseen events and problems begin to arise during development that make it impossible to deliver the final product within the agreed period, with consequent increases in expenses and economic losses. (Alvarez, 2009)

The process of estimating the cost of a software product is made up of a set of techniques and procedures that are used in the organization in order to arrive at a reliable prediction. This is a continuous process, which must be used and consulted throughout the entire life cycle of the project. It is divided into the following steps (Agarwal & Kumar, 2006):

Estimation of size, estimation of cost and effort, estimation of time programming, estimation of the amount of computational resources, absence of risks, inspection and approval, writing of estimation reports, measurement and improvement of the process (Agarwal & Kumar, 2001).

The interaction between the different stages of the software estimation process is shown below.

Software project estimation activities

Illustration 2 Activities for estimating software projects. Source: self made.

These estimates are based on probabilities due to the influence of external factors that are difficult to control. In addition to these probabilities, it is necessary to resort to historical information, which must be easily accessible and available to the organization at any time. It is important to highlight the importance of a good determination of the requirements, a project cannot be successful without a correct and exhaustive specification of the requirements (Larman, 1999).

The amount of effort and time dedicated to the estimation depends on the size of the project, the development team and the objective to be met. The nature of the project and the environment in which it is carried out are determining factors in this task, and greatly affect the estimation method used.

There are two different ways of estimating the budget and time for a software project: using cost models and using similarity-based reasoning. In both options it is necessary to resort to historical information and information from previous projects previously stored in databases. There are four fundamental points on which the estimation is based:

  • The considerations and opinions of the subject matter professionals, based on the experience and maturity of the project managers, who will have to guess and predict the project's completion time or its cost. The participation of experts, whose opinions should not be considered and addressed as those of professionals and project managers, since experts do not belong to the organization and may or may not be familiar with the organization's own practices. Finally, the use of formulas and functions, which implies the existence of quantitative data that represents a good approximation to the estimation. The use of standard time factors, calculated and established from previous projects.

Estimation techniques are a form of problem solving where in most cases the problem to be solved is too complex to be considered as one part. For this reason, it is proposed to decompose the problem, posing it as a set of small problems, which are estimated individually, in each phase of the software development process.

The estimate must take into account each software requirement, which will make up the total system estimate. Various estimation techniques should be analyzed, as well as the use of some of the software metrics, the estimation should be refined as more is known about the project, the final objective is to make an estimate as close as possible to reality. Below are the stages to estimate in the software development process.

Software development process

Image 1 Software development process. Source: self made.

The idea of ​​estimation models is to provide systems and methods to carry out the calculation of costs in the construction of application software, most of the cost of the software is today in the cost of the hours of analysis, design, programming and testing that must be used to obtain it. For this reason, when we talk about cost estimation here, we mainly refer to the human effort that has been necessary, that is, to the hours of work required to build the software, although each stage is of vital importance, even from the beginning. You must have a preliminary idea that is then refined.

It should be noted that during the requirements analysis stage, the primary goal is to identify and document what is really needed, in a way that clearly communicates it to the client and members of the development team (Larman, 1999).

The estimation of costs in software development is only feasible using a set of metrics aimed at knowing or estimating the size, time, resources, people necessary to develop, some of them are described below.

1.3.2 Software Development Metrics

In the field of software engineering, “metrics” and “measures” are often spoken of interchangeably, but nevertheless there are differences between these terms. A measure indicates quantitatively some attribute of process or product (extension, quantity, dimensions, capacity, size, etc.). A metric is defined by the glossary of standards of the IEEE (Institute of Electrical and Electronics Engineers) (IEEE Standard Glossary of Software Engineering Terminology, 1993) as a "quantitative measure of the degree to which a system, component or process has a certain attribute". If only one type of data is collected, such as the number of errors within a component, a measure has been established.

A software metric somehow relates the individual measurements, it could be the number of errors found in each review or test (Pressman, 1998).

Software engineers, from the measurements, develop metrics that provide them with information to control the process or the software project. Herein lies the difference between these terms.

Measurement is very common in the engineering world. Consumption power, weights, physical dimensions, temperatures, voltages, noise signals are measured to name a few aspects. Measurement is far from common in the world of software engineering, being more complex, encountering difficulties when measuring and how measures are going to be evaluated, there are several reasons to measure a product, to indicate the quality of the product, to evaluate the productivity of developers, to evaluate the benefits in terms of quality, derived from the use of new methods and tools of software engineering, to establish a baseline for estimation, to measure the cost of the project, among others.

Measurements of the physical world can be divided into two categories: direct measures and indirect measures (Metrics, estimation and software planning, 2001):

Direct Measurements. In the engineering process are the cost, and the effort applied, the lines of code produced, speed of execution, the memory size and the defects observed in a certain period of time.

Indirect Measures. You will find the functionality, quality, complexity, efficiency, reliability, ease of maintenance, etc.

In this investigation a set of metrics are studied to achieve the calculation of the measurements as accurately as possible shown below.

Software metrics: They are those that are related to software development such as functionality, complexity, efficiency.

Technical metrics: They focus on the characteristics of the software, for example: logical complexity, degree of modularity. It measures the structure of the system, how it is made.

Productivity metrics. They focus on the performance of the software engineering process. In other words, how productive is the software that I am going to design.

Person-oriented metrics. They provide measurements and information about the way people develop computer software and especially the human point of view of the effectiveness of tools and methods. These are the measurements that I am going to make of my personnel that will carry out the system.

Size-oriented metrics. It is to know in what time I will finish the software and how many people I will need. They are direct measures to the software and the process by which it is developed, if a software organization keeps simple records.

These metrics are combined to form the estimation techniques which constitute a working tool. They are necessary to unify size measurement criteria, both to be able to plan and control projects, and to carry out studies and analyzes between projects in favor of process improvement (Park, 1992). The most used techniques are shown below.

1.4 Cost estimation techniques in software development

Various estimation techniques have been developed for software development by setting the scope of the project beforehand, using the software metrics serve as the basis for making estimates and breaking the project down into smaller parts that are estimated individually (Angelis L & Stamelo, 2000).

Due to the growth in the software industry and cost estimating being a complex activity, companies dedicated to offering different cost estimating tools in the market have increased. As of 2005, some of these estimation tools are: COCOMO II, CoCots, CoStar, CostModeler, CostXpert, SoftCost.

While these estimation instruments were developed by different companies and are not identical, they actually tend to provide a core of common functions. The main features of commercial software estimation instruments include these attributes: reliability and quality estimation, value and risk analysis, return on investment, possibility to share data with project management tools, measurement means to gather historical data, cost and time to complete estimates that combine historical data with projected data, support for software process evaluations, statistical analysis of multiple projects.

When planning a project, estimates must be obtained of the human effort required, the chronological duration of the project and the cost. In most cases estimates are made using past experience as the only guide. Having good metrics ensures a correct correlation with the project effort, and facilitates its estimation.

Although it should be noted that “There are no transportable cost models. If you expect someone else to develop a set of formulas that you can use to predict cost in your own installation, you will probably have to wait forever. ” (Marco, 1982)

The objectives of project estimation are to reduce costs and increase service and quality levels. By measuring certain aspects of the software process you can have a high-level view of what will happen during development. Measurements of previous processes allow predictions to be made on current ones. Measurements of process attributes in early stages of development allow predictions to be made in later stages.

Process evaluation leads to decision-making before the start of development, during the development process, during the transition from product to customer, and throughout the maintenance phase.

Cost estimation involves making predictions about the most likely amount of effort, time, and staffing levels required to build a software system. These are carried out throughout the software life cycle.

Preliminary estimates are required to bid or determine the feasibility of a project, they are the most difficult to make and the least accurate.

There are ways of estimating costs, these can be through:

Expert opinion: A developer or manager describes the parameters of the project and experts make estimates based on their experience.

Delphi Technique: It allows to systematize and improve the opinion of the consulted experts.

Analogy: A more formal approach than that of expert opinion. Experts compare the proposed project with one or more previous projects trying to find particular similarities and differences.

Historical Base of projects.

Decomposition techniques: Estimates are made for each component into which the software is decomposed or on low-level tasks in which the tasks are decomposed. Low-level estimates combine to produce an estimate for the entire project. In other words, the total cost of the project is the result of adding the estimates of all the components into which the project has been divided. Here are some of the most widely used techniques in the world.

1.4.1 COCOMO

The COCOMO Model Created by Barry Boehm in 1981. Its name means COnstructiveCOst MOdel (Constructive Cost Model) constitutes a hierarchy of estimation models for the software. The hierarchy is made up of the following models (COCOMO Model definition manual., 1990).

  • COCOMO basic. Calculate the effort and cost of development based on the size of the estimated program in intermediate LOC.COCOMO. Calculate development effort based on program size and a set of cost drivers that include subjective evaluation of the product, hardware, personnel, and project attributes . COCOMO detailed. It incorporates the characteristics of the intermediate version and carries out an evaluation of the impact of the cost drivers in each phase (analysis, development, etc.) of the process.

COCOMO is a tool based on the lines of code which makes it very powerful for estimating costs and not like others that only measure effort based on size. A cost estimating tool is required for a project manager; and this tool may be related to COCOMO since this technique represents one of the most complete empirical models for software estimation (Bumett, 1998).

One of the deficiencies detected in the COCOMO model is that for the analysis of the project cost, they only analyze the developer's salary without taking into account other elements of expenses that affect the costs of the software project.

1.4.2 COCOMO II

COCOMO II is a model that allows estimating the cost, effort and time when planning a new software development activity, and is associated with modern life cycles. It was developed from COCOMO, including updates and new extensions more suited to the requirements of software engineers (Heemstra, 1992).

It is built to meet those needs expressed by software estimators, such as support for project planning, project staff forecasting, replanning, monitoring, contract negotiations, and design evaluation.

The cost factors describe aspects related to the nature of the product, hardware used, personnel involved, and characteristics of the project. The set of scale factors explains the savings and losses produced as a software project increases in size. Using one model or another depends on the level of detail of the project, the fidelity of the estimates required, the definition of the requirements and the details of the architecture (Gause & Weinberg, 1989).

1.4.3 Code Lines and Function Points

The metrics for function points are based on the guidelines provided by the International Function Point User Group (IEPUG, 1994). Function points attempt to quantify the functionality of a software system. The goal is to obtain a number that fully characterizes the system. Estimators are useful as they are based on information that is available in the early stages of the software development life cycle.

Code line data (LDC) and function points (PF) are used in two ways when estimating the software project:

  • Estimation variables, used to calibrate each element of the software. Base metrics, collected from previous projects used together with the estimation variables to develop cost and effort projections.

These techniques are different but have common characteristics. The project planner starts with a restricted statement of the scope of the software and, from that statement, tries to break the software down into small sub-functions that can be estimated individually. Then, estimate the LDC or PF (the estimation variable) for each subfunction. Then apply the basic productivity metrics to the appropriate estimation variable and derive the cost and effort for the subfunction. Combining the subfunction estimates produces the total estimate for the entire project.

They differ in the level of detail that decomposition requires, when LDC is used as the estimation variable, functional decomposition is absolutely essential and often leads to considerable levels of detail. Currently this technique does not reflect the real cost of a project by analyzing its lines of code, there may be a project with few lines of code and the effort, time, human and material resources dedicated to it is greater than another project that was previously developed and have more lines of code.

1.4.4 Delphi Techniques

Created in the 1940s in the USA It began to be used in the field of software from 1981 by Barry Boehm. The steps to follow are:

A coordinator provides each expert with a specification of the proposed project and a form to express their opinion. Experts fill out the form anonymously. They can ask the coordinator questions but not among themselves. The coordinator offers each expert the average value of the opinions collected. A new anonymous estimate is requested indicating the reasons for the possible modifications (Boehm, 1981).

The process of collecting opinions is repeated until a consensus is reached. No group meetings are held at any time.

Broadband Delphi: Refinement of the Delphi technique proposed by Barry Boehm. The steps to follow are:

  1. The coordinator provides each expert with a specification of the proposed project and a form to express their opinion. The coordinator gathers the experts to exchange views on the project. The experts fill out the form anonymously. The coordinator offers each expert the average value of the opinions collected. A new anonymous estimate is requested, without indicating the reasons for the possible modifications. The coordinator calls a meeting for the experts to discuss the reasons for the differences between their estimates. The forms are filled in anonymously and points 4, 5 and 6 are repeated until a consensus is reached.

The main advantage of this technique is that it gathers the expert opinion on the current project based on previous experiences that are difficult to evaluate by other means (special characteristics of the personnel, peculiarities of the project).

The main drawback is found in the subjectivity or inexperience of the people chosen in the consultation.

Chapter Conclusions

This chapter shows the importance of cost analysis for decision making. A study was carried out on the main models for estimating and analyzing the feasibility of software projects, taking into account their advantages and disadvantages. An analysis of the solutions provided by the estimation systems was carried out, demonstrating that there is no complete exact estimation but that they do provide a high level of knowledge for decision making. After carrying out this research process, the use of the agile Scrum methodology was defined, which provides reliability and speed of development, linked to the main metrics used in COCOMO and the economic indicators cost-benefit,Productivity and effort as tools to solve the problem posed.

To select the metrics, the influence that they have for decision-making was taken into account, providing key elements for the analysis of the projects, such as the adequate aptitude of the project manager in relation to the understanding of technology, administrative skills, and personal skills. for communicating. Ability to make decisions, positive relationships with beneficiaries, participation of the project team in the analysis, adequate resources. Assessment of income and costs, administrative and managerial support, commitment of the project members.

The proposed metrics incorporate a new element, quantifying the level of knowledge of the specialists involved in a project, transferring knowledge management to an analysis plane in which value-adding processes determined by the incorporation of new knowledge into the business processes. Managing knowledge is to endow management systems with intelligence to learn based on own and non-organizational experiences. It is in the reuse of know-how that enrichment and the appearance of new knowledge take place.

Identifying the level of knowledge that the people who create the product possess is rooted in a dynamic of continuous improvement based on the management of capacities and intangible resources that permanently enrich the products and services offered by the organization and improve its competitive positioning.

Continuous improvement implies the search for optimum levels of efficiency and at the same time implies increasing quality. It implies advancement and optimization in the sense of reducing inefficiencies and incorporation of previous experiences and reuse of practices that have been successful in other contexts.

A strong relationship is also established between cost-benefit, schedule and quality, defending the synergy that must exist between them. Taking as a premise the words of the Heroic Guerrilla Ernesto Che Guevara when he said "We have to make increasingly detailed cost analyzes that allow us to take advantage of even the last particles of work that is lost from man."

The metrics analyzed by the specialists in the subject were divided into three groups, shown below:

Product metrics: These are measures of the software product during any phase of its development, from requirements to installation such as required reliability, size of the database, complexity of the product.

Staff metrics: Analyst capacity, programmer capacity, staff continuity, application experience, platform experience, language and tool experience, development team cohesion, work environment, organization and composition of the team job.

Project metrics : Use of software tools, multi-site development, timeline required for development, maturity of the process, size of the project, quality of the project.

Process metrics: These are measures of the software development process such as total development time, effort in days / man or month / man of product development, type of methodology used or average level of experience of the programmers. ”

Many of these metrics were associated and others considered of great importance to the entity and were included. The main objective of this selection is that they are adjusted to the projects created, that their analysis is not cumbersome, that they facilitate the work and help to calculate the cost of the project, allowing the team to continuously improve it. The proposed metrics must be objective, simple, precisely definable so that they can be evaluated, easily obtainable (at a reasonable cost), valid, adjusted to what you want to measure exactly and not anything else, robust, they must be relatively insensitive to minor changes significant in the process or in the product.

The designed metrics contain key elements that ensure product quality, the level of customer satisfaction, process value represented in the degree to which a software product has value for its stakeholders, endowing the final product with quality, distinguishing it in the competitive environment.

The selected ones are explained below, these have a value range from 0 to 100 in order to make them measurable, quantifiable to guarantee a more effective and objective calculation.

Selected metrics:

  1. Development team cohesion: This factor takes into account the difficulties of synchronization between project participants: users, clients, developers, maintenance managers and support areas. These difficulties can arise in reconciling objectives, lack of experience and familiarity with teamwork. Achieving high cohesion in the development team with its clients guarantees that the requirements determined in the first stage of the project guide it to the end, without sudden changes, guaranteeing the quality of the product.

This metric is calculated by weighing the following characteristics:

characteristics Low (0-39) Medium (40-79) High (80-100)
Compatibility, ability and willingness to reconcile goals among team members Little Basic Considerable
Experience of teamwork and response to difficulties Little Basic Considerable
Shared vision of common goals and objectives Little Basic Considerable

Table 1 Team cohesion metric.

  1. Experience with the technology used: this factor has a great influence on team productivity, recognizing the importance of knowing new and powerful design tools, database managers, graphic interfaces, networks, framework, etc. Having a development group with considerable experience ensures that the product is ready in the estimated time, the project manager feels safe when working with specialists who master the technologies they work with, this adds quality to the work accomplished.
characteristics Low (0-39) Medium (40-79) High (80-100)
Experience with the technology used Little Basic Considerable

Table 2 Metric experience with the technology used.

  1. Complexity of the data model: the data model allows us to describe the elements of reality that intervene in a given problem and how those elements are related to each other. Having a complex data model forces developers to use all their intellect to reason, design, model and program the solution, responding to the initial requirements.
Complexity level Low (0-39) Medium (40-79) High (80-100)
Data model complexity 1 to 40 classes 41 to 60 classes More than 60

lessons

Table 3 Complexity metrics of the data model.

  1. Administrative facilities: this includes the transportation necessary to carry out commercial, economic or actual project management, facilities to obtain work tools such as storage devices, hard drives, paper, printers, telephone, laptop, internet accounts, among others. Support areas play a fundamental role in obtaining a finished product on time, so their work is necessary to maintain both communication with the client and work within the team.
characteristics Low (0-39) Medium (40-79) High (80-100)
Willingness, ability and management to meet objectives Little Basic Considerable
Ease of obtaining work tools Little Basic Considerable
Interpenetration of the administration and the work team. Little Basic Considerable

Table 4 Administrative facilities metric.

  1. Experience with the programming language: Having a command of the programming language allows you to express processes that can be carried out by computers. Having a team with full command of the programming language is a considerable advantage since it allows less development time, that the requirements are programmed correctly, that there are no errors, it adds shine to the code and security to the team. The training is less because it is considered that the proven knowledge is the ideal to carry out the task.
characteristics Low (0-39) Medium (40-79) High (80-100)
Experience with the programming language Little Half Considerable

Table 5 Experience metrics with the programming language.

  1. Continuity of staff: this factor measures the degree of annual permanence of the staff affected by a software project, it is important that the team is stable in its members because once the project begins, its members are those who have full control of the business. When there is fluctuation with them, the quality of the final product is affected. Having a leader is essential to achieve the stated objectives. The possible values ​​are the following:
characteristics Low (0-39) Medium (40-79) High (80-100)
Continuity of staff Little Basic Considerable

Table 6 Personnel continuity metrics.

  1. Required development schedule: This factor measures the restrictions in the time limits imposed on the work team. The values ​​are defined given the extension or acceleration of the established terms. Accelerating deadlines produces more effort in the later stages of development, in which more issues accumulate to be determined due to the short time to solve them. A schedule that maintains what is agreed in the contract contributes quality to the created project. To this factor is added that the disposition by the client must be as agreed in the contract, this contributes to fulfill the requirements. The effective planning of a software project depends on the detailed projection of its progress, anticipating problems that may arise and preparing tentative solutions to them.The project manager together with the specialists are responsible for the design of the project from the definition of requirements to the delivery of the finished system.
characteristics Low (0-39) Medium (40-79) High (80-100)
Development schedule required Little Basic Considerable

Table 7 Metric schedule of development required.

This analysis indicates the complexity of the project, the continuous table shows the values. Once the complexity of the project is available, we continue to calculate the time estimated by the hourly rate, the value obtained is then applied to the percentage that represents the sum of the metrics that indicate the complexity of the project. This sum can be up to 70% considering that 7 metrics were selected, giving added value to the considerable product.

characteristics Low (0-29) Medium (30-59) High (60-70)
Project complexity Low Half Considerable

Table 8 Complexity of the project.

Calculating the complexity of the project using metrics will be based on its calculation method on estimation parameters that have the following characteristics: objective, easily identifiable, suitable for numerical assessment, valid, easily obtainable with the information available at the pre-sale stage, ready to be refined as more information is obtained, compatible with the elements of the methodology used.

Example:

A project which consists of making an application to calculate the complexity of the project has an estimated time of 40 man-hours with a rate of $ 11.00 and an average complexity of 48.

Calculations:

I calculate man hours

40 x 11 = 44

Low project complexity

48% of 44 = 21.12

Project Cost:

44 + 21.12 = 65.12

The cost of the project would be $ 65.12 per person, being the complexity low, a price higher than the one initially estimated by the method used today in Desoft Camagüey can be observed.

Chapter Conclusions

The designed metrics will allow adding value to the product created and an adequate sales price that it does not have today, offering the necessary considerations for decision-making.

In this way, the conditions are created to develop an evaluation of the complexity of the product to be developed. The next chapter is devoted to the application of this procedure.

General Conclusions

  • The calculation of the costs in the software development constitutes a necessary tool to guarantee the success in the management of the computer product, providing quality to the service from its planning to the final delivery. The proposed metrics institute a novel instrument to calculate the sale price of the software product, starting from costs that measure, the intangible, the knowledge, the communication of the team of specialists, the work environment, adding value to the final product.

recommendations

  • It is recommended to implement the proposed metrics to improve the calculation of the cost in the development activity. Continue the study of the topic, to deepen new techniques of software estimation. Apply the metrics from the project planning and maintain the process of continuous improvement during all stages of software development.

Bibliography

  1. Amat, JM (2001). Management control: a management perspective. Spain: Gestión 2000.Anthony, RN (1990). Management control: framework, environment and process. Mexico: Ediciones Deusto. Avram, DO, & Kühne, S. (2008). Implementing Responsible Business Behavior from a Strategic Management Perspective: Developing a Framework for Austrian SMEs. Journal of Business Ethics, 82 (2), 463.Bass, L., Clements, P., & Kazman, R. (1997). Software Architecture in Practice. Boston: Addison-Wesley.Beck, K. (2000). Extreme Programming Explained: Embrace Change. Boston: Addison-Wesley.Beck, K. (2004). Extreme Programming explained: Embrace change. Reading, Mass. Boston: Addison-Wesley.Beck, K. (February 2001, 2001). The Agile Manifesto. Retrieved on June 25, 2011, from www.agilemani-festo.org Biffl, S. Freimut, B. & Laitenberger, O.(2001). Investigating the Cost-Effectiveness of Reinspections in Software Development. Proceedings of the 23rd International Conference on Software Engineering (ICSE'01). IEEE Computer Society, USA Biffl, S., & Gutjahr, W. (2001). Influence of Team Size and Defect Detection Technique on Inspection Effectiveness. Proceedings of the Seventh International Software Metrics Symposium (METRICS'01). IEEE Computer Society, USA Boehm, BW (1981). Software Engineering Economics. NY: Prentice Hall.Booch, G., Jacobsen, I., & Rumbaugh, J. (1999). The UML Modeling Language User Guide. NY: Addison-Wesley.Booch, G., Jacobsen, I., and Rumbaugh, J. (2000). The unified process of software development. NY: Prentice Hall. Camacho, IA (2012). Proposal of cost sheet for training courses at the Desoft company. Degree work,Bachelor of Accounting, University of Havana, Havana, Cuba, Canós, J., Penadés, MC, and Letelier, P. (2003). Agile Methodologies in Software Development. Presented at the VIII Conference on Software Engineering and Databases.. Retrieved on July 16, 2011, from http://201.249.238.203/portalopei/images/descargas/medesoft.pdf.Center for Technology in Government. (1998). A survey of System Developments Process Models. Retrieved on March 5, 2011, from http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysde v.pdf.Chang, A. (2013). Cost Manual of the National Software Company Desoft. Camaguey, Cuba:. Retrieved on August 14, 2014, from http: //cmw.desoft.cu.Colín, JG (2001). Cost accounting. Madrid, Spain: Mc Graw-Hill. Cueto Ible, E., and Sánchez Batista, DA (2000).New cost system for logistics operator. Unpublished Master's Thesis, Universidad de Camagüey, Camagüey, Cuba Fagan, ME (1976) Design and Code Inspections to Reduce Errors in Program Development. IBM Systems Journal. 15, (3), 182-211. García Sánchez, IM (2003). Strategic direction, management control and external control: towards the integration of processes. Spain. Autonomous University of Barcelona: Gestión 2000.Gayle, L. (1999). Accounting and cost management (Sixth ed.). Mexico City, Mexico: Mc Graw-Hill.Gilb, T., & Graham, D. (1993). Software Inspections. Boston: Addison-Wesley, González-Solán, O., and Martín-Castilla, JI (2010). Definition of control indicators for the Strategic Science and Technology unit of the University of Camagüey, Cuba. Management challenges, 4 (2), 79. González, CD(2001). Cost accounting. Madrid, Spain: Mc Graw-Hill.Gordon, G., & James I. (1999). Handbook of Software Quality Assurance.: Prentice Hall, Guerrero, MP (2011). Sales Management and Control System at Desoft Camagüey. Unpublished Master's Thesis, University of Camagüey, Camagüey, Cuba Hernández Hidalgo, D., Pérez Avila, JE, and Arias Hernández, JA (2005). Management control and the managerial role in the contemporary business system. Decision (8), 81-90. Highsmith, J. (2002). History: Agile Manifesto. Retrieved on January 4, 2011, from http://agilemanifesto.org/history.html.Jones, C. (1996). Applied Software Measurement. Boston: Mc Graw-Hill. Larman, C. (1999). UML and Patterns. NY: Prentice Hall, Lazo, R., and González, R. (2013). General development model based on software product lines.Retrieved on November 3, 2013, from http: //cmw.desoft.cu.León, AP (2014). Desoft Camagüey Process Manual,. Camaguey, Cuba:. Retrieved on October 18, 2014, from http: //cmw.desoft.cu.Lorino, P. (1993). Strategic management control: activity-based management. Barcelona, ​​Spain.: Marcombo, DLM lorenz, JK (1994). Object-oriented Software Metrics. Boston: Prentice Hall, Ortega, AD (2001). Cost accounting. Mexico: Mc Graw-Hill.Pressman, RS (1998). Software Engineering. A practical approach. NY: Mc Graw-Hill.Ralp Polimeni, FF (1989). Cost accounting. Concepts and applications for managerial decision making. NY: Mc Graw-Hill.RRHH, DN (2014). Template P4 Desoft Camagüey. Camaguey, Cuba. Retrieved on February 21, 2014, from http: //cmw.desoft.cu.Rumiantsev, A. (1975).Categories and laws of political economy communist formation. Havana, Cuba: Social Sciences.Sáez, A. (1993). Cost accounting and management accounting. Mexico City, Mexico: Mc Graw-Hill.Sánchez, A. Riesco, D. Montejano, G. and Peralta, M. (2005). Quality metrics and a cost model. benefit adjusted to a real case of the software industry Argentina: Department of Informatics National University of San Luis. Retrieved on July 16, 2011, from http://www.costossoftware.com.benefit adjusted to a real case of the software industry Argentina: Department of Informatics National University of San Luis. Retrieved on July 16, 2011, from http://www.costossoftware.com.benefit adjusted to a real case of the software industry Argentina: Department of Informatics National University of San Luis. Retrieved on July 16, 2011, from

The determination of this cost metric involves the evaluation and averaging of two factors, the arrangement of the work team and communication.

Download the original file

Software development cost estimate