How To Develop Software



Similar documents
Agile Project Management with Scrum

Sometimes: 16 % Often: 13 % Always: 7 %

Agile Projects 7. Agile Project Management 21

Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.

Agile Project Management By Mark C. Layton

Agile Software Development

2015 IBM Continuous Engineering Open Labs Target to better LEARNING

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Developing Business Architecture with TOGAF

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Software Requirements and Specification

(Refer Slide Time: 01:52)

Atomate Development Process. Quick Guide

An Introduction to Agile Performance Management

The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game. July Developed and sustained by Ken Schwaber and Jeff Sutherland

Traditional requirements

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

Introduction to Agile and Scrum

Balancing the Hybrid Development Process. The role of the Business Analyst

Agile Software Engineering Practice to Improve Project Success

Agile Systems Engineering: What is it and What Have We Learned?

Nova Software Quality Assurance Process

When is Agile the Best Project Management Method? Lana Tylka

CMS XLC Guidelines for Agile Projects

Product Development: From Conception to Execution. Slide 1

System Requirements Specification (SRS) (Subsystem and Version #)

System development lifecycle waterfall model

The 10 Knowledge Areas & ITTOs

Defining Agile SE. some collateral damage. Lockheed Martin IS&GS, Senior Manager

Engineering a EIA - 632

Applying Agile Project Management to a Customized Moodle Implementation

Introduction to OpenUP (Open Unified Process)

Technical Writing - A Review of Agile Software Development Services

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

Software processes that are:

RT 24 - Architecture, Modeling & Simulation, and Software Design

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

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

DSDM Case Study. An Agile Approach to Software Systems Development for the Highways Agency

Terrace Consulting Services

Truly Managing a Project and Keeping Sane While Wrestling Elegantly With PMBOK, Scrum and CMMI (Together or Any Combination)

1. Backup and Recovery Policy

COMMONWEALTH OF MASSACHUSETTS EXECUTIVE OFFICE OF HEALTH AND HUMAN SERVICES

SWX: The Software Extension to the PMBOK Guide for Project Management

ACP Exam Prep Plus Desk Reference including the Project Management Agile Body of Knowledge TM (PMABOK TM )

Course Title: Planning and Managing Agile Projects

Building Software in an Agile Manner

SECC Agile Foundation Certificate Examination Handbook

Project Management and Scrum A Side by Side Comparison by Anne Loeser, October 2006

Business Process Driven SOA using BPMN and BPEL

Software Development Process

A Comparison between Five Models of Software Engineering

THE AGILE WATERFALL MIX DELIVERING SUCCESSFUL PROGRAMS INVOLVING MULTIPLE ORGANIZATIONS

Agile So)ware Development

Comparing Plan-Driven and Agile Project Approaches

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

International University of Monaco 27/04/ :55 - Page 1. Monday 30/04 Tuesday 01/05 Wednesday 02/05 Thursday 03/05 Friday 04/05 Saturday 05/05

International University of Monaco 21/05/ :01 - Page 1. Monday 30/04 Tuesday 01/05 Wednesday 02/05 Thursday 03/05 Friday 04/05 Saturday 05/05

Evolving the Enterprise Software Configuration Management Model

THE PROJECT MANAGEMENT KNOWLEDGE AREAS

The Software Life Cycle. CSE 308: Software Engineering

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Marketing Project Management 101

Bridging the Gap: Traditional to Agile Project Management. I. S. Parente 1. Susan Parente, PMP, PMI ACP, CISSP, PMI RMP, ITIL, MSEM;

Software Development Methodology Development Process Aress

SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

ScrumMaster Certification Workshop: Preparatory Reading

LEADERSHIP DEVELOPMENT PROGRAMME

Lean vs. Agile similarities and differences Created by Stephen Barkar -

Scrum vs. Kanban vs. Scrumban

Agile Project Management Controls

Agile Project Management. Jan Pool NioCAD University of Stellenbosch 16 April 2008

2015 Defense Health Information Technology Symposium Implementation of Agile SCRUM Software Development Methodology

Agile Development Overview

Agile Software Development. Mohsen Afsharchi

CACI Cloud Consulting Services

How To Plan An Agile Project

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Academic Calendar for Faculty

Alternative Development Methodologies

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Information Technology Services Project Management Office Operations Guide

OMG SOA Workshop - Burlingame Oct 16-19, 2006 Integrating BPM and SOA Using MDA A Case Study

Facilitated By: Ken M. Shaurette, CISSP, CISA, CISM, CRISC FIPCO Director IT Services

Agile Scrum Foundation Training

Scale agile throughout the enterprise A PwC point of view

Project Management for Everyone

Scrum Guidelines. v W W W. S C R U M D E S K. C O M

The Agile Manifesto is based on 12 principles:

SOA + BPM = Agile Integrated Tax Systems. Hemant Sharma CTO, State and Local Government

Transcription:

Agile Systems Engineering Approach to Software Project Development 1 Chris Ritter, Daniel Hettema, and Steven H. Dam, Ph.D., ESEP, SPEC Innovations, 571-485-7807 chris.ritter@specinnovations.com October 2013

Overview What is Agile? How is agile development applied to software? What is the difference between Systems Engineering and Software Engineering? What lessons from Agile make sense to apply to systems engineering? Summary 2

What is Agile? See http://agilemanifesto.org/ Time-boxed iterative approach Incremental Self-organizing, cross-functional teams Adaptive planning Rapid and flexible response to change 3 We have used many names for this over the years: build a little, test a little and extreme programming to name a couple

How is Agile Applied to Software Development? Many techniques have been derived (e.g., Kaisen, Scrum) But does this kind of software development approach translate well into the DoD/NASA world where software makes life and death decisions? From http://geekandpoke.typepad.com/geekand poke/2011/12/agile-manifesto.html 4

Internal Lessons Learned 2013 Systems and Proposal Engineering Company. All Rights Reserved SPEC s Agile Software Production Process Used for Commercial Software Development User Feedback (anytime from Features Tracker webpage) Baseline Functional Requirements Monday Week 1 Plan & Evaluate Priorities Tuesday Week 1 Analysis & Design Wednesday Week 1 to Wednesday Week 2 Coding (New Features/Bug Fixes) & Unit/Developmental Testing (Local Host) SPEC Innovations Middle-Out MBSE Process Bi-Weekly Sprint Software Production Cycle Friday Late PM Week 2 Friday PM Week 2 Friday AM Week 2 Thursday Week 2 New Version Available to Users Deploy to Cloud Site Final OT & Document Updates Final fixes (if necessary) and review Operational Test (Cloud Test Site) Innoslate SLOC 370k 5 We use a small, co-located team who went to school together and have worked together many years

DoD Software Systems Characterized by 6 Millions of lines of code Much of it using older software languages Real-time Standards-based Many, many reviews Many, conflicting requirements from many, varied stakeholders All driven by a very non-agile acquisition system

What Does This Mean to DoD? Agile clearly can be applied in non-mission critical activities, for example: Websites Specialized analytical tools Commercial-like applications (although it would be better usually to just use COTS) It may be applicable to mission-critical software, but only when it s functional requirements are well-defined and the contracting environment allows for flexibility 7

What Is the Difference between Systems Engineering and Software Engineering? Systems Engineering Capabilities-based Decomposition to many levels Must support all aspects of the lifecycle Hardware SE requires measure twice, cut once approach Software Engineering Needs to have welldefined functional requirements Verifiable Clear Concise Code can be executed quickly 8

Is There Such a Thing as Agile SE? Many people are trying to apply the Agile principles to SE Many forums on this subject (see LinkedIn) How have we done this? 9

We Focus on a Middle-Out Process Requirements Analysis System Analysis and Control Best Use: Classical SE Functional Analysis and Allocation Adapted from EIA-632 The middle-out approach has been proven on a variety of projects Best Use: Architecture Development (To-Be) Synthesis 10 Best Use: Reverse Engineering (As-Is)

Middle-Out Timeline Requirements Analysis 1. Capture and Analyze Related Artifacts 2. Identify Assumptions 5. Develop the Operational Context Diagram Functional Analysis Synthesis Can be executed in as little as two weeks 6. Develop Operational Scenarios 4. Capture Constraints 7. Derive Functional Behavior 3. Identify Existing/Planned Systems 8. Derive Assets 9. Allocate Actions to Assets 10. Prepare Interface Diagrams 12. Perform Dynamic Analysis 14. Provide Options 11. Define Resources, Error Detection & Recovery System Analysis and Control 15. Conduct Trade-off Analyses 13. Develop Operational Demonstration Master Plan 16. Generate Operational and System Architecture Graphics, Briefings and Reports 11 Time Originally developed to support ACTDs in the 1990s

Agile Architecture Development as Well 1. Capture and Analyze Related Artifacts Functional Analysis 2. Identify Assumptions DIV-1 OV-4 CV-1 AV-1 CV-2 5. Develop the Operational Context Diagram Synthesis Draft OV-1 DIV-2 6. Develop Operational Scenarios OV-2 CONOPS System Analysis 7. Derive Functional Behavior OV-3 and Control OV-5 CV-3 8. Derive Assets SV-1 SV-6 SV-5 SV-8 SV-9 9. Allocate Actions SV-4 to Assets DIV-3 CV-4 PV-1 4. Capture Constraints StdV-1 StdV-2 10. Prepare Interface Diagrams SV-2 AV-1 SV-3 CV-5 3. Identify Existing/Planned Systems 14. Provide CV-6 Options PV-2 OV-6 SV-10 PV-3 12. Perform Dynamic Analysis SV-7 CV-7 AV-2 11. Define Resources, Error Detection & Recovery 15. Conduct Trade-off Analyses 13. Develop Operational Demonstration Master Plan 16. Generate Operational and System Architecture Graphics, Briefings and Reports Time Requirements Analysis 12 Fits with DoD requirements

What Lessons from Agile Make Sense to Apply to Systems Engineering? Individuals and interactions over processes and tools However, you need to apply a process for repeatability and tools to capture the information Working software (design) over comprehensive documentation Implies MBSE with simulation Customer collaboration over contract negotiation Need to work better as a Government-Contractor team Responding to change over following a plan Need flexibility in the SOW and deliverables to make this work Implies CPFF or T&M? 13

Summary Agile is the latest buzzword for something we have been trying to do for decades The problem really comes from people being inflexible and suspicious of each other A measure of trust is needed to actually improve the situation 14