Don't leave your Architecture Behind - Kanban-enabled Model Driven - - PowerPoint PPT Presentation

don t leave your architecture behind kanban enabled model
SMART_READER_LITE
LIVE PREVIEW

Don't leave your Architecture Behind - Kanban-enabled Model Driven - - PowerPoint PPT Presentation

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 Approved for Public Release:


slide-1
SLIDE 1

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

May 9th, 2012 Esther Johnson and Chris Williams

Northrop Grumman Aerospace Systems, Software Engineering

SATURN 2012

Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-2
SLIDE 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

2

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-3
SLIDE 3

Traditional Engineering Process Didn’t Fit

3

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

Time

  • Systems Design scheduled, defined and completed up front
  • Document Driven
  • Little time to incorporate Lessons Learned
  • Limited collaboration and feedback

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-4
SLIDE 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)

4

24 Hours

Product Backlog Sprint Backlog Daily Scrum Meeting Potentially Shippable Product Increment and Sprint Retrospective

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-5
SLIDE 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

5

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-6
SLIDE 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

6

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-7
SLIDE 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

7

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-8
SLIDE 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

8

  • Pri. Model Define Code SW System Accept

Tests Test Test

Reference: http://agilemanagement.net/index.php/Blog/why_kanban/

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-9
SLIDE 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

9

  • Pri. Model Define Code SW System Accept

Tests Test Test

«Actor» «Actor» «Actor» «Actor» «Actor» «Actor» «Actor» «Actor» «Actor» CRC BMC2 Prototype

Interoperate with External Tactical Systems Perform Exploitation Collaborate with Virtual Crew Store Data

r «Actor» r «Actor» r «Actor» «Actor» «Actor» «Actor»

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-10
SLIDE 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

10

Hybrid Approach for Agile, Model-Driven, and Test-Driven Development

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-11
SLIDE 11

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

Architecture Modeling Process

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-12
SLIDE 12

Requirements Development & Analysis (SL 1)

12

  • 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

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-13
SLIDE 13

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)

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-14
SLIDE 14

Functional Analysis (Major Component Design) (SL 2)

14

  • 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
  • Focus Sequence Diagrams per Use Case on component interactions

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-15
SLIDE 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

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-16
SLIDE 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:

– The software does Y

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-17
SLIDE 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

17

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-18
SLIDE 18

Detailed Design (Sub-Component Design)

18

  • Develop and Prioritize User Stories
  • Model Sub-Components
  • Develop Software Deployment
  • Model Sub-Component behavior through Use Cases
  • Focus Sequence Diagrams per Use Case on Sub-Component interactions

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-19
SLIDE 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

19

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

MajorComponent1

«Component» 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

  • ptions. 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

  • ther Components
::Component6 :Component4 performOperations(sql) :Component3 (peformServices(string) ::Component5 ::Component2 :Component1 performMetaDataServices(QueryM etadata) 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»

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-20
SLIDE 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

20

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

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-21
SLIDE 21

Software Development (SL 4)

21

  • 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

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-22
SLIDE 22

Kanban Enabled Visibility Of Work In Progress

22

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-23
SLIDE 23

User Story Development Status

23

Use Cases already accepted

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-24
SLIDE 24 Activity1 Activity2 Activity3 DataObject1

Ports Define Services Produced and Consumed Operations Describe Functions/Services Associations Show Direct Interfaces to

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

24

130 58 253 217 11

Release Delta

MajorComponent1

«Component» 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

  • ptions. 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 performMetaDataServices(QueryM etadata) file=performFileServices(imageFileHandle) updateDisplay() returnResults(MetaData)

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-25
SLIDE 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

  • n story size) exist but weren’t

used due to tool limitations

  • Used metrics as input to EVMS

25

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-26
SLIDE 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

26

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-27
SLIDE 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)

27

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-28
SLIDE 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)

28

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-29
SLIDE 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

29

Build Better, Cheaper, Faster using Agile and MDD Reliable Software that’s documented , modeled, and supportable for the entire Product Lifecycle

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-30
SLIDE 30

Questions?

30

SEI Architecture Technology User Network Conference, 9 May2012, Don't leave your Architecture Behind - Kanban-enabled Model Driven Software Development Approved for Public Release: Northrop Grumman Aerospace Systems Case 12-0216, 3/25/12

slide-31
SLIDE 31