Medidas de productividad en los proyectos de desarrollo de software: una aproximación por puestos de trabajo

e-Archivo Repository

Show simple item record

dc.contributor.advisor García Crespo, Ángel
dc.contributor.advisor Colomo Palacios, Ricardo
dc.contributor.author Hernández López, Adrián
dc.date.accessioned 2014-09-23T12:06:52Z
dc.date.available 2014-09-23T12:06:52Z
dc.date.issued 2014-01
dc.date.submitted 2014-02-28
dc.identifier.uri http://hdl.handle.net/10016/19367
dc.description.abstract La productividad es una medida, principalmente económica, creada a finales del siglo XVIII. Desde entonces, numerosas modificaciones se han realizado sobre la definición inicial y se han incorporando a diversas áreas de conocimiento. Dentro de la Ingeniería del Software (IS), la productividad comenzó a ser objeto de estudio a finales de los años 70, casi de forma paralela a la concepción de la misma y al inicio del estudio de conceptos relacionados, tales como la estimación de esfuerzo. La medición de la productividad en IS ha sido ampliamente analizada a nivel de proyecto y organización, sin embargo a nivel de puesto de trabajo no ha sido tan investigada. En estos escasos estudios, las medidas utilizadas suelen ser las mismas medidas que las empleadas en niveles superiores de medición. En concreto, las medidas empleadas suelen ser ratios entre una medida de tamaño de producto (p. ej., líneas de código o puntos función) y una medida de esfuerzo o tiempo (p. ej., horas-hombre u horas). Este tipo de medidas son muy específicas y no reflejan la realidad del trabajo desempeñado en todo el proceso de desarrollo, ya que no tienen en cuenta las características inherentes a cada puesto de trabajo. Así pues, la eficacia de estas medidas, en este nivel de medición, parece estar en entredicho y la realización de estudios que aporten nuevas medidas de productividad en IS a nivel de puesto de trabajo cobra sentido. En la presente tesis doctoral se ha analizado la situación actual de la medición de la productividad en IS a nivel de puesto de trabajo con el objetivo de crear nuevas medidas. Para conseguir este objetivo se ha realizado un estudio del estado de la cuestión utilizando una metodología clásica de revisión de referencias junto con una revisión sistemática de la literatura. Una vez analizado el estado de la cuestión se ha planteado un conjunto de hipótesis relacionadas con la construcción de nuevas medidas de productividad: Hipótesis 1. En los puestos de trabajo involucrados en la ejecución de proyectos de desarrollo de software se emplean otras entradas, además del tiempo y el esfuerzo. Hipótesis 2. Las entradas utilizadas son distintas para cada puesto de trabajo involucrado en la ejecución de proyectos de desarrollo de software. Hipótesis 3. En los puestos de trabajo involucrados en la ejecución de proyectos de desarrollo de software se producen otras salidas, además de líneas de código y funcionalidad. Hipótesis 4. Las salidas producidas son distintas para cada puesto de trabajo involucrado en la ejecución de proyectos de desarrollo de software. Hipótesis 5. Las medidas de productividad más utilizadas a nivel de puesto de trabajo en los proyectos de desarrollo de software tienen una eficacia limitada para medir la productividad real de los trabajadores. Hipótesis 6. Es posible medir de forma más eficaz la productividad de los puestos de trabajo en los proyectos de desarrollo de software con nuevas medidas que combinen varios elementos: entradas, salidas y factores. Tras el análisis del estado de la cuestión, se ha realizado una fase de investigación cualitativa mediante el empleo de entrevistas a trabajadores de IS y un posterior análisis de contenido, con el fin de obtener información suficiente para: (1) contrastar las cuatro primeras hipótesis con información cualitativa, y (2) construir el medio de recogida de información para la siguiente fase de la investigación. Con respecto al primer objetivo, ha sido posible contrastar dos hipótesis (H1 y H3). En la segunda fase, mediante una metodología cuantitativa, se han contrastado las cuatro primeras hipótesis planteadas. Para la recogida de información se ha utilizado un formulario construido a partir de los resultados de la fase cualitativa. Los resultados de esta fase indican que en los puestos de trabajo analizados (programador, analista, consultor, y jefe de proyecto): se utilizan otros recursos además del tiempo, se producen otras salidas además del código fuente y la funcionalidad entregada al cliente. Además, se han encontrado diferencias en el grado de uso de las entradas y en la producción de las salidas, por lo que el uso de una misma medida de productividad para todos los puestos bajo estudio es, en principio, ilógico. Para contrastar las dos, y últimas, hipótesis se han construido nuevas medidas de productividad, teniendo en cuenta los resultados previos. En concreto, se ha utilizado Data Envelopment Analysis (DEA) como metodología personalizable para medir la productividad; y se han realizado cuatro casos de estudio empleando dicha metodología. Los resultados tras los casos de estudio indican que mediante DEA es posible medir la productividad de los puestos de trabajo vinculados con los proyectos de desarrollo y mantenimiento de software de forma más eficaz que con las medidas más utilizadas. Además, esta metodología permite conocer los puntos de mejora para que los trabajadores menos productivos aumenten su productividad, lo que supone una gran ventaja frente a otras medidas de productividad si el objetivo de medir, como es lógico suponer, es mejorar la productividad, y no simplemente evaluarla. Así pues, se contrastan las dos últimas hipótesis y se insta, entre otras futuras líneas de investigación, a continuar con nuevos estudios que comparen el uso de DEA con otras medidas de productividad. Finalmente, se concluye que la medición de la productividad en los puestos de trabajo vinculados con los proyectos de desarrollo y mantenimiento de software continua siendo un reto. Para reducir la dificultad de éste, la presente tesis doctoral arroja luz aportando un marco de trabajo para analizar y plantear nuevas medidas de productividad, tanto en estos puestos de trabajo como en otros. ------------------------------
dc.description.abstract Productivity is mainly an economic measure, created in the late eighteenth century. Since then, many changes have been made on its initial definition and have been incorporated into various areas of knowledge. Within Software Engineering (SE), productivity began to be studied in the late '70s. These efforts ran parallel to SE developments, such as effort estimation. Measuring productivity in SE has been extensively analyzed at the project and organization level; however job level has not been investigated with the same depth. In these few studies, the measures used are often the same ones than those used in higher levels of measurement. Specifically, the measures employed are usually ratios between a measure of product size (e.g., lines of code or function points) and a measure of effort or time (e.g., man-hours or hours). Such measures do not reflect the reality of the work performed throughout the development process because they do not take into account the inherent characteristics of each job. Thus, the effectiveness of these measures, in this measurement level, seems to be in question and studies that provide new measures of productivity at job level make sense. In this thesis we have analyzed the current state of productivity measurement at job level within SE with the goal of creating new measures. In order to achieve this objective a study of the state of the art has been carried out with a classical methodology along with a systematic review of the literature. After analyzing the state of the art, a number of hypotheses related to the construction of new productivity measures have been stated: Hypothesis 1. In the jobs involved in the implementation of software development projects other inputs are used in addition to time and effort. Hypothesis 2. The inputs used are different for every job involved in software development projects. Hypothesis 3. In the jobs involved in the implementation of software development projects other outputs are produced in addition to source code lines and functionality. Hypothesis 4. The outputs produced are different for every job involved in software development projects. Hypothesis 5. The most used productivity measures at job level in software development projects have limited effectiveness for measuring real productivity of workers. Hypothesis 6. It is possible to measure more effectively the productivity of jobs in software development projects with new measures that combine several elements: inputs, outputs and factors. After analyzing the state of the art, a qualitative phase has been performed using interviews with SE workers and a subsequent content analysis of them in order to obtain pertinent information: (1) to test the first four hypotheses with qualitative information, and (2) to build the information gathering instrument for the next phase of research. Regarding the first objective, it has been possible to test two hypotheses (H1 and H3). In the second phase, using a quantitative method, the first four hypotheses have been contrasted and accepted. For the information gathering a form constructed from the results of the qualitative phase has been used. The results of this phase indicate that the analyzed job positions (programmer, analyst, consultant, and project manager): use other resources in addition to time, and deliver other outputs in addition to source code and functionality delivered to the client. Also some differences in the degree of use of inputs and production of outputs have been found. Therefore, the use of the same measure of productivity for all positions under study is, in principle, illogical. To contrast the last two hypotheses new productivity measures have been built taking into account the previous results. Specifically, a customizable methodology for measuring productivity such as Data Envelopment Analysis (DEA) was used in four case studies. The results after these studies indicate that using DEA is a mean to measure the productivity of job level for job positions related to the development and maintenance of software projects in a more effectively way. Furthermore, this methodology allows knowing the points for improvement for the least productive workers in order to increase their productivity. This knowledge is a great advantage over other productivity measures if the goal of measuring, as is logical to assume, is to improve productivity, not simply to evaluate it. So the last two hypotheses has been supported. Consequently we call, among other future research, to continue with further studies comparing the use of DEA with other measures of productivity. Finally, it is concluded that the measurement of productivity in job positions related with software development and maintenance projects remains a challenge. To reduce this difficulty, this thesis sheds some light on the topic by providing a framework to analyze and propose new measures of productivity for SE job roles.
dc.format.mimetype application/pdf
dc.language.iso spa
dc.rights Atribución-NoComercial-SinDerivadas 3.0 España
dc.rights.uri http://creativecommons.org/licenses/by-nc-nd/3.0/es/
dc.subject.other Desarrollo de software
dc.subject.other Productividad
dc.title Medidas de productividad en los proyectos de desarrollo de software: una aproximación por puestos de trabajo
dc.type doctoralThesis
dc.type.review PeerReviewed
dc.subject.eciencia Informática
dc.rights.accessRights openAccess
dc.description.responsability Presidente: María Belén Ruiz Mezcua; Vocal: Rafael Valencia García; Secretario: Edmundo Tovar Caro
dc.contributor.departamento Universidad Carlos III de Madrid. Departamento de Informática
 Find Full text

Files in this item

*Click on file's image for preview. (Embargoed files's preview is not supported)


The following license files are associated with this item:

This item appears in the following Collection(s)

Show simple item record