02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process...

21
02291: System Integration Software Development Process Hubert Baumeister [email protected] DTU Compute Technical University of Denmark Spring 2019

Transcript of 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process...

Page 1: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

02291: System IntegrationSoftware Development Process

Hubert [email protected]

DTU ComputeTechnical University of Denmark

Spring 2019

Page 2: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Success rate for software projects 2000—2008

Sheet1

Page 1

2000 2002 2004 2006 2008

succeeded 28% 34% 29% 35% 32%

failed 23% 15% 18% 19% 24%

challenged 49% 51% 53% 46% 44%

2000 2002 2004 2006 2008

0%

20%

40%

60%

80%

100%

120%

challenged

failed

succeeded

CHAOS Summary 2009 Report

I Succeeded: 32%I Failed: 20%I Challenged: 48% (over

time, over budget, lots ofdefects, low customersatisfaction. . . )

Failed or challengedI AmandaI RejsekortetI Obamacare WebsiteI German road toll systemI Denver airport baggage

systemI . . .

Page 3: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Scaling software development

Small hutI one personI no special knowledge

SkyscraperI not possible with one

personI special knowledge: static,

electricity, water, waste,elevator, . . .

Page 4: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Scaling software development

Small hutI one personI no special knowledge

SkyscraperI not possible with one

personI special knowledge: static,

electricity, water, waste,elevator, . . .

Page 5: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Types of software (Lehmann)

I s-type: mathematical function, sorting: completespecfication

I p-type: real world problems, e.g., chess: modelling the realworld

I e-type: embeded into socio-technical systems.Requirements change as the environment changes.System changes the environment: e.g., operating system

I Continuing ChangeI Increasing ComplexityI Conservation of Organisational Stability (invariant work

rate)I Continuing GrowthI Declining Quality

Page 6: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Activities in Software Development

I Understand and document what the customer wants:Requirements Engineering

I How to build the software: DesignI Build the software: ImplementationI Validate: Testing, Verification, Evaluation→ Waterfall

Page 7: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Waterfall process

I 1970: Winston W. Royce how not to develop softwareI 1985: Waterfall was required by the United States

Department of Defence

Page 8: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Example: Empire State Steel Construction

From The EmpireState Building by JohnTauranac

From Building the Empire State by Willis,1998

I Kept the budgetI Was finished before

deadlineI Built in 21 month (from

conception to finishedbuilding) (1931)

→ Basic design in4 weeks

I Fast-track construction

→ Begin theconstructionbefore the designis complete

→ create a flow

Page 9: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Delays in waterfall processes

D I TA

Time

Features

Release date

Implementation by layers and not functionality

Page 10: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Costs of changing requirements: Waterfall

I Changed / new requirements change the design andimplementation

I Cost of change not predictable→ Avoid changing/new requirements if possible

→ Good for s-type projects, not applicable to p-type ande-type projects

Page 11: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Iterative Processes: E.g. Rational Unified Process(1996)

Page 12: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Problem in Software Engineering

I Liggesmeyer 1998

Page 13: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Agile Software Development Methods (1999)I Extreme Programming (XP) (1999), Scrum (1995–2001),

Lean Software Development (2003), . . .I Kanban (2010): not a method; tool to improve processes

Functionality

TimeAD IT

AD ITR

AD ITR

AD IT

R

AD IT

R

AD IT

R

F 1

F 2

F 3a

F 8

F 4

F 5

F 6

RAD IT

1. Iteration

Database / Infrastructure Layer

Presentation Layer

Application Layer

Domain Layer

UserStory

UserStory

UserStory

I Highest priority user storyfirst

I If delayed: importantfeatures are implemented

Page 14: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Changing Requirements: Agile Methods

Scott Ambler 2003–2014 http://www.agilemodeling.com/artifacts/userStory.htm

I Cost of changeI New / changed requirements not done yet: zero costsI Changed requirements already done: the cost of a

requirement that can not be implemented

Page 15: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Resource Triangle

Plan Driven

D I TA

Time

Features

Release date

Agile

Database / Infrastructure Layer

Presentation Layer

Application Layer

Domain Layer

UserStory

UserStory

UserStory

Page 16: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

eXtreme Programming (XP)I Kent Beck 1999I 12 Practices

Kent Beck, Extreme Programming 1st ed.

Page 17: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Scrum

Working incrementof the software

Sprint Backlog SprintProduct Backlog

30 days

24 h

file:///Users/huba/Desktop/Scrum_process.svg

1 of 1 /18.3.13 24:16

Wikipedia

I Robert Martin (Uncle Bob) about ”The Land that ScrumForgot”http://www.youtube.com/watch?v=hG4LH6P8Syk→ History about agile methods, the agile manifesto, and

Scrum and its relationshop to XP

Page 18: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Lean Software Development

I Lean Production:I Value for the customerI Reduce the amount of waste in the production processI Generate flow

I Waste: resources used which do not produce value for thecustomer

I time needed to fix bugsI time to change the system because it does not fit the

customers requirementsI time waiting for approvalI . . .

Page 19: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Generating flow using Pull and Kanban

WIP = Work in Progress Limit

1324

A T IWork Item DoneDQueue WIP Queue QueueQueue WIP WIP WIP

8

7

9

10

5

6

BlahComposite

Leaf Assembly4 2 3

3 3 3 3

Page 20: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Flow through Pull with Kanban

I Process controlling: local rulesI Load balancing: Kanban cards and Work in Progress

(WIP) limitsI Integration in other processes

Figure from David Anderson www.agilemanagement.net

Page 21: 02291: System Integration - imm.dtu.dk · 02291: System Integration Software Development Process Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019

Online Kanban Tool: Trello

I www.trello.com: Electronic Kanban board useful foryour project

I Kanban board the exam project example https://trello.com/b/CqzwTiRT/02291-example-lean

I Another https://trello.com/b/4wddd1zf/kanban-workflow