02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean...

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

Transcript of 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean...

Page 1: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

02291: System IntegrationSoftware Development Process

Hubert [email protected]

DTU ComputeTechnical University of Denmark

Spring 2020

Page 2: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

Success rate for software projects 2000—2008

I Challenges of SoftwareDevelopment

I On timeI In budgetI No defectsI Customer satisfaction

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, . . . )

2

Page 3: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

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

3

Page 4: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

Waterfall process

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

Department of Defence

4

Page 5: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

Delays in waterfall processes

D I TA

Features

Release date Time

Implementation by layers and not functionality

5

Page 6: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

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 projects with simple precise requirements, likemathematical functions

→ Bad for projects with unclear requirements or withevolutionary requirements

6

Page 7: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

Problem in Software Engineering

I Liggesmeyer 1998I Improve the feedback cycle

I Fail fastI Short Analysis, Design, Implement, Test cylesI One cycle per user story

7

Page 8: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

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 processesFunctionality

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

8

Page 9: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

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 will not be implemented

9

Page 10: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

Resource Triangle

Waterfall

D I TA

Features

Release date Time

AgileFunctionality

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

10

Page 11: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

eXtreme Programming (XP)

I Kent Beck 1999I 12 Practices

Kent Beck, Extreme Programming 1st ed.

11

Page 12: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

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

12

Page 13: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

Lean Software Development

I Principles of Lean Production: coming from ToyotaI 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 bugs→ Test/behaviour-driven development

I time to change the system because it does not fit thecustomers requirements→ Customer on-site; build a system get feedback

I time for building infrastructure for future features→ YAGNI (You Ain’t Gona Need It)

I . . .

13

Page 14: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

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

14

Page 15: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

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

15

Page 16: 02291: System Integration€¦ · I Extreme Programming (XP) (1999), Scrum (1995–2001), Lean Software Development (2003), ... I Kanban (2010): not a method; tool to improve processes

Online Kanban Tool: Trello

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

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

→ use recommended to keep track of userstories/features/tasks

16