26 research outputs found

    Maturity Models for Managing People in Software Development Teams: A Systematic Literature Review

    Get PDF
    Human factors are fundamental to software development, hence the need to understand people-oriented maturity models in development teams. This article aims to identify the maturity models for people management in software development teams cited in the literature, in order to identify evidence about their use, benefits and limitations, and the human aspects involved. A systematic literature review (SLR) was carried out, where automatic searches were done in four search engines, congresses in the area of ​​human factors within software engineering, in addition to a manual search. Evidence indicates that there are numerous models aimed at developing people in development teams, but few are applied. Models based on observation and informal discussion were found, as well as non-validated models, indicating the scarcity of models applicable to people in software engineering. However, complete but complex models were also found, indicating that a more transparent, dynamic and simple process is needed for people's development. In the observed human factors, emphasis is placed on communication, collaboration, knowledge, learning, self-management, motivation and skills in general. Keywords: Maturity models; Human Factors; Software Development Teams; Teams; People DOI: 10.7176/RHSS/12-14-02 Publication date:July 31st 202

    Strategic project management approach to the study of large-scale software development using system dynamics

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, Engineering Systems Division, 2012.Cataloged from PDF version of thesis.Includes bibliographical references (p. 122-123).Large-scale software engineering organizations have traditionally used plan-driven, heavyweight, waterfall-style approaches for the planning, execution, and monitoring of software development efforts. This approach often results in relatively long development schedules that are susceptible to failure, especially in a rapidly changing environment: Schedule pressure, defects and requirements changes, can drive endless redesign, delay the project, and incur extra cost. Many in the commercial software world have dealt with these pressures by adopting Agile Software Development, an approach designed to be flexible and responsive to high-change environments. Software development teams that are said to employ "Agile development" in effect practice a variety of "agile methods". These practices are advertised to reduce coordination costs, to focus teams, and to produce stable product iterations that can be released incrementally. Agile software development has become a de-facto approach to the engineering of software systems in the commercial world, and is now entering the aerospace and defense sectors. The APD model developed in this research aids in the understanding of the impact that alternative combinations of Agile practices, combined with different management policies, have on project performance, compared to a waterfall approach. This research culminates in a formulation of insights and recommendations for how to integrate Agile practices into a large-scale software engineering organization.by Firas Glaiel.S.M

    DEVELOPMENT OF A QUALITY MANAGEMENT ASSESSMENT TOOL TO EVALUATE SOFTWARE USING SOFTWARE QUALITY MANAGEMENT BEST PRACTICES

    Get PDF
    Organizations are constantly in search of competitive advantages in today’s complex global marketplace through improvement of quality, better affordability, and quicker delivery of products and services. This is significantly true for software as a product and service. With other things being equal, the quality of software will impact consumers, organizations, and nations. The quality and efficiency of the process utilized to create and deploy software can result in cost and schedule overruns, cancelled projects, loss of revenue, loss of market share, and loss of consumer confidence. Hence, it behooves us to constantly explore quality management strategies to deliver high quality software quickly at an affordable price. This research identifies software quality management best practices derived from scholarly literature using bibliometric techniques in conjunction with literature review, synthesizes these best practices into an assessment tool for industrial practitioners, refines the assessment tool based on academic expert review, further refines the assessment tool based on a pilot test with industry experts, and undertakes industry expert validation. Key elements of this software quality assessment tool include issues dealing with people, organizational environment, process, and technology best practices. Additionally, weights were assigned to issues of people, organizational environment, process, and technology best practices based on their relative importance, to calculate an overall weighted score for organizations to evaluate where they stand with respect to their peers in pursuing the business of producing quality software. This research study indicates that people best practices carry 40% of overall weight, organizational best v practices carry 30% of overall weight, process best practices carry 15% of overall weight, and technology best practices carry 15% of overall weight. The assessment tool that is developed will be valuable to organizations that seek to take advantage of rapid innovations in pursuing higher software quality. These organizations can use the assessment tool for implementing best practices based on the latest cutting edge management strategies that can lead to improved software quality and other competitive advantages in the global marketplace. This research contributed to the current academic literature in software quality by presenting a quality assessment tool based on software quality management best practices, contributed to the body of knowledge on software quality management, and expanded the knowledgebase on quality management practices. This research also contributed to current professional practice by incorporating software quality management best practices into a quality management assessment tool to evaluate software

    A Structured Systemic Framework for Software Development

    Get PDF
    The purpose of this research was to develop and apply a systems-based framework for the analysis of software development project performance. Software development project performance is measured at the project level; that is, cost, schedule, and product quality that affect the overall project. To date, most performance improvement efforts have been focused on individual processes within the overall software development system. Making improvements to sub-elements, processes, or sub-systems without regard for the overall project is a classic misbehavior entered into by practitioners who fail to use a holistic, systemic approach. Attempts to improve sub-system behavior are at odds with The Principle of Sub-optimization. (van Gigch, 1974) The traditional method of predicting software development project performance, in terms of sub-system performance is too restrictive. A new holistic, systemic view based on systems principles offers a more robust way to look at performance. This research addressed this gap in the systems and software body of knowledge by developing a generalizable and transportable framework for software project performance that is based on systems principles. A rigorous mixed-method research methodology, employing both inductive and case study methods, was used to develop and validate the framework. Two research questions were identified as integral to increasing the understanding of a systems-based framework. (1) How does systems theory apply to the analysis of software development project performance? (2) What results from the application of a systems-based analysis framework for analyzing performance on a software development project? Using Discoverers\u27 Induction (Whewell, 1858), a systems-based framework for the analysis of software development project performance was constructed, adding to the systems and software body of knowledge and substantiating a comprehensive and unambiguous theoretical construct for software development. Then, the framework was applied to two completed software development projects to support validation. The structured systemic framework shows significant promise for contribution to software practitioners by indicating future software development project performance. The research also made a contribution in the area of research methodologies by resurrecting William Whewell\u27s Discoverers\u27 Induction (1858) and furthering the use of the case study method in the engineering management and systems engineering domain, areas where their application has been very limited

    An empirical investigation of knowledge management support for software projects.

    Get PDF
    Projects are unique by definition. Due to this novelty software development projects, in common with all other projects, require knowledge for effective implementation. Most knowledge management frameworks reported in the literature address the organisational need to manage knowledge. The existing frameworks typically discuss the dichotomy between tacit and explicit knowledge, and lay an emphasis on managing the latter. However, software development projects rely upon the experience, creativity and intuition of individual team members to address unstructured situations typified by inherent uncertainty, ambiguity and change. Therefore software projects require the facilitation and interaction of tacit knowledge along with managing and leveraging explicit knowledge.This research examines how tacit and explicit knowledge generated while implementing a software development project can be leveraged and effectively reused in future software projects. In order to address the need to provide knowledge management support to software projects an extended case study was conducted at one of the world's largest software project-based organisations. The aim of the research was to identify and analyse the flow of knowledge, and the capabilities required to support this flow. The research design utilised a combination of open-ended interviews, survey questionnaires, observations of team functioning, work methods and development practices, and a detailed examination of the knowledge management infrastructure and process capabilities. The extensive and exceptional access negotiated for this project enabled the research to focus on a single organisation and resulted in 100 hours of interviews and 340 hours of observations from 98 ongoing projects. Established case study protocols were used for data collection. The data analysis focused on determining categories from the different streams of activities and assigning attributes using Nudist software for data reduction and displaying group-nodes, and conclusion drawing. This enabled the research to establish the 'processual' nature of knowledge, and identify the capabilities required to mobilise and utilise knowledge assets. The research critically analysed the three parallel themes of knowledge management, project management and software engineering, and the outcome of the conceptual synthesis and validation is a dynamic model which represents the knowledge processes that facilitate the flow of tacit and explicit knowledge between software projects. The model depicts the relationships and interactions between the functional areas of the development effort, and presents a continuous and long-term view of supporting the implementation of software projects and developing knowledge practices. For software project-based organisations this research has implications for their ability to manage context, provide feedback and facilitate interaction, and thus build upon their existing knowledge resources and capabilities. The research provides such organisations with a perspective to achieve excellence not only through optimisation of software process improvement, but also through learning, and, the creation and sharing of tacit and explicit knowledge as facilitated by the proposed model

    Rethinking Productivity in Software Engineering

    Get PDF
    Get the most out of this foundational reference and improve the productivity of your software teams. This open access book collects the wisdom of the 2017 "Dagstuhl" seminar on productivity in software engineering, a meeting of community leaders, who came together with the goal of rethinking traditional definitions and measures of productivity. The results of their work, Rethinking Productivity in Software Engineering, includes chapters covering definitions and core concepts related to productivity, guidelines for measuring productivity in specific contexts, best practices and pitfalls, and theories and open questions on productivity. You'll benefit from the many short chapters, each offering a focused discussion on one aspect of productivity in software engineering. Readers in many fields and industries will benefit from their collected work. Developers wanting to improve their personal productivity, will learn effective strategies for overcoming common issues that interfere with progress. Organizations thinking about building internal programs for measuring productivity of programmers and teams will learn best practices from industry and researchers in measuring productivity. And researchers can leverage the conceptual frameworks and rich body of literature in the book to effectively pursue new research directions. What You'll Learn Review the definitions and dimensions of software productivity See how time management is having the opposite of the intended effect Develop valuable dashboards Understand the impact of sensors on productivity Avoid software development waste Work with human-centered methods to measure productivity Look at the intersection of neuroscience and productivity Manage interruptions and context-switching Who Book Is For Industry developers and those responsible for seminar-style courses that include a segment on software developer productivity. Chapters are written for a generalist audience, without excessive use of technical terminology. ; Collects the wisdom of software engineering thought leaders in a form digestible for any developer Shares hard-won best practices and pitfalls to avoid An up to date look at current practices in software engineering productivit

    Um estudo exploratório a partir de um framework para seleção de práticas ágeis

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Ciência da ComputaçãoO principal objetivo dos métodos ágeis existentes é promover o desenvolvimento eficiente de software através de práticas que priorizam a comunicação com o cliente e entregas frequentes. Cada método ágil apresenta um conjunto próprio de práticas. Com esta diversidade de práticas torna-se interessante a construção de novos processos ágeis que contemplem apenas as práticas mais adequadas a partir destes métodos. O problema, entretanto, é que a combinação de práticas de diferentes métodos ágeis não garante, necessariamente, que o novo processo definido seja ágil. Este trabalho avalia a agilidade do conjunto de práticas de um framework de práticas ágeis e busca identificar quais práticas apresentam maior harmonia quando usadas no mesmo processo. A agilidade das práticas é avaliada através dos dados de uma grande pesquisa de opinião online e a harmonia entre elas é identificada através da técnica de análise de agrupamentos. Os melhores resultados foram apresentados pelas práticas de Integração contínua, Desenvolvimento lado a lado e Testes de aceitação. A análise de agrupamentos, por sua vez, formou quatro grupos de práticas: o primeiro formado por Projeto da arquitetura do sistema e Lista de requisitos; o segundo por Desenvolvimento coletivo de código, Integração contínua, Refatoração e Testes de aceitação; o terceiro por Projeto da iteração e Modelagem geral; e o quarto por Desenvolvimento lado a lado e Reuniões diárias.The main objective of agile methods is to promote efficient software development through practices that prioritize communication with the client and frequent deliveries. Each agile method presents its unique set of practices. This diversity of practices may lead to the definition of new agile processes that include only the more appropriate practices from these methods. The problem, however, is that combining practices from different methods does not guarantee that the resulting process can be considered agile. This work assesses the agility of a set of practices of a framework for selecting agile practices and seeks to identify which practices provide more harmony when used in the same process. The agility of the practices is evaluated using data from a large online survey and the harmony between them is identified by the technique of cluster analysis. The best results were presented by the practices of Continuous integration, Side by side development and Acceptance tests. The cluster analysis resulted in four practice groups: the first with System architectural design and Requirements list; the second with Collective code ownership, Continuous integration, Refactoring and Acceptance tests; the third with Iteration design and General modeling; and the fourth with Side by side development and Daily meetings
    corecore