Building Agile Documentation with the Intentional Generative Pattern Mechanism (IGPM), in an Oral Examination Held on February 19, 2010

Total Page:16

File Type:pdf, Size:1020Kb

Building Agile Documentation with the Intentional Generative Pattern Mechanism (IGPM), in an Oral Examination Held on February 19, 2010 BUILDING AGILE DOCUMENTATION WITH THE INTENTIONAL GENERATIVE PATTERN MECHANISM (IGPM) A Thesis Submitted to the Faculty of Graduate Studies and Research In Partial Fulfilment of the Requirements for the Degree of Doctor of Philosophy in Electronic Systems Engineering University of Regina by Nawapunth Manusitthipol Regina, Saskatchewan March, 2010 Copyright 2010: N. Manusitthipol Library and Archives Bibliotheque et Canada Archives Canada Published Heritage Direction du 1*1 Branch Patrimoine de I'edition 395 Wellington Street 395, rue Wellington Ottawa ON K1A 0N4 Ottawa ON K1A 0N4 Canada Canada NOTICE: AVIS: The author has granted a non­ L'auteur a accord exclusive license allowing Library and permettant a la B Archives Canada to reproduce, Canada de repro* publish, archive, preserve, conserve, sauvegarder, con communicate to the public by partelecommunic telecommunication or on the Internet, distribuer et vend loan, distrbute and sell theses monde, a des fins worldwide, for commercial or non­ support microforn commercial purposes, in microform, autres formats. paper, electronic and/or any other formats. The author retains copyright L'auteur conserve ownership and moral rights in this et des droits mor; thesis. Neither the thesis nor la these ni des e> substantial extracts from it may be ne doivent etre irr printed or otherwise reproduced reproduits sans s without the author's permission. UNIVERSITY OF REGINA FACULTY OF GRADUATE STUDIES AND RESEARCH SUPERVISORY AND EXAMINING COMMITTEE Nawapunth Manusitthipol, candidate for the degree of Doctor of Philosophy in Electronic Systems Engineering, has presented a thesis titled, Building Agile Documentation With the Intentional Generative Pattern Mechanism (IGPM), in an oral examination held on February 19, 2010. The following committee members have found the thesis acceptable in form and content, and that the candidate demonstrated satisfactory knowledge of the subject material. External Examiner: Dr. Pierre Bourque, £cole de technologie sup6rieure Supervisor: Dr. Luigi Benedicenti, Software Systems Engineering Committee Member: Dr. Cory Butz, Department of Computer Science Committee Member: Dr. Raman Paranjape, Electronic Systems Engineering Committee Member: Professor Kenneth Runtz, Electronic Systems Engineering Chair of Defense: Dr. A. Hayford, Department of Sociology and Social Studies ABSTRACT Changes are inevitable in software development, especially considering today's fast- paced and ever-changing business demands. This research investigates the problem and proposes a method called the intentional generative pattern mechanism (IGPM) to improve the responsiveness to change or software process agility. Normally, agile processes and/or approaches are used to improve process agility. One of the suggestions made by these processes is to reduce the amount of the documentation created during the development. Producing less documents should enable cheap modifications to software since there is no need for the synchronization between code and documents. However, many researchers argue that the lack of adequate documentation limits the use of agile processes only to small projects. The above arguments and other similar concerns in the literature indicate that agile processes may not be the ideal solution to achieve true agility. This research revisits the problem by investigating the source of the problem - the sources of changes. The result is a set of characteristics necessary to a truly agile process. A number of existing techniques are found to be possible realizations of those characteristics, except for one - documenting software easily and thoroughly or Agile Documentation. Further review confirms that there is no existing documentation technique suitable for i Agile Documentation. A method for software documentation, the Intentional Generative Pattern Mechanism (IGPM), is proposed as a technique for Agile Documentation. In the IGPM, a pattern is created to capture developer intention. The pattern encapsulates software development actions and a label, which describes the intention for performing those actions. More complex intentions and an entire software are naturally documented by a group of connected patterns or a pattern network. Patterns are executable. When executed, a pattern performs its encapsulated actions. An execution of a pattern network generally results in the development of a software by generating the code. This code generation allows easier synchronization between the documents and the code. A programming language, called the pattern language, is created to implement the IGPM. Experiments using the language show that it is possible to document thoroughly with less effort. This proves that the IGPM is a promising choice for Agile Documentation and a truly agile process can be created. ii ACKNOWLEDGEMENTS 1 wish to express my sincere appreciation to Dr. Luigi Benedicenti for his guidance and advice throughout this research and in the writing of this thesis. I would also like to thank my internal committee: Dr. Raman Paranjape, Dr. Cory Butz and Prof. Ken Runtz who spent time reading this thesis and provided valuable comments. Most importantly, this thesis would not have been possible without a TRLabs Telecommunication Research Graduate Scholarships. iii POST-DEFENCE ACKNOWLEDGEMENTS I would like to express my thanks to Dr. Pierre Bourque from the Ecole de technologie superieure as my external examiner and Dr. Alison Hayford from the Department of Sociology and Social Studies as the chair of the defence. iv DEDICATION Indescribable appreciations to mama, papa and sis for your love, guidance and support. A special thank to Lek for your help, patience and companionship. v TABLE OF CONTENTS ABSTRACT I ACKNOWLEDGEMENTS Ill POST-DEFENCE ACKNOWLEDGEMENTS IV DEDICATION V LIST OF TABLES XI LIST OF FIGURES XII LIST OF APPENDICES XIII LIST OF ABBREVIATIONS XIV CHAPTER 1 INTRODUCTION 1 1.1 Motivation 1 1.2 Objectives 4 1.3 Original Contributions 5 1.4 Document Overview 6 CHAPTER 2 BACKGROUND 8 2.1 Software Development Process (SDP) 8 2.1.1 Process as a Framework of Activities 10 2.1.2 Activities and Practises 11 2.1.3 What Exactly is a Software Development Process? 12 2.2 Purposes of the Software Development Process 13 2.2.1 Developing Software 13 2.2.2 Insuring Quality 14 2.2.3 Increasing the Odds of Success 16 2.2.4 Additional Comments 26 2.3 Software Process Adoptability 26 2.3.1 Project and Organization Size 27 2.3.2 Experience 27 2.3.3 Technical and Legacy System Constraints 28 vi 2.3.4 Business Environment 28 2.3.5 Requirements 28 2.3.6 People 28 2.3.7 Quality and Reliability Constraints 30 2.3.8 Project Resources 31 2.3.9 Process Infrastructures 31 2.3.10 Culture 32 2.3.11 Additional Comments on Software Process Adoptability 32 2.4 Software Process Agility 33 2.4.1 Definition 33 2.4.2 History 33 2.4.3 How is Process Agility Useful to Software Development? 34 2.4.4 Why is Agility Important? 34 2.4.5 Achieving Agility - The Agile Approaches 35 2.4.6 Additional Comments on Process Agility 36 2.5 Conclusions 36 CHAPTER 3 EXISTING SOFTWARE DEVELOPMENT PROCESSES 37 3.1 Introduction 37 3.2 Traditional Software Development 37 3.2.1 Common Characteristics of the Traditional Software Development 38 3.2.2 Traditional Software Development Processes 43 3.3 Agile Software Development 55 3.3.1 Common Characteristics of Agile Development 56 3.3.2 Agile Software Development Processes 58 3.4 Problems of Agile Processes 78 3.4.1 Minimalism 78 3.4.2 Lack of Adoptability 81 3.4.3 Lack of Practicality 81 3.4.4 Failure to Work 82 3.5 Conclusions 84 CHAPTER 4 SEARCHING FOR THE TRULY AGILE PROCESS 85 4.1 The Sources of Changes 85 4.1.1 Business-Condition Changes 88 vii 4.1.2 Changes in Business Needs 88 4.1.3 Requirement Changes 89 4.1.4 Technological Changes 90 4.1.5 Management and Organizational Changes 91 4.1.6 High-Level-Solution and Architectural Changes 92 4.1.7 Implementation Changes 92 4.1.8 Test-Result Changes 93 4.2 Dealing with Changes 94 4.2.1 Prevention 96 4.2.2 Elimination 97 4.2.3 Reduction 98 4.2.4 Treatment 99 4.2.5 Toleration 100 4.2.6 Redirection 101 4.3 A Truly Agile Process 101 4.3.1 Risk-Based Upfront Effort 102 4.3.2 Risk Management 104 4.3.3 Accepting and Managing Changes 105 4.3.4 Effective Communication 108 4.3.5 Customer Relationship 109 4.3.6 Management Style 110 4.3.7 Summary and Additional Comments 110 4.4 The Unsolved Problem - Agile Documentation Ill 4.5 Conclusions 113 CHAPTER 5 THE INTENTIONAL GENERATIVE PATTERN MECHANISM (IGPM) 114 5.1 Agile Documentation 114 5.1.1 Roles and Types of Documentation in Software Development 114 5.1.2 Documentation for Agile Processes 116 5.1.3 Possible Solutions 117 5.2 Candidates for Agile Documentation 119 5.2.1 Domain-Specific Languages (DSLs) 119 5.2.2 Model-Driven Developments (MDDs) 120 5.2.3 Language Manipulators 121 5.2.4 Additional Comments 122 viii 5.3 Realizing Agile Documentation 122 5.3.1 Natural Documentation 123 5.3.2 Code Generation 126 5.3.3 Graphical Representation 129 5.3.4 Summary and Additional Comments 129 5.4 The Intentional Generative Pattern Mechanism (IGPM) 129 5.4.1 The Core Concepts 130 5.4.2 A Pattern 133 5.4.3 Advantages of the IGPM 135 5.4.4 An Example Pattern 137 5.4.5 The IGPM for Agile Documentation 139 5.5 Conclusions 139 CHAPTER 6 IMPLEMENTATION THE PATTERN PROGRAMMING PARADIGM 140 6.1 Pattern Programming Paradigm 140 6.1.1 Artifact Properties 141 6.1.2 Delayed Computation 142 6.1.3 Computation Priority 142 6.1.4 Conflict Detection 143 6.1.5 Intention Tracking 143 6.1.6 Text Manipulation
Recommended publications
  • Automated Software Process Performance Analysis and Improvement Recommendation
    FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Automated Software Process Performance Analysis and Improvement Recommendation Mushtaq Raza MAP-i Doctoral Program in Computer Science Supervisor: João Pascoal Faria June 27, 2017 c Mushtaq Raza, 2017 Automated Software Process Performance Analysis and Improvement Recommendation Mushtaq Raza MAP-i Doctoral Program in Computer Science Dissertation submitted to the Faculty of Engineering, University of Porto in partial fulfillment of the requirements for the degree of Doctor of Philosophy Approved by: President: Dr. Eugénio da Costa Oliveira Referee: Dr. António Manuel Ferreira Rito da Silva Referee: Dr. Paulo Jorge dos Santos Gonçalves Ferreira Referee: Dr. Fernando Manuel Pereira da Costa Brito e Abreu Referee: Dr. Ademar Manuel Teixeira de Aguiar Supervisor: Dr. João Pascoal Faria June 27, 2017 Abstract Software development processes can generate significant amounts of data that can be periodically analyzed to identify performance problems, determine their root causes and devise improvement actions. However, there is a lack of methods and tools for helping in that kind of analysis. Con- ducting the analysis manually is challenging because of the potentially large amount of data to analyze, the effort and expertise required and the lack of benchmarks for comparison. Hence, the goal of this dissertation is to develop methods, models and tools for automating the analysis of process performance data and identifying and ranking performance problems and their root causes, reducing effort and errors and improving user satisfaction as compared to previous approaches. The main contributions of the dissertation are a novel method for process performance analysis and improvement recommendation (the ProcessPAIR method), a support tool (the ProcessPAIR tool), and a performance model for instantiating ProcessPAIR for the Personal Software Process (the ProcessPAIR model for the PSP).
    [Show full text]
  • Stephan Goericke Editor the Future of Software Quality Assurance the Future of Software Quality Assurance Stephan Goericke Editor
    Stephan Goericke Editor The Future of Software Quality Assurance The Future of Software Quality Assurance Stephan Goericke Editor The Future of Software Quality Assurance Editor Stephan Goericke iSQI GmbH Potsdam Germany Translated from the Dutch Original book: ‘AGILE’, © 2018, Rini van Solingen & Manage- ment Impact – translation by tolingo GmbH, © 2019, Rini van Solingen ISBN 978-3-030-29508-0 ISBN 978-3-030-29509-7 (eBook) https://doi.org/10.1007/978-3-030-29509-7 This book is an open access publication. © The Editor(s) (if applicable) and the Author(s) 2020 Open Access This book is licensed under the terms of the Creative Commons Attribution 4.0 Inter- national License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence and indicate if changes were made. The images or other third party material in this book are included in the book’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the book’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.
    [Show full text]
  • Week Assignment
    https://www.halvorsen.blog Week Assignment Project Kick-off & Planning Hans-Petter Halvorsen All Documents, Code, etc. should be uploaded to Teams/Azure DevOps! Week Assignment 1. Project Start: Define Teams & Roles. Make CV 2. Create a Software Development Plan (SDP) 3. Team Brainstorming (What/How?) 4. Development Tools – Install necessary Software – Get Started with “Azure DevOps”* *Previously Visual Studio Team Services (VSTS) See Next Slides for more details... Textbooks (Topics this Week) Software Engineering, Ian Sommerville Ch.1: Introduction Ch.2: Software Processes Ch.23: Project Planning (with SDP example) Video: What is Software Engineering and Why do we need it? https://youtu.be/R3NzTt0BTWE Video: Introduction to Software Engineering (10 Questions to Introduce Software Engineering) https://youtu.be/gi5kxGslkNc Video: FundaMental Activities of Software Engineering https://youtu.be/Z2no7DxDWRI Office Hours: Tirsdager 10:15-14:00 “The Office” Fredager: 10:15-14:00 Lunch 11:30-12:15 Det er meningen at dere skal være tilstede på kontoret i kontortiden – selv om ikke “sjefene” (les «lærerne») er der. Dvs. det er ikke behov for å tilkalle lærerne hvis de ikke C-139a skulle dukke opp hver gang. Når dere ankommer “kontoret” (C-139a), begynner dere å jobbe videre med prosjektet. Dere trenger ikke å sitte å vente på at dere skal få beskjed Team 2 om hva dere skal gjøre, da dere er selvstendige Team som har ansvaret for hvert deres prosjekt og fremdriften av dette. Slik er det i arbeidslivet, og slik er det her. Team 1 Management Team 3 Dere er Midlertidig ansatt (5 Måneders prøvetid) soM systemutviklere i firmaet “USN Software AS”.
    [Show full text]
  • Agile Project Management with Kanban
    Praise for Agile Project Management with Kanban “I have been fortunate to work closely with Eric for many years. In that time he has been one of the most productive, consistent, and efficient engineering leaders at Xbox. His philosophy and approach to software engineering are truly successful.” —Kareem Choudhry, Partner Director of Software Engineering for Xbox “Eric easily explains why Kanban has proven itself as a useful method for managing and tracking complicated work. Don’t expect this book to be an overview, however. Eric channels his deep understanding and experiences using Kanban at Microsoft to help you identify and avoid many of the common difficulties and risks when implementing Kanban.” —Richard Hundhausen, President, Accentient Inc. “Learning how Xbox uses Kanban on large-scale development of their platform lends real credibility to the validity of the method. Eric Brechner is a hands-on software development management practitioner who tells it like it is—solid, practical, pragmatic advice from someone who does it for a living.” —David J. Anderson, Chairman, Lean Kanban Inc. “As a software development coach, I continuously search for the perfect reference to pragmatically apply Kanban for continuous software delivery. Finally, my search is over.” —James Waletzky, Partner, Crosslake Technologies “Kanban has been incredibly effective at helping our team in Xbox manage shifting priorities and requirements in a very demanding environment. The concepts covered in Agile Project Management with Kanban give us the framework to process our work on a daily basis to give our customers the high- quality results they deserve.” —Doug Thompson, Principal Program Manager, Xbox Engineering “An exceptional book for those who want to deliver software with high quality, predictability, and flexibility.
    [Show full text]
  • UNIT-I: Software Engineering & Process Models
    UNIT-I: Software Engineering & Process Models Dual Role of Software • Both a product and a vehicle for delivering a product – Product • Delivers computing potential • Produces, manages, acquires, modifies, display, or transmits information – Vehicle • Supports or directly provides system functionality • Controls other programs (e.g., operating systems) • Effects communications (e.g., networking software) Helps build other software (e.g., software tools) A Definition of Software • Instructions (computer programs) that when executed provide desired features, function, and performance • Data structures that enable the programs to adequately manipulate information • Documents that describe the operation and use of the programs Differences between Software and Hardware • Software is developed or engineered; it is not manufactured in the classical sense – Impacts the management of software projects • Software doesn't wear out – Hardware bathtub curve compared to the software ascending spiked curve • Industry is moving toward component-based construction, most software continues to be custom built – it is still complex to build – Reusable components are created so that engineers can concentrate on innovative elements of a design – User interfaces are built with reusable components – The data structures and processing details are kept in a library for interface construction Hardware Failure Curve Software Failure Curve Changing Nature of Software • System software • Application software • Engineering/scientific software • Embedded software •
    [Show full text]
  • TSP Teams Transform Test
    TSP Teams Transform Test 2009 QUEST Chicago James D. McHale Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 [email protected] © 2008-09 Carnegie Mellon University A Nightmare Scenario The development team has been promising their “final” code drop for weeks, ever since their latest due date (months after the original date). Your test team has been filling in with clean-up, make-work tasks for most of that time. Every day represents one less day for your test team to complete their work, since the final ship date is not moving. Finally an email arrives handing off the code. All the proper links to the configuration management system are there… But they point to software that doesn’t build. A few more days pass. Another email. The software builds this time. The first day of testing cannot complete due to irrecoverable defects… and management wants you to commit to the original ship date. TSP Teams Transform Test James D. McHale, 2009 QUEST Chicago 2 © 2008-09 Carnegie Mellon University Current Test Reality Requirements, Design, Code, TEST, TEST, TEST, TEST… The focus is on writing code and getting it into test. Most working software developers learned this model implicitly, either in school or on the job, and have no other mental model available. Counting ALL of the testing costs for most modern-day applications still shows that 50% or more of development effort is spent in debugging. Is the purpose of testing to find defects? Or to verify function? TSP Teams Transform Test James D. McHale, 2009 QUEST Chicago 3 © 2008-09 Carnegie Mellon University The Problem With Testing Overload Hardware Configuration failure Good region = tested (shaded) Unknown region = untested (unshaded) Resource Operator contention error Data error TSP Teams Transform Test James D.
    [Show full text]
  • Using Simulation for Understanding and Reproducing Distributed Software Development Processes in the Cloud
    Using Simulation for Understanding and Reproducing Distributed Software Development Processes in the Cloud M. Ilaria Lunesu1, Jürgen Münch2, Michele Marchesi3, Marco Kuhrmann4 1Department of Electrical and Electronic Engineering, University of Cagliari, Italy 2Herman Hollerith Center, Böblingen & Reutlingen University, Germany 3Department of Mathematics and Computer Science University of Cagliari, Italy 4Clausthal University of Technology, Institute for Applied Software Systems Engineering, Germany Corresponding Contact: E-Mail: [email protected] © Elsevier 2018. Preprint. This is the author's version of the work. The definite version was accepted in Information and Software Technology journal, Issue assignment pending, The final version is available at https://www.journals.elsevier.com/information-and-software-technology Using Simulation for Understanding and Reproducing Distributed Software Development Processes in the Cloud M. Ilaria Lunesua,,Jurgen¨ Munch¨ b, Michele Marchesic, Marco Kuhrmannd aDepartment of Electrical and Electronic Engineering, University of Cagliari, Italy bHerman Hollerith Center, B¨oblingen & Reutlingen University, Germany cDepartment of Mathematics and Computer Science University of Cagliari, Italy dClausthal University of Technology, Institute for Applied Software Systems Engineering, Germany Abstract Context: Organizations increasingly develop software in a distributed manner. The Cloud provides an environment to create and maintain software-based products and services. Currently, it is unknown which software processes are suited for Cloud-based development and what their e↵ects in specific contexts are. Objective: We aim at better understanding the software process applied to distributed software development using the Cloud as development environment. We further aim at providing an instrument, which helps project managers comparing di↵erent solution approaches and to adapt team processes to improve future project activities and outcomes.
    [Show full text]
  • Software Engineering
    SOFTWARE ENGINEERING PERSONAL SOFTWARE PROCESS Personal software process is a software development process by the developers to help themselves improve their performance and efficiency by following a personal disciplined framework that facilitates to plan, design, manage and measure their work. LEARNING OBJECTIVES • To consistently improve the performance, engineers must use well-defined and measured processes. • To produce quality products, engineers must feel personally responsible for the quality. • It costs less to find and fix defects earlier in a process than later. • The right way is always the fastest and cheapest way to do a job. Better Programmer Better programmer can be achieved by, More training ◦ Know how to use tools. ◦ Have seen some problems before. ◦ Know how things fit together. Familiar with language ◦ Object, semaphore, recursion, etc.. Better process Examples of Better Processes Incremental coding ◦ Code a little, test a little ◦ Compare to writing entire program and testing Error prevention versus debugging ◦ Cheaper and easier to prevent than to find bugs Point of Processes The point of processes is to learn from mistakes so that we never make the same mistake twice. It incorporates best practices as something works better than another. A process executes routine standard tasks, when once the task is done it right once and then it is reused. Another major point of having processes is predictability. PERSONAL SOFTWARE PROCESS Personal software process is a software development process by the developers to help themselves improve their performance and efficiency by following a personal disciplined framework that facilitates to plan, design, manage and measures their work. PSP helps you to manage your work & assess/build your talents/skills.
    [Show full text]
  • Software Development Processes: from the Waterfall to the Unified
    Software development processes: from the waterfall to the Unified Process Paul Jackson School of Informatics University of Edinburgh The Waterfall Model Image from Wikipedia 2 / 17 Pros, cons and history of the waterfall + better than no process at all { makes clear that requirements must be analysed, software must be tested, etc. − inflexible and unrealistic { in practice, you cannot follow it: e.g., verification will show up problems with requirements capture. − slow and expensive { in an attempt to avoid problems later, end up \gold plating" early phases, e.g., designing something elaborate enough to support the requirements you suspect you've missed, so that functionality for them can be added in coding without revisiting Requirements. Introduced by Winston W. Royce in a 1970 paper as an obviously flawed idea! 3 / 17 Domains of use for waterfall-like models embedded systems : Software must work with specific hardware: Can't change software functionality later. safety critical systems : Safety and security analysis of whole system is needed up front before implementation some very large systems : Allows for independent development of subsystems 4 / 17 Spiral model Barry Boehm. 1988. Cumulative cost 1.Determine Progress 2. Identify and objectives resolve risks Review Requirements Operational plan Prototype 1 Prototype 2 prototype Concept of Concept of operation requirements Detailed Requirements Draft design Development Verification Code plan & Validation Integration Test plan Verification & Validation Test Implementation 4. Plan the Release next iteration 3. Development and Test 5 / 17 Spiral model Successive loops involve more advanced activities: - checking feasibility, - gathering requirements, - design development, - integration and test . Phases of single loop: 1.
    [Show full text]
  • Agile Methodologies in Mission Critical Software Development and Maintenance
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Repositório Aberto da Universidade do Porto FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Agile Methodologies in Mission Critical Software Development and Maintenance Antonieta Ponce de Leão Integrated Master in Informatics and Computing Engineering Supervisor: João Carlos Pascoal Faria, Ph.D. June, 2014 © Antonieta Ponce de Leão, 2014 Agile Methodologies in Mission Critical Software Development and Maintenance Maria Antonieta Dias Ponce de Leão e Oliveira Integrated Master in Informatics and Computing Engineering Approved in public trials, by jury: President: Nuno Honório Rodrigues Flores (Ph.D.) External Vowel: Alberto Manuel Rodrigues da Silva (Ph.D.) Supervisor: João Carlos Pascoal Faria (Ph.D.) ____________________________________________________ July, 17th 2014 Abstract Software development depends on people and because of this many issues arise specially regarding consistency and quality. Guaranteeing quality, accurate estimation, and high- performance knowledge workers is not an easy job, and for this there are many methodologies and processes that help. This is not a new issue; many software development companies, somewhere along their lifetime passed through this hassle, and with the study of their victories and defeats as well as worldwide recognized best practices, were able to improve their processes and performance. ALERT, is an example of a software development company that is continuously striving to improve, and their goal, at the moment, is to increase quality, productivity and estimation accuracy. The goal of this project is to identify any exiting issues in the current software development processes and practices at the organization, propose a hybrid and customized proposal of agile and classical methodologies that will help to optimize the performance of the knowledge workers, never forgetting that the productivity of knowledge workers is deeply connected with their motivation.
    [Show full text]
  • The Team Software Processsm (TSPSM)
    The Team Software ProcessSM (TSPSM) Watts S. Humphrey November 2000 TECHNICAL REPORT CMU/SEI-2000-TR-023 ESC-TR-2000-023 Pittsburgh, PA 15213-3890 The Team Software ProcessSM (TSPSM) CMU/SEI-2000-TR-023 ESC-TR-2000-023 Watts S. Humphrey November 2000 Team Software Process Initiative Unlimited distribution subject to the copyright. This report was prepared for the SEI Joint Program Office HQ ESC/DIB 5 Eglin Street Hanscom AFB, MA 01731-2116 The ideas and findings in this report should not be construed as an official DoD position. It is published in the interest of scientific and technical information exchange. FOR THE COMMANDER Joanne E. Spriggs Contracting Office Representative This work is sponsored by the U.S. Department of Defense. The Software Engineering Institute is a federally funded research and development center sponsored by the U.S. Department of Defense. Copyright 2000 by Carnegie Mellon University. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder. Internal use. Permission to reproduce this document and to prepare derivative works from this document for internal use is granted, provided the copyright and "No Warranty" statements are included with all reproductions and derivative works.
    [Show full text]
  • CMMI with Agile, Lean, Six Sigma, and Everything Else
    CMU SEI CERT Division Digital Library Blogs A-Z Index HOME OUR WORK ENGAGE WITH US PRODUCTS & SERVICES LIBRARY NEWS CAREERS ABOUT US BLOG Library Search the Library Browse by Topic Browse by Type CMMI with Agile, Lean, Six Sigma, and Please note that current and future CMMI Everything Else research, training, and information has been transitioned to the CMMI Institute, a wholly- NEWS AT SEI owned subsidiary of Carnegie Mellon University. Author Mike Phillips Related Links News This library item is related to the following area(s) of work: SEI to Co-Sponsor 26th Annual IEEE Software Technology Conference CMMI SEI Cosponsors Agile for Government Summit Process Improvement Training This article was originally published in News at SEI on: January 1, 2008 See more related courses » Events Team Software Process (TSP) Symposium 2014 I repeatedly encounter those seeking the one solution that will solve the problems in their organization. Such a search is often commissioned by a boss who wants the single Nov 3 - 6 answer and a quick fix to the organization’s problems. In this column, I try to describe how to relate some of these answers rather than trying to make any of them—even CMMI—a single solution. The Choices There are a wide range of improvement approaches that are often mentioned as the solution to problems confronting organizations that recognize a need to improve. For years, various standards and modelscaptured principles for process improvement, often called best practices. ISO 15288 and ISO 12207 are likely standards that are familiar to you if you are faced with complex, software intensive systems development.
    [Show full text]