Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development



Similar documents
Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

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

When is Agile the Best Project Management Method? Lana Tylka

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

How To Plan An Agile Project

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

Adopting Agile Approaches for the Enterprise

Scrum vs. Kanban vs. Scrumban

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Agile Software Engineering Practice to Improve Project Success

HP Application Lifecycle Management

Introduction to Agile and Scrum

What is meant by the term, Lean Software Development? November 2014

2015 IBM Continuous Engineering Open Labs Target to better LEARNING

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

How To Integrate Software And Systems

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Capstone Agile Model (CAM)

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

Program & Portfolio! Management using! Kanban! Copyright 2013 Davisbase Consulting. Limited Display License Provided to ASPE

Agile support with Kanban some tips and tricks By Tomas Björkholm

The Agile Manifesto is based on 12 principles:

VISUAL REQUIREMENTS MANAGEMENT WITH KANBAN. Mahesh Singh Co-founder/ Sr. VP Product, Digite, Inc.

Managing Agile Projects in TestTrack GUIDE

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

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

Scrum and Kanban 101

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

Software Development Life Cycle (SDLC)

Solutions for Quality Management in a Agile and Mobile World

Agile Scrum Workshop

MTAT Software Engineering

Agile and lean methods for managing application development process

Basic Trends of Modern Software Development

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Scaling Agile with the Lessons of Lean Product Development Flow Copyright 2012 Net Objectives, Inc. All Rights Reserved

Agile & PMI Project Management Mapping MAVERIC S POINT OF VIEW Vol. 7

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Agile and lean methods for managing application development process

Agile in a Safety Critical world

agenda AGILE AT SCALE

Agile Project Management and Agile Practices Training; with a Scrum Project that you will do.

D25-2. Agile and Scrum Introduction

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

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

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

Applying 4+1 View Architecture with UML 2. White Paper

6 Oct Agile: Creating a Culture of Quality, Value and Feedback. Agile. Creating a Culture of Quality, Value and Feedback.

To introduce software process models To describe three generic process models and when they may be used

Chap 1. Introduction to Software Architecture

Chapter 6. Iteration 0: Preparing for the First Iteration

Lean Software Development and Kanban

Agile Extension to the BABOK Guide

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

Whitepaper: How to Add Security Requirements into Different Development Processes. Copyright 2013 SD Elements. All rights reserved.

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Enhancing The ALM Experience

How Product Management Must Change To Enable the Agile Enterprise

Agile Project Management with Scrum

Agile Metrics. It s Not All That Complicated

Project Lifecycle Management (PLM)

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

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

Lean Agile Scrum Business Value Development and Delivery using Agility. Brenden McGlinchey Software Done Right, Inc.

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

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

Introduction to Agile Software Development Process. Software Development Life Cycles

Software Development Methodologies

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

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

Comparing Scrum And CMMI

How Silk Central brings flexibility to agile development

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

Benefits of Test Automation for Agile Testing

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

Agile Software Development and Service Science

Supporting Workflow Overview. CSC532 Fall06

Agile Development Overview

Software Development Process

Classical Software Life Cycle Models

Scrum in a Large Project Theory and Practice

A Capability Maturity Model (CMM)

Agile Software Development

Agile Software Development Methodologies and Its Quality Assurance

Agile Model-Based Systems Engineering (ambse)

Kanban. Marek Majchrzak, Andrzej Bednarz Wrocław,

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

AGILE & SCRUM. Revised 9/29/2015

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

Building Software in an Agile Manner

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

Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012

Transcription:

Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development SATURN 2012 May 9 th, 2012 Esther Johnson and Chris Williams Northrop Grumman Aerospace Systems, Software Engineering

2 Overview Why Traditional Engineering Processes didn t work First Agile Project Overview Pros and Cons Second Agile Project Overview Why we felt change was needed Kanban Introduction Our Hybrid Model Driven Development and Agile Lifecycle Summary

Traditional Engineering Process Didn t Fit Systems Design scheduled, defined and completed up front Document Driven Little time to incorporate Lessons Learned Limited collaboration and feedback SYSTEM ARCHITECTURE & REQUIREMENTS DEFINITION Validation OPERATIONAL V&V (FCA, PCA) LBTS and Shipboard REQUIREMENTS ANALSYIS / VALIDATION SSRD/IRS/RTR FUNCTIONAL ANALYSIS & VERIFICATION HW RS/ICD SW/SRS,IDS Verification HARDWARE/SOFTWARE PV&V HW/Cabinets INTEGRATED HARDWARE AND SOFTWARE FACTORY ACCEPTANCE V&V SW/Programs SYNTHESIS & DESIGN HW DS/ICD SW/SDD,IDD HARDWARE/SOFTWARE INTEGRATION, VERIFICATION, & VALIDATION HW/ Assemblies SW/Builds DESIGN VERIFICATION HW/ s SW/ Modules, Data UNIT VERIFICATION & VALIDATION HW/ SW/Units s Modules, Data ELEMENT FABRICATION OR CODING HW/ SW/ s Modules, Data System Design System Integration & Test 3 Time

Project One Overview Integration project of 3 existing software packages (multiple languages and OSs) Contract Funded IR&D (CRAD) 18 month program First Attempt At Agile with traditional Scrum Planning Poker 2 week iterations Daily stand-ups Retrospectives Team Composition 4 Software 1 Chief Engineer (CE) Product Backlog Sprint Backlog Daily Scrum Meeting 24 Hours Potentially Shippable Product Increment and Sprint Retrospective 4

5 Positives of Agile Daily Scrums helped with communication Kept priorities from changing(limited to 2 week chunks) Quick turn around on feedback cycles from CE Able to make controlled changes when new work popped-up during the middle of the program. Added stories to backlog and prioritized accordingly Functioning software at the end of release one which worked out well since release two got canceled Well-groomed backlog of stories to use as future reference since the second release was canceled

6 Short falls of first attempt Difficulty to get stories done-done Modeling, development, testing, and deployment in lab Minimal Architecture documentation for legacy reuse products No enforcement of architecture on software developers Team wasn't cross functional and we ran in to bottlenecks due to the nature of the integration work Testing was lacking No test automation on legacy systems Major component was a Windows OpenGL based GUI

7 Project Two Overview Follow-on to the Project One contract Additional Contract Requirements required more rigor than in previous Agile project Technical Requirements Document Verification Cross-Reference Matrix (VCRM) Decided to modify the process since our previous agile approach wasn't working as well as desired Short falls we wanted to address More structured decomposition of the statement of work to drive user story creation Liked the minimal modeling work done during Project One but need to make it more of an explicit task for the developers to do Need for documented tests for each story written before development on the story started since that was lacking during Project One Team Composition 4 Software 1 CE 2 Systems 1 Test

Quick Introduction to Kanban Method Three Core Principles Start with what you do now Agree to pursue incremental evolutionary change Initially, respect current roles, job titles and responsibilities Five Core Practices Visualize Limit Work In Progress (WIP) Manage Flow Make Process Policies Explicit Improve Collaboratively Pri. Model Define Code SW System Accept Tests Test Test 8 Reference: http://agilemanagement.net/index.php/blog/why_kanban/

MDD and Kanban to the rescue Slimmed down a version of the model driven development architecture handbook that was in development Used Kanban to explicitly define the stages of the software development life cycle Limit our work in progress at any one time Use Rally to manage our Agile lifecycle Rhapsody for Modeling and DOORS for requirements, but any UML model and requirement tool could have been used «Actor» Global Hawk Block 40 CRC BMC2 Prototype Interoperate with External Tactical Systems «Actor» Joint Stars Pri. Model Define Code SW System Accept Tests Test Test Perform Exploitation «Actor» Store Data GmtiEnterprise Air Force DCGS «Actor» Collaborate with Virtual Crew «Actor» CRC BMC2 Operator VirtualCrew 9

Hybrid Model Driven Development and Agile Lifecycle Overview Leverage the flexibility of an agile development lifecycle with Model Driven concepts Clearly Defined entry/exit criteria for each process step Focus on model/design and defining test criteria before writing code Provides a better up front understanding on the impacts to the architecture Test criteria follow design and expected outcomes understood 10 Hybrid Approach for Agile, Model-Driven, and Test-Driven Development

Architecture Modeling Process Process composed of four phases (depicted as Swim Lanes on Activity Diagram) 1. Requirements Development & Analysis 2. Functional Analysis (Major Design) 3. Detailed Design (Sub- Design) 4. Software Development Swim Lane 1 Swim Lane 2 Swim Lane 3 Swim Lane 4 11

Requirements Development & Analysis (SL 1) Focus for first iteration of project Develop an understanding of Customer Requirements Develop System Level Operational Architecture Models Link Requirements to Architecture Artifacts Get architectural buy-in from stakeholders 12

Features/Requirements Product Owner (Customer) needs/wants drive the system being developed Often changes features and priority every iteration Maintain Traceability of Use Cases/User Stories back to customer Features/Requirements as system design evolves Track Definition of Done for each User Story Define how tests map to User Stories and up to Features/Requirements Technical Requirement Document (TRD) System Subsystem Specification (SSS) Maintain Requirement Traceability as System Evolves 13

Functional Analysis (Major Design) (SL 2) Figure out which existing software components to reuse Determine what new functionality requires new components Model s focusing on needed functionality and interfaces Model behavior through Use Cases Focus Sequence Diagrams per Use Case on component interactions 14

Common Model For Entire Project Lifecycle Major Functional Analysis Structured View Packages Deployment Views Sub Functional Analysis Structured View Packages Data Models Swim Lane 1 Use Case Packages Swim Lane 2 Use Case Packages Swim Lane 3 Use Case Packages Architecture Models and Use Cases defined prior development, and updated as needed during development cycles

SL2.3 Use Case Artifact Attributes Description: This use case describes Driving Requirements: [SSS-###] The Software shall process [SSS-###] The Software shall process [SSS-###] The Software shall process Preconditions: The Software is in XX State The Software is configured to do xyz. Trigger: The Software receives the xevent Post-conditions: The software does Y

17 Detailed Design (Sub- Design) and Software Development (SL 3 & SL 4) Detailed Design Swim Lane 3 Define SW CSC Architecture and Behavior Software Development - Swim Lane 4 produces well designed software that is fully tested Test Criteria Developed in accordance with design before coding starts Software and SEIT Integration Testing Approved Software added to Release Cycle Development Process (SL 3 and 4) is managed using a Kanban process in Rally Tool Scheduling system enables prioritized workflow Right capabilities at right time User Stories flow through in prioritized order beginning with Design and Model(SL 3) Work In Progress (WIP) limits in place to ensure focus on moving stories through Rally Tool work queues used show potential bottlenecks Two week iterations will be used to schedule SEIT testing and status reporting All Users Stories flow through both Swim Lanes 3 and 4 Existing functionality flows through at a faster pace Design is verified only update system model as required Document Test Criteria

Detailed Design (Sub- Design) Develop and Prioritize User Stories Model Sub-s Develop Software Deployment Model Sub- behavior through Use Cases Focus Sequence Diagrams per Use Case on Sub- interactions 18

Key Architecture Artifacts Class Diagrams SW & HW Architecture prtmessagingservices irtpublish prtsubscriber irtsubscriber pintegration iservices pcontrol icontrol Major1 Major 1 is responsible for the management and execution of major activities. To include managing, scheduling and tasking support options. One function is to track the status of the assets available for planning including rooms and hardware assets and assets that diverted for a higher priority task. Another schedule():void complete ():void Assign():void... managerooms():void monitorhardw are():void monitorrooms():void divert():void 1 Service pssl issl pmap imap imonitoring Associations Show pmessageservices ipublish Direct Interfaces to other s Description of CI Responsibilities Ports Define Services Produced and Consumed Operations Describe Functions/Services Behavioral Diagrams Describe High Level System Behavior Exercise System Interfaces and Validate Behavior Activity1 Activity2 Activity34 Activity34 Activity34 DataObject1 Activity3 Activity34 Activity34 Activity34 Activity34 :1 ::2 :3 :4 ::5 performmetadataservices(querym etadata) (peformservices(string) performoperations(sql) returnresults(metadata) ::6 file=performfileservices(imagefilehandle) updatedisplay() Data Modeling (DataObjects) palertservices pmonitor imonitoring «Usage» «Persistent» AlertDefinition topicname:string topicid:int description:string ialertingservices pcontrol icontrol AlertingServices palertclient ialertclient «Usage» «Persistent» «Usage» AlertAcknow ledgement acktime:timestamp «Persistent» acknow ledgement:... Alert persistence:boolean acknow ledgepolicy:int cancelpolicy:int applicatondata:string 11 130 Dependencies ID InfoObjects Used by each Major DataObject Classes Provide Description and Attributes Hardware Deployment Diagrams Node Diagrams Show SW Deployed to HW ServerA Compon 19

Prioritized Backlog of User Stories Assess User Story sizes, keeping in mind Risk and Difficulty Prioritize which stories to do first, making sure any dependencies are accounted for Chief Engineer and Product Owner review and adjust prioritized backlog as needed Backlog Prioritized Model Define Code SW System Accept Tests Test Test User Story User Story 1 Size 2 Size User Story User Story 3 4 Size Size User Story 1 Size User Story 2 Size User Story 4 Size User Story 3 Size User Story 3 Size User Story 1 Size User Story User Story 2 2 Size Size 20 Small 1, Medium 2, Large 3, Extra Large - 4

Software Development (SL 4) Define Acceptance Tests Develop Software Based on Models Test If the test fails, fix the code and update model if needed Accept the User Story Add functionality to Release 21

Kanban Enabled Visibility Of Work In Progress 22

User Story Development Status Use Cases already accepted 23

Activity1 Architecture Metrics Class Diagrams SW & HW Architecture prtmessagingservices irtpublish prtsubscriber irtsubscriber pintegration iservices pcontrol icontrol Major1 Major 1 is responsible for the management and execution of major activities. To include managing, scheduling and tasking support options. One function is to track the status of the assets available for planning including rooms and hardware assets and assets that diverted for a higher priority task. Another schedule():void complete ():void Assign():void... managerooms():void monitorhardw are():void monitorrooms():void divert():void pssl issl pmap imap pmessageservices ipublish Description of CI Responsibilities Ports Define Services Produced and Consumed Describe High Level System Behavior Behavioral Diagrams DataObject1 Activity2 Activity3 1 imonitoring Service Operations Describe Functions/Services Activity Diagrams 8 24 Associations Show Direct Interfaces to other s Class Diagrams 142 CSCI Classes 12 CSCI Operations 133 HWCI Classes 3 CSC Classes 58 CSC Operations 271 11 130 58 253 Release Delta Exercise System Interfaces and Validate Behavior :1 ::2 :3 performmetadataservices(querym etadata) returnresults(metadata) file=performfileservices(imagefilehandle) updatedisplay() :4 (peformservices(string) performoperations(sql) ::5 ::6 Sequence Diagrams 233 217

25 Agile Reporting Metrics Report velocity every two weeks and generate prediction estimates Average best 2 of 4 Average worst 2 of 4 Average last 4 Other Kanban specific metrics (throughput and cycle-time based on story size) exist but weren t used due to tool limitations Used metrics as input to EVMS

26 Keeping an agile team well-oiled Gelling as a team, the other things that helped us get the job done.. Lovebug donuts... Red Velvet Chocolate Covered Cherry Maple and Bacon Working in common area vs. cubes Had predefined days where the team had to be in the lab working Reward the accomplishments When everything is going wrong, regroup, reassess, and have some pizza

27 Lessons we Learned, things we would change next time... How to better take the sequence threads from Swim Lane 2 to User Stories Agile engineering practices (automated acceptance/unit testing, pair programming, continuous integration) are just as important, if not more so, than the development lifecycle Testing, Testing, Testing... If you have a test person on your team, make sure they understand software and bring them up to speed! Need training for the dev team on how to better test One approach was to make a different member of the team responsible for writing tests every two weeks Make sure the SEIT lead is involved and not in and out when convenient Keep team engaged when outside programs/responsibilities come calling (the shiny ball effect)

28 Benefits from Incorporating Agile, MDD, and Kanban Concepts Success requires collaboration Linked Data (I.e. Requirements -> Architecture -> User Stories -> Code) increases collaboration and provides records of decisions made User story traces back to Use Case, Architecture and then to requirement User stories may be systems engineering tasks to do trades, mitigate risks, or validate decisions Designing Tests in early to avoid finding problems later in the project (early & cheaper defect elimination)

Summary Why Traditional Engineering Processes didn t work First Agile Project Overview Pros and Cons Second Agile Project Overview Why we felt change was needed Kanban Introduction Our Hybrid Model Driven Development and Agile Lifecycle Summary 29 Build Better, Cheaper, Faster using Agile and MDD Reliable Software that s documented, modeled, and supportable for the entire Product Lifecycle

Questions? 30