Agile Processes for Hardware Development

Total Page:16

File Type:pdf, Size:1020Kb

Agile Processes for Hardware Development Agile Processes for Hardware Development Abstract Hardware and software development are quite different, in terms of the concrete developmental activities. Thus it might seem that Scrum, the Agile process often used for software development, would not be appropriate for hardware development. However, most of the obvious differences between hardware and software development have to do with the nature and sequencing of deliverables, rather than unique attributes of the work that constrain the process. The research conducted for this paper indicates that a Scrum process is quite appropriate for hardware development. Thus this paper describes a practical Agile process for Agile hardware development, which is almost identical to the Scrum process as it is commonly used for developing software. Acknowledgments The author would like to thank John Carter (of TCGen) and Dr. Scott Elliott (of TechZecs LLC) for their critical contributions in the areas of hardware development and survey design. This document would not have been possible without their continued participation in every aspect of the research and writing over the last year and a half, including designs for various figures, textual revisions, and numerous proof- readings. 2 Contents 1 Introduction .......................................................................................................................................... 7 2 The Agile Hardware Research Project ................................................................................................. 7 3 Processes for Software Development .................................................................................................. 8 3.1 The Waterfall Process for Software Development ........................................................................ 8 3.2 The Adaptive Spectrum ................................................................ Error! Bookmark not defined. 3.3 Agile Processes for Software Development ................................................................................. 9 3.4 Scrum Time Horizons and Cycles .............................................................................................. 10 4 Hardware vs. Software: Similarities and Differences ......................................................................... 12 4.1 Similarities between Hardware and Software Development ...................................................... 13 4.2 Differences between Hardware and Software Development ..................................................... 13 5 Scrum-Process Customizations for Hardware Development ............................................................. 14 5.1.1 Story Types ......................................................................................................................... 14 5.1.2 Sprint Length ...................................................................................................................... 15 5.1.3 Release Planning ................................................................................................................ 16 5.1.4 Variation in Sprint Focus during a Release Cycle .............................................................. 17 6 Agile Process for Hardware Development ......................................................................................... 18 6.1 Overview ..................................................................................................................................... 19 6.2 Velocity ....................................................................................................................................... 19 6.3 Levels of Governance ................................................................................................................ 20 6.4 Roles ........................................................................................................................................... 20 6.4.1 Project-Level Roles ............................................................................................................. 20 6.4.2 Program-Level Roles .......................................................................................................... 21 6.5 Artifacts ...................................................................................................................................... 22 6.5.1 Product Backlog Items ....................................................................................................... 22 6.5.1.1 User Stories .................................................................................................................... 22 6.5.1.2 Technical Stories ............................................................................................................ 24 6.5.1.3 Defects ........................................................................................................................... 25 6.5.2 Epics ................................................................................................................................... 26 6.5.3 Product Backlog ................................................................................................................. 27 6.5.4 Sprint Backlog .................................................................................................................... 27 3 6.5.5 Definition of Done ............................................................................................................... 27 6.6 Ceremonies ................................................................................................................................ 28 6.6.1 Estimation Concepts ........................................................................................................... 29 6.6.1.1 Units for PBI Estimation .................................................................................................. 29 6.6.1.1.1 Relative Sizing .......................................................................................................... 29 6.6.1.1.2 Absolute Sizing ......................................................................................................... 30 6.6.1.2 How to Estimate Team Velocity ...................................................................................... 30 6.6.1.3 How to Estimate PBIs with Planning Poker ..................................................................... 31 6.6.1.4 How to Estimate Tasks ................................................................................................... 32 6.6.2 Ceremonies for Sprints ....................................................................................................... 32 6.6.2.1 Backlog Grooming Meeting ............................................................................................ 34 6.6.2.2 Sprint Planning Meeting ................................................................................................. 34 6.6.2.2.1 Sprint Planning, Part 1 .............................................................................................. 35 6.6.2.2.2 Sprint Planning, Part 2 .............................................................................................. 35 6.6.2.2.3 How to Allocate Team Members to PBIs .................................................................. 36 6.6.2.3 Daily Stand-Up Meeting ................................................................................................. 37 6.6.2.4 Sprint Review .................................................................................................................. 37 6.6.2.5 Retrospective .................................................................................................................. 38 6.6.3 Ceremonies for Releases ................................................................................................... 39 6.6.3.1 Release Planning ............................................................................................................ 42 6.6.3.1.1 Single Release Planning Meeting ............................................................................. 42 6.6.3.1.2 Incremental Release Planning .................................................................................. 44 6.6.3.1.2.1 Scope Development and Estimation ................................................................. 44 6.6.3.1.2.2 Release Plan Development ............................................................................... 44 6.6.3.1.3 Units for Estimation in Release Planning .................................................................. 44 6.6.3.1.4 How to Estimate PBIs and Epics for Release Planning: Affinity Estimation .............. 45 6.6.4 Scrum-of-Scrums Meeting .................................................................................................. 46 6.6.5 Product Owner Scrum of Scrums Meeting ......................................................................... 46 6.6.6 Release Review .................................................................................................................. 47 6.6.7 Release Retrospective ........................................................................................................ 47 6.7 Tracking and Metrics .................................................................................................................. 48 6.7.1 Tracking Progress for a Sprint ............................................................................................ 48 4 6.7.2 Tracking Progress for a Release .......................................................................................
Recommended publications
  • Analysis and Exploration for New Generation Debuggers Thomas Dupriez, Guillermo Polito, Stéphane Ducasse
    Analysis and exploration for new generation debuggers Thomas Dupriez, Guillermo Polito, Stéphane Ducasse To cite this version: Thomas Dupriez, Guillermo Polito, Stéphane Ducasse. Analysis and exploration for new generation debuggers. International Workshop on Smalltalk Technology IWST’17, Sep 2017, Maribor, Slovenia. pp.5:1–5:6, 10.1145/3139903.3139910. hal-01585338 HAL Id: hal-01585338 https://hal.archives-ouvertes.fr/hal-01585338 Submitted on 11 Sep 2017 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Analysis and exploration for new generation debuggers Thomas Dupriez Guillermo Polito Stephane´ Ducasse ENS Paris-Saclay - RMoD, Inria RMoD - Univ. Lille, CNRS, Centrale RMoD, Inria Lille-Nord Europe Lille-Nord Europe Lille, Inria, UMR 9189 - CRIStAL - [email protected] [email protected] Centre de Recherche en Informatique Signal et Automatique de Lille, F-59000 Lille, France [email protected] Abstract offer a different perspective to this problem: it should be Locating and fixing bugs is a well-known time consuming possible to adapt a debugger to a given domain or task. task. Advanced approaches such as object-centric or back- In this position paper we motivate the need to mature and in-time debuggers have been proposed in the literature, still develop more advanced techniques by showing a complex in many scenarios developers are left alone with primitive debugging scenario obtained from a real use case.
    [Show full text]
  • Writing and Reviewing Use-Case Descriptions
    Bittner/Spence_06.fm Page 145 Tuesday, July 30, 2002 12:04 PM PART II WRITING AND REVIEWING USE-CASE DESCRIPTIONS Part I, Getting Started with Use-Case Modeling, introduced the basic con- cepts of use-case modeling, including defining the basic concepts and understanding how to use these concepts to define the vision, find actors and use cases, and to define the basic concepts the system will use. If we go no further, we have an overview of what the system will do, an under- standing of the stakeholders of the system, and an understanding of the ways the system provides value to those stakeholders. What we do not have, if we stop at this point, is an understanding of exactly what the system does. In short, we lack the details needed to actually develop and test the system. Some people, having only come this far, wonder what use-case model- ing is all about and question its value. If one only comes this far with use- case modeling, we are forced to agree; the real value of use-case modeling comes from the descriptions of the interactions of the actors and the system, and from the descriptions of what the system does in response to the actions of the actors. Surprisingly, and disappointingly, many teams stop after developing little more than simple outlines for their use cases and consider themselves done. These same teams encounter problems because their use cases are vague and lack detail, so they blame the use-case approach for having let them down. The failing in these cases is not with the approach, but with its application.
    [Show full text]
  • Metamodeling Variability to Enable Requirements Reuse
    Metamodeling Variability to Enable Requirements Reuse Begoña Moros 1, Cristina Vicente-Chicote 2, Ambrosio Toval 1 1Departamento de Informática y Sistemas Universidad de Murcia, 30100 Espinardo (Murcia), Spain {bmoros, atoval}@um.es 2 Departamento de Tecnologías de la Información y las Comunicaciones Universidad Politécnica de Cartagena, 30202 Cartagena (Murcia), Spain [email protected] Abstract. Model-Driven Software Development (MDSD) is recognized as a very promising approach to deal with software complexity. The Requirements Engineering community should be aware and take part of the Model-Driven revolution, enabling and promoting the integration of requirements into the MDSD life-cycle. As a first step to reach that goal, this paper proposes REMM, a Requirements Engineering MetaModel, which provides variability modeling mechanisms to enable requirements reuse. In addition, this paper also presents the REMM-Studio graphical requirements modeling tool, aimed at easing the definition of complex requirements models. This tool enables the specification of (1) catalogs of reusable requirements models (modeling for reuse facet of the tool), and (2) specific product requirements by reusing previously defined requirements models (modeling by reuse facet of the tool). Keywords: Model-Driven Software Development (MDSD), Requirements Engineering (RE), Requirements MetaModel (REMM), Requirements Reuse, Requirements Variability. 1 Introduction Model-Driven Software Development (MDSD) aims at raising the level of abstraction at which software is conceived, implemented, and evolved, in order to help managing the inherent complexity of modern software-based systems. As recently stated in a Forrester Research Inc. study “model-driven development will play a key role in the future of software development; it is a promising technique for helping application development managers address growing business complexity and demand ” [1].
    [Show full text]
  • Practical Agile Requirements Engineering Presented to the 13Th Annual Systems Engineering Conference 10/25/2010 – 10/28/2010 Hyatt Regency Mission Bay, San Diego, CA
    Defense, Space & Security Lean-Agile Software Practical Agile Requirements Engineering Presented to the 13th Annual Systems Engineering Conference 10/25/2010 – 10/28/2010 Hyatt Regency Mission Bay, San Diego, CA Presented by: Dick Carlson ([email protected]) Philip Matuzic ([email protected]) BOEING is a trademark of Boeing Management Company. Copyright © 2009 Boeing. All rights reserved. 1 Agenda Boeing Defense, Space & Security| Lean-Agile Software . Introduction . Classic Requirements engineering challenges . How Agile techniques address these challenges . Overview / background of Agile software practices . History and evolution of Agile software Requirements Engineering . Work products and work flow of Agile Requirements Engineering . Integration of Agile software Requirements Engineering in teams using Scrum . Current status of the work and next steps Copyright © 2010 Boeing. All rights reserved. 2 Introduction Boeing Defense, Space & Security| Lean-Agile Software . A large, software-centric program applied Agile techniques to requirements definition using the Scrum approach . This presentation shows how systems engineering effectively applies Agile practices to software requirements definition and management . An experience model created from the program illustrates how failures on a large software program evolved into significant process improvements by applying specific Agile practices and principles to practical requirements engineering Copyright © 2010 Boeing. All rights reserved. 3 Requirements Reality Boeing Defense, Space & Security| Lean-Agile Software “The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, machines, and other software systems. No other part of the work so cripples the resulting system if done wrong.
    [Show full text]
  • Devops for Hybrid Cloud: an IBM Point of View
    IBM Cloud July 2017 Thought Leadership White Paper DevOps for hybrid cloud: an IBM point of view How DevOps for hybrid cloud can help organizations succeed with digital reinvention 2 DevOps for hybrid cloud: an IBM point of view Introduction The IBM point of view on DevOps makes the following DevOps started as a culture and set of practices to support assumptions: collaboration and communication across development and oper- ations, and to apply automation to key phases of the software ●● DevOps covers the end-to-end software delivery lifecycle delivery process. It has been popularized by successful new including an expanded set of stakeholders such as business companies developing business models and related applications owners and end users, and practices such as design thinking empowered by the cloud (cloud-native applications). More and user analytics. recently, large, established enterprises have recognized the need ●● DevOps adoption is expanding in large organizations as they to deliver innovation faster to stay relevant and capitalize on enable existing IT applications for cloud (cloud-enabled industry disruption, while also improving operational metrics for applications). New methods enable organizations to success- application quality and cost. DevOps and cloud have emerged as fully implement DevOps as they move to cloud. essential parts of their IT strategy as they improve core compe- ●● Hybrid cloud architecture is becoming the norm for both tency in continuous delivery of software-driven innovation. cloud-enabled and cloud-native applications. Hybrid cloud provides flexibility in deployment, enabling organizations to choose the right platform to run their workloads. ●● DevOps solutions can vary as teams across large organizations Business as usual have different goals, processes, culture and tools.
    [Show full text]
  • 21 Scenario-Based Programming, Usability-Oriented Perception
    Scenario-Based Programming, Usability-Oriented Perception GIORA ALEXANDRON, MICHAL ARMONI, MICHAL GORDON, and DAVID HAREL, Weizmann Institute of Science In this article, we discuss the possible connection between the programming language and the paradigm behind it, and programmers’ tendency to adopt an external or internal perspective of the system they develop. Based on a qualitative analysis, we found that when working with the visual, interobject language of live sequence charts (LSC), programmers tend to adopt an external and usability-oriented view of the system, whereas when working with an intraobject language, they tend to adopt an internal and implementation- oriented viewpoint. This is explained by first discussing the possible effect of the programming paradigm on programmers’ perception and then offering a more comprehensive explanation. The latter is based on a cognitive model of programming with LSC, which is an interpretation and a projection of the model suggested by Adelson and Soloway [1985] onto LSC and scenario-based programming, the new paradigm on which LSC is based. Our model suggests that LSC fosters a kind of programming that enables iterative refinement of the artifact with fewer entries into the solution domain. Thus, the programmer can make less context switching between the solution domain and the problem domain, and consequently spend more time in the latter. We believe that these findings are interesting mainly in two ways. First, they characterize an aspect of problem-solving behavior that to the best of our knowledge has not been studied before—the programmer’s perspective. The perspective can potentially affect the outcome of the problem-solving process, such as by leading the programmer to focus on different parts of the problem.
    [Show full text]
  • Scenario-Driven Continuous Mobility Requirements Analysis in Mobile App Maintenance
    Scenario-Driven Continuous Mobility Requirements Analysis in Mobile App Maintenance Xiaozhou Li1, Zheying Zhang2 and Timo Poranen3 1 University of Tampere, Kalevantie 4, 33014, Tampere, Finland {xiaozhou.li; zheying.zhang; timo.t.poranen}@uta.fi Abstract. As mobile devices have become an indispensable part of people’s lives, the growth of mobile app market is inevitably rapid. Accordingly, the mobile app users have increasing demands on the quality of the apps. Their tol- erance towards bugs and poor usability of the apps is growing low. In addition, as the mobile devices and apps have enabled users to use them in various con- texts, the mobility of the apps, referred to as their capability to provide ubiqui- tous services with quality, is also required. In this study, we propose the scenar- io-driven approach of mobility requirements analysis with context and ways of interaction. It supports the continuous requirements analysis in the maintenance of mobile apps where their mobility is constantly maintained despite the chang- es in the features. Keywords: Mobile App, Mobility, Requirements, Scenario, Situational Con- texts, Interaction, Maintenance. 1 Introduction The mobility of mobile apps, as their most significant feature, is defined as the ability to access services ubiquitously, on the move, though wireless networks and various mobile devices [1]. It enables the users to access the services with the independence from time and space [2]. The mobility of mobile apps is closely related to their con- text of use, especially the situational context, which largely influences the post- adoption behaviors of the users, including use continuance, word-of-mouth, and com- plaints [3].
    [Show full text]
  • Modeling System Requirements Using Use Cases and Petri Nets
    ICSEA 2016 : The Eleventh International Conference on Software Engineering Advances Modeling System Requirements Using Use Cases and Petri Nets Radek Koˇc´ıand Vladim´ır Janouˇsek Brno University of Technology, Faculty of Information Technology, IT4Innovations Centre of Excellence Czech Republic email: {koci,janousek}@fit.vutbr.cz Abstract—The fundamental problem associated with software executable form, which can then be tested and debugged. All development is a correct identification, specification and sub- changes that result from validation process are hard to transfer sequent implementation of the system requirements. To specify back into the models. It is a problem because the models requirement, designers often create use case diagrams from become useless over the development time. Unified Modeling Language (UML). These models are then developed by further UML models. To validate requirements, Similar work based on ideas of model-driven develop- its executable form has to be obtained or the prototype has to be ment deals with gaps between different development stages developed. It can conclude in wrong requirement implementations and focuses on the usage of conceptual models during the and incorrect validation process. The approach presented in this simulation model development process—these techniques are work focuses on formal requirement modeling combining the called model continuity [8]. While it works with simulation classic models for requirements specification (use case diagrams) models during design stages, the approach proposed in this with models having a formal basis (Petri Nets). Created models can be used in all development stages including requirements paper focuses on live models that can be used in the deployed specification, verification, and implementation.
    [Show full text]
  • Accelerating Software Development Through Agile Practices - a Case Study of a Small-Scale, Time-Intensive Web Development Project at a College-Level IT Competition
    Journal of Information Technology Education: Volume 11, 2012 Innovations in Practice Accelerating Software Development through Agile Practices - A Case Study of a Small-scale, Time-intensive Web Development Project at a College-level IT Competition Xuesong (Sonya) Zhang Bradley Dorn California State Polytechnic California State University, University, Pomona, CA, USA Fresno, CA, USA [email protected] [email protected] Executive Summary Agile development has received increasing interest both in industry and academia due to its bene- fits in developing software quickly, meeting customer needs, and keeping pace with the rapidly changing requirements. However, agile practices and scrum in particular have been mainly tested in mid- to large-size projects. In this paper, we present findings from a case study of agile prac- tices in a small-scale, time-intensive web development project at a college-level IT competition. Based on the observation of the development process, the interview of the project team, and the study of relevant documents, we describe how agile practices, such as daily scrums, backlogs, and sprints, were successfully adopted to the project development. We also describe several support- ing activities that the team employed, including cross-leveling of knowledge, socialization, and multiple communication modes. Finally, we discuss the benefits and challenges of implementing agile practices in the case project reported, as well as contribution and limitation of our findings. Keywords: Agile, Scrum, Software development, Project management, Web application. Introduction Created to be a lightweight software development method by 17 software developers at a ski re- sort a decade ago (“Agile Software Development,” 2011), agile development has received in- creasing interest both in industry and academia due to its benefits in developing software more quickly and at lower costs, meeting customer needs, and keeping pace with the rapidly changing requirements.
    [Show full text]
  • Identify and Manage the Software Requirements Volatility Proposed Framework and Casestudy
    (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 7, No. 5, 2016 Identify and Manage the Software Requirements Volatility Proposed Framework and CaseStudy Khloud Abd Elwahab Mahmoud Abd EL Latif Sherif Kholeif MSc student /Information system Associate Professor of information Assistant Professor of information Department system department system Faculty of computers and Faculty of computers and Faculty of computers and information, Helwan University line information, Helwan University information, Helwan University 3: Cairo, Egypt Cairo, Egypt Cairo, Egypt Abstract—Management of software requirements volatility a framework focus on how to manage requirements volatility through development of life cycle is a very important stage. It during the software development life cycle and to limit the helps the team to control significant impact all over the project implications thereof. The remainder paper is structured as (cost, time and effort), and also it keeps the project on track, to follows: Section 2 presents the motivation to search for the finally satisfy the user which is the main success criteria for the requirements volatility topic. Section 3 explains the software project. requirements volatility definition, factors, causes, and the In this research paper, we have analysed the root causes of measures, and finally explains the impact of that on software requirements volatility through a proposed framework development process. Section 4 contains proposed framework presenting the requirements volatility causes and how to manage and presents a case study in explanation of the benefits of this requirements volatility during the software development life framework. Section 5 concludes our results and provides some cycle. Our proposed framework identifies requirement error types, open research directions causes of requirements volatility and how to manage these II.
    [Show full text]
  • Use Cases, User Stories and Bizdevops
    Use Cases, User Stories and BizDevOps Peter Forbrig University of Rostock, Chair in Software Engineering, Albert-Einstein-Str. 22, 18055 Rostock [email protected] Abstract. DevOps is currently discussed a lot in computer science communi- ties. BizDev (business development) is only mentioned once in a computer sci- ence paper in connection with Continuous Software Engineering. Otherwise it is used in the domain of business administration only. Additionally, there seems to be a different interpretation of the term in the two communities. The paper discusses the different interpretations found in the literature. Addi- tionally, the idea of BizDevOps is discussed in conjunction with further ideas of taking new requirements for software features into account. These requirements can be described by models on different level of granularity. Starting points are use cases, use-case slices, user stories, and scenarios. They have to be commu- nicated between stakeholders. It is argued in this paper that storytelling can be a solution for that. It is used in as well in software development as in manage- ment. Keywords: BizDev, DevOps, BizDevOps, Continuous Requirements Engineer- ing, Continuous Software Engineering, Agile Software Development, Storytell- ing. 1 Introduction Developing Businesses if often related with the development of software because nowadays business processes have to be supported by IT. Continuous requirements engineering has to be performed to provide continuously the optimal support. Contin- uous business development seems to be a good description for the combined devel- opment of software and business. This term is not used so very often. Nevertheless, it exists like in [17]. However, more often the abbreviation BizDev (business development) is used.
    [Show full text]
  • Software Development a Practical Approach!
    Software Development A Practical Approach! Hans-Petter Halvorsen https://www.halvorsen.blog https://halvorsen.blog Software Development A Practical Approach! Hans-Petter Halvorsen Software Development A Practical Approach! Hans-Petter Halvorsen Copyright © 2020 ISBN: 978-82-691106-0-9 Publisher Identifier: 978-82-691106 https://halvorsen.blog ii Preface The main goal with this document: • To give you an overview of what software engineering is • To take you beyond programming to engineering software What is Software Development? It is a complex process to develop modern and professional software today. This document tries to give a brief overview of Software Development. This document tries to focus on a practical approach regarding Software Development. So why do we need System Engineering? Here are some key factors: • Understand Customer Requirements o What does the customer needs (because they may not know it!) o Transform Customer requirements into working software • Planning o How do we reach our goals? o Will we finish within deadline? o Resources o What can go wrong? • Implementation o What kind of platforms and architecture should be used? o Split your work into manageable pieces iii • Quality and Performance o Make sure the software fulfills the customers’ needs We will learn how to build good (i.e. high quality) software, which includes: • Requirements Specification • Technical Design • Good User Experience (UX) • Improved Code Quality and Implementation • Testing • System Documentation • User Documentation • etc. You will find additional resources on this web page: http://www.halvorsen.blog/documents/programming/software_engineering/ iv Information about the author: Hans-Petter Halvorsen The author currently works at the University of South-Eastern Norway.
    [Show full text]