• No results found

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
31
0
0

Loading.... (view fulltext now)

Full text

(1)

Don't leave your

Architecture Behind -

Kanban-enabled Model

Driven Software

Development

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

(3)

Traditional Engineering Process Didn’t Fit

System Design

System Integration & Test

SYSTEM ARCHITECTURE & REQUIREMENTS DEFINITION

REQUIREMENTS ANALSYIS / VALIDATION

SSRD/IRS/RTR

FUNCTIONAL ANALYSIS & VERIFICATION

HW RS/ICD SW/SRS,IDS

SYNTHESIS & DESIGN

HW DS/ICD SW/SDD,IDD

DESIGN VERIFICATION

HW/ SW/

Components Modules, Data

ELEMENT FABRICATION OR CODING

HW/ SW/

Components Modules, Data

UNIT VERIFICATION & VALIDATION

HW/ SW/Units

Components Modules, Data

HARDWARE/SOFTWARE INTEGRATION, VERIFICATION, & VALIDATION

HW/ Assemblies SW/Builds

HARDWARE/SOFTWARE PV&V

HW/Cabinets SW/Programs

INTEGRATED HARDWARE AND SOFTWARE FACTORY

ACCEPTANCE V&V OPERATIONAL V&V (FCA, PCA) LBTS and Shipboard

Validation

Verification

• Systems Design scheduled, defined and completed up front

• Document Driven

• Little time to incorporate Lessons Learned

• Limited collaboration and feedback

(4)

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)

24 Hours

Product

Backlog

Sprint

Backlog

Daily Scrum

Meeting

Potentially

Shippable

Product

Increment

and

Sprint

Retrospective

(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

(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

(8)

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

(9)

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

Pri. Model Define Code SW System Accept

Tests Test Test

Globa l Ha w k Block 40 «Actor» Globa l Ha w k Block 40 «Actor» Globa l Ha w k Block 40 «Actor» Air Force DCGS «Actor» Air Force DCGS «Actor» Air Force DCGS «Actor» Joint Stars «Actor» Joint Stars «Actor» Joint Stars «Actor» CRC BMC2 Prototype Interoperate with External Tactical Systems Perform Exploitation

Collaborate with Virtual Crew Store Data CRC BM C2 Ope rator «Actor» CRC BM C2 Ope rator «Actor» CRC BM C2 Ope rator «Actor» VirtualCre w «Actor» VirtualCre w «Actor» VirtualCre w «Actor» GmtiEnterprise GmtiEnterprise

(10)

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

(11)

Process composed of four phases

(depicted as ‘Swim Lanes’ on Activity Diagram)

1. Requirements Development & Analysis

2. Functional Analysis (Major Component Design)

3. Detailed Design (Sub-Component Design)

4. Software Development

Swim Lane 1

Swim Lane 2

Swim Lane 3

Swim Lane 4

(12)

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

(13)

Features/Requirements…

Maintain Requirement Traceability as System Evolves

• 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)

(14)

Functional Analysis (Major Component

Design) (SL 2)

•Figure out which existing software components to reuse

•Determine what new functionality requires new components

•Model Components focusing on needed functionality and interfaces

•Model Component behavior through Use Cases

(15)

Common Model For Entire Project Lifecycle

Architecture Models and Use Cases defined prior development, and updated as needed

during development cycles

Swim Lane 1 Use

Case Packages

Swim Lane 2 Use

Case Packages

Swim Lane 3 Use

Case Packages

Major Component

Functional Analysis

Structured View

Packages

SubComponent

Functional Analysis

Structured View

Packages

Deployment

Views

Data Models

(16)

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:

(17)

Detailed Design (Sub-Component 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

(18)

Detailed Design (Sub-Component Design)

•Develop and Prioritize User Stories

•Model Sub-Components

•Develop Software Deployment

•Model Sub-Component behavior through Use Cases

(19)

Ports Define Services

Produced and

Consumed

Operations Describe

Functions/Services

Description of CI

Responsibilities

Exercise System

Interfaces and

Validate Behavior

Describe High Level

System Behavior

Class Diagrams

SW & HW Architecture

Behavioral Diagrams

Key Architecture Artifacts

130 11

Data Modeling

(DataObjects)

Dependencies ID

InfoObjects Used

by each Major

Component

DataObject Classes

Provide Description

and Attributes

Hardware Deployment

Diagrams

Node Diagrams

Show SW Deployed

to HW

M ajorComponent1 «Com ponent» schedule():void complete ():void Assign():void... manageRooms():void monitorHardw are():void monitorRooms():void divert():void

Major Component 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

· · · iServices pIntegration iMap pMap iSSL pSSL iPublish pMessageServices iRTSubscriber pRTSubscriber iRTPublish pRTMessagingServices iControl pControl Service «Component» iMonitoring 1

Associations Show

Direct Interfaces to

other Components

::Component6 :Component4 performOperations(sql) :Component3 (peformServices(string) ::Component5 ::Component2 :Component1

performMetaDataServic es(Q ueryM et adat a)

file=performFileServices(imageFileHandle) updateDisplay() returnResults(MetaData) Activity1 Activity2 Activity3 DataObject1 Activity34 Activity34 Activity34 Activity34 Activity34 Activity34 Activity34 ServerA Compon Component Component Component Component Component Component Component Component Component Component Component Component Component Component Component Component Component Component Component Alert «Persistent» persistence:boolean acknow ledgePolicy:int cancelPolicy:int applicatonData:String AlertDefinition «Persistent» topicName:String topicID:int description:String AlertAcknow ledgement «Persistent» ackTime:TimeStamp acknow ledgement:... AlertingServices «Component» iAlertClient pAlertClient iMonitoring pMonitor iControl pControl iAlertingServices pAlertServices «Usage» «Usage» «Usage»

(20)

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

Small – 1 , Medium – 2, Large – 3, Extra Large - 4

Prioritized Model Define Code SW System Accept

Tests Test Test

Backlog

1

User Story Size

2

User Story Size

3

User Story Size

4

User Story Size

1

User Story Size

1

User Story Size

4

User Story Size

2

User Story Size

2

User Story Size

2

User Story Size

3

User Story Size

3

User Story Size

(21)

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

(22)
(23)

User Story Development Status

Use Cases

already

accepted

(24)

Activity1

Activity2 Activity3 DataObject1

Ports Define Services

Produced and

Consumed

Operations Describe

Functions/Services

Associations Show

Direct Interfaces to

other Components

Description of CI

Responsibilities

Exercise System

Interfaces and

Validate Behavior

Describe High Level

System Behavior

Class Diagrams

142

CSCI Classes

12

CSCI Operations

133

HWCI Classes

3

CSC Classes

58

CSC Operations

271

Activity Diagrams

8

Sequence Diagrams

233

Class Diagrams

SW & HW Architecture

Behavioral Diagrams

Architecture Metrics

130 58 253 217 11

Release Delta

M ajorComponent1 «Com ponent» schedule():void complete ():void Assign():void... manageRooms():void monitorHardw are():void monitorRooms():void divert():void

Major Component 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

· · · iServices pIntegration iMap pMap iSSL pSSL iPublish pMessageServices iRTSubscriber pRTSubscriber iRTPublish pRTMessagingServices iControl pControl Service «Component» iMonitoring 1 ::Component6 :Component4 performOperations(sql) :Component3 (peformServices(string) ::Component5 ::Component2 :Component1

performMetaDataServic es(Q ueryM et adat a)

file=performFileServices(imageFileHandle)

updateDisplay() returnResults(MetaData)

(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

(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)

(29)

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

Build Better, Cheaper, Faster using Agile and MDD

Reliable Software that’s documented , modeled, and supportable for the

entire Product Lifecycle

(30)
(31)

References

Related documents

1) A transformation from a business process defined in an existing business process language, such as BPEL or BPMN to our intermediate graph representation. Data flow analysis

Inflammatory Infiltrates in mPanIN Lesions and mPDAC in K- Ras G12V Expressing Adult Mice Treated with Caerulein for Three Months (A) K-Ras +/G12V.. ;Elas-tTA/tetO-Cre mice were

This study examined the perceptions held by beginning Georgia Teacher Alternative Preparation Program (GA TAPP) teachers, beginning traditionally certified teachers, and their

In a growing market with such a large audience of active internet users such as China, however, the likelihood that social media performance would positively correlate to market share

The Minot area population growth, coupled with the current fitness, recreational and programming inventory there exists a need to develop a comprehensive community aquatics

decide on money instead of contracts see, for instance, Shapley and Shubik, 1972, Roth and Sotomayor, 1990, and Pérez-Castrillo and Sotomayor, 2002). Any stable outcome is also

In these oral English class, guided by the Interactive teaching method, the teacher achieve the teaching goals by leading students to fulfil various interactive activities,

Gilbert Habib, Patrizio Lancellotti, Khalil Fattouch, José Luis Zamorano. Congress venue: Roma Eventi Fontana Di