The Impacts Of Agile Development On The System Engineering Process

Similar documents
Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

COMP 354 Introduction to Software Engineering

Software Development Methodology Development Process Aress

AGILE vs. WATERFALL METHODOLOGIES

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Software Requirements and Specification

CSE 435 Software Engineering. Sept 16, 2015

5 FAH-5 H-520 LIFE CYCLE MANAGEMENT

Agile Software Development

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Introduction to Agile Software Development Process. Software Development Life Cycles

System Development Life Cycle Guide

Software Development Life Cycle (SDLC)

How to manage agile development? Rose Pruyne Jack Reed

Chap 1. Introduction to Software Architecture

Issues in Internet Design and Development

Agile Projects 7. Agile Project Management 21

CMMI and IBM Rational Unified Process

Advanced Software Engineering. Software Development Processes

Software Project Models

Appendix <<1>> System Status Report for System template

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

NODIS Library Program Formulation(7000s) Search

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

The Waterfall Model What It Is Not and Has Never Been

DESIGN AND INTEGRATION OF EQUIPMENT. (B) Process Flow Guideline

D25-2. Agile and Scrum Introduction

AGILE - QUICK GUIDE AGILE - PRIMER

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

DoD Software Assurance (SwA) Overview

The Agile Manifesto is based on 12 principles:

Copyright protected. Use is for Single Users only via a VHP Approved License. For information and printed versions please see

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Change Management Best Practices

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Appendix E Program Management Plan Template

Supporting Agile Software Development With Agile Team Work Space

LEAN AGILE POCKET GUIDE

Risk-based Vendor Audits of Agile Developed Software

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

CSSE 372 Software Project Management: Managing Agile Projects

Example Software Development Process.

Appendix 2-A. Application and System Development Requirements

Increasing Development Knowledge with EPFC

Lecture Slides for Managing and Leading Software Projects. Chapter 2: Process Models for Software Development

Iterative Software Development -

Agile Project Management By Mark C. Layton

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Agile Software Development. Mohsen Afsharchi

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Introduction to OpenUP (Open Unified Process)

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

Software Development Life Cycle

Evolving the Enterprise Software Configuration Management Model

IT Project: System Implementation Project Template Description

Cisco Unified Communications and Collaboration technology is changing the way we go about the business of the University.

QUICK FACTS. Providing Application Development and Data Migration Support for a Leading Healthcare Company

Quality Assurance Software Development Processes

Usability in SW-Engineering-Prozessen und in CMMI

Space Project Management

Global Standards and Publications

General Problem Solving Model. Software Development Methodology. Chapter 2A

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

A Quick Overview of Software Engineering. Paul Klint

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

Agile processes. Extreme Programming, an agile software development process

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

Agile Project Management Controls

SOFTWARE PROCESS MODELS

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

SCEA 2010 EST06. Estimating Issues Associated with Agile. Bob Hunt. Galorath Incorporated

An Introduction to the ECSS Software Standards

Agile Software Development in the Large

Rapid Software Development

Manifesto for Agile Software Development

Classical Software Life Cycle Models

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

Software Life Cycle Processes

A Viable Systems Engineering Approach. Presented by: Dick Carlson

An Agile Project Management Model

Module System Architecture Context

Criteria for Flight Project Critical Milestone Reviews

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

Space engineering ECSS. Software - Part 1: Principles and requirements. ECSS-E-40 Part 1B EUROPEAN COOPERATION FOR SPACE STANDARDIZATION

2. Analysis, Design and Implementation

Blending Traditional and Agile Project Documentation

Introduction to Agile Software Development

Product Development Best Practices

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

Transcription:

The Impacts Of Agile elopment On The System Engineering Process 17 th Annual Systems Engineering Conference October 27-30, 2014 Springfield, Virginia

Discussion Topics Background What Is Agile elopment Benefits Impacts on the Traditional Engineering Process Solutions Summary

Background Driver for Change Cost Effective Capability elopment that Meets the Warfighter s Needs Enablers Technology Hardware Platforms Are Available on Day One of the elopment Effort Open Architecture Standard Interfaces Simplify the Integration of Capabilities as They Are eloped Commercially Available Libraries Leverage Commercial Industry s Research and elopment Agile elopment Simplify elopment by Providing Flexibility at the Detailed Implementation Level

Agile elopment Definition Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between selforganizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement and encourages rapid and flexible response to change. The Agile Manifesto is based on 12 principles: Customer satisfaction by rapid delivery of useful software Welcome changing requirements, even late in development Working software is delivered frequently (weeks rather than months) Close cooperation between business people, the customer, and developers Projects are built around motivated individuals, who should be trusted Face-to-face conversation is the best form of communication (co-location) Working software is the principal measure of progress Sustainable development, able to maintain a constant pace Continuous attention to technical excellence and good design Simplicity the art of maximizing the amount of work not done is essential Self-organizing teams Regular adaptation to changing circumstances

System Agile/Traditional Engineering Process Overview Need/Opportunity Conceptual Identify Conceptual System Design elop/build System Specification Acceptance Production Release AGILE Waterfall Customer Baseline Business Requirements (BRR) Phase System Baseline System Requirements (SRR) Component / Application Baseline Preliminary Design (PDR) Iterative Cycle Design Baseline Critical Design (CDR) Readiness (TRR) Inception Elaboration Implementation Transition SRS IRS SDD Iteration Baseline Production Baseline Production Readiness (PRR) Customer Assessment Maintenance System Requirements (SRR) SRS IRS SDD 5

Agile elopment Process Initial Mapping of Requirements to Feature Sets An iteration implements one or more feature sets Inception Planning Requirement Definition Elaboration Req Analysis/ Feature Definition Concepts and Prototypes Implementation Planning Architecture Definition Implementation Transition System Integration Acceptance Maintenance System Requirements (SRR) Completed and ed Software Component at the End of Each Iteration Deliverable to the Customer without Further Modification

Benefits of Agile elopment Optimal Implementation Traditional Waterfall Defines the Implementation at CDR thereby Potentially Constraining the S/W eloper in the Use of Commercial Libraries or More Optimal Design Approaches Adaptable to Change The Iterative Approach Facilitates Change Late into the elopment Cycle without Impact Early Assessment of Product Features Each Iteration Provides a Completed Capability of the System that Can Be Demonstrated to the Customer Continuous ing ing Is Initiated at the End of Iteration 1 elopment and Continues without Interruption through the Nth Iteration thus Significantly Reducing the Final Integration and Acceptance Time.

Impacts of Agile elopment Functional Decomposition Feature Sets Represent Complete Capabilities that Once Built Become able Entities and Part of the Final Delivery without Modification Detailed Requirement Definition SRS Level Requirements Defined During elopment Based on Internal Interfaces, Optimal Use of Libraries, etc. Customer Inter-action Requires Commitment of Time from the Customer for Regular Involvement in the elopment and Process R21 R1 R4 R3 R2 R9 R10 R5 R7 R6 R32 System/Subsystem Level Requirements R1 R32 R2 R7 Feature Set 1 Complete Capability Complete Capability R1 R32 R2 R7 R10 R6 R4 R9 Feature Set 1 Feature Set 2 Iteration 1 Implementation Customer Involvement through elopment and R1.1 R1.2 R1.3 R1.4 Software Requirements Level Specification (SRS)

Impacts of Agile elopment Objectives of PDR and CDR The following are typical objectives of a PDR: Ensure that all system requirements have been allocated, the requirements are complete, and the flow down is adequate to verify system performance Show that the proposed design is expected to meet the functional and performance requirements Show sufficient maturity in the proposed design approach to proceed to final design Show that the design is verifiable and that the risks have been identified, characterized, and mitigated where appropriate The following are typical objectives of a CDR: Ensure that the "build-to" baseline contains detailed hardware and software specifications that can meet functional and performance requirements Ensure that the design has been satisfactorily audited by production, verification, operations, and other specialty engineering organizations Ensure that the production processes and controls are sufficient to proceed to the fabrication stage Establish that planned Quality Assurance (QA) activities will establish perceptive verification and screening processes for producing a quality product Verify that the final design fulfills the specifications established at PDR

Issues/Concerns Preliminary Design (PDR) and Critical Design (CDR) timing Traditional/Waterfall PDR/CDR occur before development starts Not consistent with the Agile model Lack of PDR/CDR limits the customers ability to understand the design and the architecture. Holding PDR/CDR review after all design is done in agile would be at the end of the development cycle also How to communicate requirements and design to a customer that is not present? Generate high-level designs, (PDR level) and review with the customer before the inception phase Create formal system engineering cycles and give the customer time to review/provide input Provide a light-weight way to show/discuss with customer (who may be remote) progress over an iteration.

Issues/Concerns What Documentation Needs to Be Generated and When? (IRS, IDD, SDD, SRS, SPS) Build Documentation as a Part of the elopment Process Documentation Accurately Reflects that System as Built Periodically provide requirement updates to the customer How Do I Get My Customer Involved in the Process? On-site Demonstrations Bi-weekly or Monthly Meetings

Initial Mapping of Requirements to Feature Sets Initial SRS Requirements at the Beginning or Each Iteration Solutions Periodic Demonstrations to Ensure Customer Satisfaction Inception Elaboration Implementation Transition Maintenance SE Planning Requirement Definition Concepts and Prototypes Req Analysis/ Feature Definition Implementation Planning Architecture Definition SE SE SE SE System Integration Acceptance Customer concurrence on the requirements implemented in the iteration and approval of SRS requirements for the next iteration Create Living Documentation by Updating Each Document at the End of an Iteration Resulting in the Documentation Being a True Representation of the System

Summary Agile elopment Provides a Cost Effective Means for Ensuring Customer Expectations Are Met Agile elopment Encourages Innovation by the eloper Tailoring of the Agile elopment Process Can Aid the Transition for the Traditional Waterfall to the Agile Methodology Creating an Initial Feature Set Baseline Defining an Initial Set of SRS Level Requirements at the Beginning of Each Iteration Creating Traditional Documentation But at Different Points in the elopment Timeline to Reflect the Agile elopment Approach Introducing Ways of Involving the Customer Throughout the elopment Process