Proposal: Application of Agile Software Development Process in xlpr ORNL- 2012/41412 November 2012

Similar documents
This document was prepared in conjunction with work accomplished under Contract No. DE-AC09-96SR18500 with the U. S. Department of Energy.

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

Evolutionary BPM. A New Process Methodology. Published: Oct. 17, Authors: Eli Stutz, Bruce Hardy

Agile Projects 7. Agile Project Management 21

What is a life cycle model?

Science Goals for the ARM Recovery Act Radars

The Production Cluster Construction Checklist

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

LLNL-TR SAVANT Status Report. Arden Dougan. November 6, 2009

Panel Session #4 Smart Grid Workforce Training and Education: Identifying the Industry Perspective

IRS: Implicit Radiation Solver Version 1.0 Benchmark Runs

LECTURE 1. SYSTEMS DEVELOPMENT

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

Y-12 EMBOS Medical Lab Interface Batch Loader

NEAMS Software Licensing, Release, and Distribution: Implications for FY2013 Work Package Planning

How To Model Software Development Life Cycle Models

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Testing of Kaonetics Devices at BNL

Early Fuel Cell Market Deployments: ARRA and Combined (IAA, DLA, ARRA)

Small Modular Nuclear Reactors: Parametric Modeling of Integrated Reactor Vessel Manufacturing Within A Factory Environment Volume 1

2-DFINITE ELEMENT CABLE & BOX IEMP ANALYSIS

Second Line of Defense Virtual Private Network Guidance for Deployed and New CAS Systems

Isolation of Battery Chargers Integrated Into Printed Circuit Boards

Software Development Methodologies

Independent Verification and Validation of SAPHIRE 8 Software Configuration Management Plan

WinMagic Encryption Software Installation and Configuration

Software Testing and Software Development Lifecycles

Situated Usability Testing for Security Systems

Independent Verification and Validation of SAPHIRE 8 Software Quality Assurance Plan

The Software Life Cycle. CSE 308: Software Engineering

Dynamic Vulnerability Assessment

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

Measurement of BET Surface Area on Silica Nanosprings

Nuclear Engineering Enrollments and Degrees Survey, 2014 Data

AGILE vs. WATERFALL METHODOLOGIES

Cloud-based Architecture Capabilities Summary Report

APPLIED SCIENCE COOPERATIVE AGREEMENT STANDARD OPERATING PROCEDURES FOR PTRs, GRANTS & TECHNOLOGY TRANSFER STAFF

How To Understand The Software Process

Synchro-Phasor Data Conditioning and Validation Project Phase 3, Task 1. Report on

Climate-Weather Modeling Studies Using a Prototype Global Cloud-System Resolving Model

NGNP Risk Management Database: A Model for Managing Risk

Software Project Models

LIMITATIONS ON HIGH DATA RATE OPTICAL FIBER TRAN-SMISSION SYSTEMS DUE TO TRANSMISSION IMPAIRMENT

Introduction to SOA governance and service lifecycle management.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Requesting Nodes, Processors, and Tasks in Moab

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

Alternative Development Methodologies

File System-Aware Job Scheduling with Moab

Nuclear Engineering Enrollments and Degrees Survey, 2013 Data

Template K Implementation Requirements Instructions for RFP Response RFP #

Development Methodologies Compared

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Asynchronous data change notification between database server and accelerator control systems

COMP 354 Introduction to Software Engineering

Agile Software Development Methodologies and Its Quality Assurance

DOCUMENT CONTROL AND CONDUCT OF OPERATIONS. S. K. Collinsand F. L. Meltzer Idaho National EngineeringLaboratory EG&G Idaho, Inc. Idaho Falls, ld 83415

Improving a Gripper End Effector

Optical Blade Position Tracking System Test

Drupal Automated Testing: Using Behat and Gherkin

Help for the Developers of Control System Cyber Security Standards

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

OG&E Demand Response

Software Development Life Cycle & Process Models

Building Analytics. Managed Services. Better Building Alliance Department of Energy April 17, 2015

A Systems Approach to HVAC Contractor Security

Risk D&D Rapid Prototype: Scenario Documentation and Analysis Tool

Laser Safety Audit and Inventory System Database

System Development Life Cycle Guide

Software Engineering. What is a system?

Unit I. Introduction

Classical Software Life Cycle Models

Y-12 National Security Complex

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

International Journal of Advance Research in Computer Science and Management Studies

Software Development Life Cycle (SDLC)

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

IDC Reengineering Phase 2 & 3 US Industry Standard Cost Estimate Summary

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Outage Notification. "Acknowledgment: This material is based upon work supported by the Department of Energy under Award Number DE-OE

Penetration Testing of Industrial Control Systems

Building Software in an Agile Manner

Report structure (guidelines) Report structure (guidelines)

How era Develops Software

Applying NQA-1 Requirements for Computer Software Used in Nuclear Facilities ASME 2014 Small Modular Reactors Symposium April 17, 2014

New Tools Using the Hardware Pertbrmaiihe... Monitor to Help Users Tune Programs on the Cray X-MP*

Wind Forecasting stlljectives for Utility Schedule and Energy Traders

Building CHAOS: an Operating System for Livermore Linux Clusters

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

Elite: A New Component-Based Software Development Model

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

how can I deliver better services to my customers and grow revenue?

Integrated Tools for Multifamily Green Asset Management. Energy Upgrade CA Web Portal Funding Finder Compass Portfolio Tracker Webinar May 22, 2012

Well Water Iron Removal Using Quantum DMI-65 Granular Filter Media

White Paper Take Control of Datacenter Infrastructure

Departamento de Informática Universidad de Valladolid Campus de Segovia TOPIC 6: INTRODUCTION TO SOFTWARE ENGINEERING

Distribution of Terminal Lung and Liver Dose Rates in United States Transuranium and Uranium Registries Registrants

Transcription:

Proposal: Application of Agile Software Development Process in xlpr ORNL- 2012/41412 November 2012 Prepared by Hilda B. Klasky Paul T. Williams B. Richard Bass

This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.

ORNL- 2012/41412 Computational Sciences and Engineering Division Proposal: Application of Agile Software Development Process in xlpr ORNL- 2012/4141 Hilda B. Klasky Paul T. Williams B. Richard Bass Date Published: September 2012 Prepared by OAK RIDGE NATIONAL LABORATORY Oak Ridge, Tennessee 37831-6283 Managed by UT- BATTELLE, LLC for the U.S. DEPARTMENT OF ENERGY under contract DE- AC05-00OR22725

Contents Introduction... 2 The problem: xlpr is following a Waterfall Software Development Process Type: the Spiral approach... 3 The proposed solution: follow an Agile Software Development Process type... 4 Proposed Deliverables... 5 Proposed Schedule... 5 How an Agile Approach will allowing managers to interrogate the system at any given time to determine the status of each module... 8 How to pull- up issues for a module on JIRA (LEAPOR module sample)... 9 Reporting in JIRA... 12 How does the Agile development approach comply with the ASME NQA- 1-2008 (including Addenda 2009) Quality Assurance Requirements for Nuclear Facility Applications?... 17 Annex 1 ASME NQA- 1-2008 (including Addenda 2009) Quality Assurance Requirements for Nuclear Facility Applications, Part I Requirement 3, Paragraph 800; Requirement 11, Paragraphs 100, 200, 400, 500, and 600; Part II, Subpart 2.7; and Part II, Subpart 2.14.... 18 Annex 2 Waterfall Model of Code Development Pros and Cons... 42 Page 1 of 47

Introduction Reflecting on what we have seen regarding of the xlpr team need to report progress to project management, and the current evolution of facts in which teams have started to write all sorts of code before formal approval of the long list of documents to be delivered, we feel the prevailing need to recommend that the xlpr software development process be modified for reasons outlined herein. In the following, we discuss the deficiencies of the current approach, and then present a proposed solution that addresses those deficiencies. We want to stress that our proposal to change the software development process in the xlpr project aims to excel on being: Results Oriented by building software prototypes extremely early in the development process as a response to the early requirements of the user. A series of prototypes or a series of modifications to the first prototype will gradually lead to the final software product, Increase Software Quality by handling changes and identifying issues early during the development, Focus on Customer Satisfaction by promoting communication between the team and the final customer through the project lifespan, Light-weight: there is less are fewer number of document deliverables and approvals of these deliverables are not cumbersome. Resources Saving: are achieved by removing overhead activities, time, and tasks, team members are focused on producing results. Maintain Team Morale by using a light weight process that will keep team members engaged and will show progress in their accomplishments. Motivation is very important to increase productivity. Allowing managers to interrogate collaborative tools at any given time to determine the status of each module by using the issue tracking system JIRA based on a relational database; xlpr team leaders and managers will be able to see module status automatically in the dashboard of the project. Complying with the ASME NQA-1-2008 (including Addenda 2009) Quality Assurance Requirements for Nuclear Facility Applications: Page 2 of 47

Part I a. Requirement 3, Paragraph 800; b. Requirement 11, Paragraphs 100, 200, 400, 500, and 600; Part II, Subpart 2.7; and Part II, Subpart 2.14, when applicable. The problem: xlpr is following a Waterfall Software Development Process Type: the Spiral approach We believe that the current xlpr SQA approach is guiding the xlpr team to follow what is generally termed a waterfall type software development model, in which each phase follows the next in sequence. The waterfall software development process (or model) is a sequential design process, often used in the early days of software development, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation, and Maintenance. The waterfall development model originated in the manufacturing and construction industries, which are highly-structured physical environments, where after-the-fact changes can be prohibitively costly, if not impossible. Since no formal software development methodologies existed in the early days of computing (the late 1950s), this hardware-oriented model was adapted for software development and eventually formalized into a generally accepted practice by around 1970. In the software industry today, the term waterfall is typically used to describe a flawed, nonworking (although still used) model for software development practice. (See a review of the pros and cons of the waterfall model at the end of these notes in Annex 2 Waterfall Model of Code Development Pros and Cons.) All of the software development processes that are based on the waterfall model include the expectation of having a constant approval process; the latter can prove to be very resourceconsuming. These types of development processes are by nature documentation- and plan-driven approaches, as captured in the following sequence: SRD->approval->SDD->approval->V&V->approval->Code->approval History has shown that projects using the waterfall software development processes usually run over budget, over time, and deliverables are partially achieved in the best-case scenarios. To back Page 3 of 47

up this statement we are including a recent research study performed at the University of Southampton, School of Electronics and Computer Science. The reason for these deficiencies is that the team focuses on generating the documentation and getting it through the approval process. The effort to generate of the final product can be diluted and, many times, never completed. By the time part of the documentation is complete, the project resources have been exhausted. And these facts can already be observed in the development teams of xlpr, who are naturally moving to write code before completing and formal approval of their list of documents, as required by to the Spiral approach. The proposed solution: follow an Agile Software Development Process type To counter deficiencies with the waterfall type process (the Spiral approach, in the case of xlpr), software development groups evolved an alternative that serves to decrease the time spent in the development cycle. The sequential phases were mostly removed and only those essential steps that produce the expected deliverables, i.e., dialogue, coding and testing, were retained. This more streamlined approach is identified in the industry as the Agile software development process. Per our software development experience at ORNL, we propose moving away from the current Spiral approach and adopting this Agile process for the xlpr project. The Agile software development process is a very lightweight process that employs short iteration cycles; actively involves users to establish, prioritize, and verify requirements; and relies on tacit knowledge within a team, as opposed to documentation. This process takes into account the realization that most users do not have a fully-formed idea about their needs, and the problem of missing and changing requirements, recognizing that most changes in requirements occur within a project s life span. The Agile process suggests building prototypes extremely early in the development process as a response to the early requirements of the user. A series of prototypes or a series of modifications to the first prototype will gradually lead to the final product. Agile is meant to embody short Page 4 of 47

iterations, where the system is improved in each cycle. In addition, development proceeds stepby-step with the user, as insight into the user s own environment and needs is accumulated. The sequence of steps in the Agile approach consists of the following: implement->test->review->specify->redesign/refactor->re-implement. Again, starting with implementing the system, the emphasis here is on Agile development. Thus, the team focus is results oriented, not process oriented. In the following sections, we propose detail a proposal for deliverables schedule that we believe will help alleviate some of the problems highlighted in the first xlpr QA internal audit. Proposed Deliverables Our proposed change to an Agile software development process calls for only two deliverables from the xlpr groups that develop software: 1) Deliverable Report: A draft report shall be submitted for team review one month before the EPRI QA audit scheduled during June 2013. The final report must be completed by the end of the project. Below, an outline of the report is suggested. a. Section 1. Introduction b. Section 2. List of Requirements from JIRA c. Section 3. Overall architectural design showing data flow d. Section 4. List of test cases from JIRA e. Section 5. Conclusions and lessons learned 2) Source code/executable every 6 8 weeks of development cycle. Proposed Schedule Table 1 presents a proposed schedule which aims to help the integration of all of the modules by early 2013. It shows that each development team will have a short development cycle of 6 to 8 weeks max. In parallel, one deliverable document report will be prepared. Teams are expected to: Page 5 of 47

enter (1) requirements and (2) test cases into the JIRA system perform the tasks in an Agile fashion by the sub-groups maintain a documented trace of the evolution of the requirements/tests/bugs/improvements, as well as resolution of the latter, in the JIRA system for the benefit of the team review the test results, modify or add new requirements/test cases from the lessons learned in previous iterations present a list of requirements/bugs/improvements (taken from JIRA) as a release note at the end of each development cycle approve a list of requirements/bugs/improvements (taken from JIRA) to be implemented in the next iteration (deployment) Page 6 of 47