60
Software development processes Life-cycle Models Software Projects Lecture 2 Kari Systä 19.1.2015 TIE-21100&21106/K.Systä 1

Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Embed Size (px)

Citation preview

Page 1: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Software development processes Life-cycle Models Software Projects

Lecture 2

Kari Systä

19.1.2015 TIE-21100&21106/K.Systä 1

Page 2: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

For next week’s weekly exercise

• You either need user account to ”Lintula” – Beside student entrance to TC217

– There are mailboxes for applications

• Or, bring your own laptop and – Install processing to you own laptop from

www.processing.org

• Week after you can also choose between PCs in TC217 and your own laptop

19.1.2015 TIE-21100&21106/K.Systä 2

Page 3: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

About the project / assignment

• Will be done in groups of 4

• Canvas for registering will be opened 19.1 and deadline is 26.1 (end of the day). – Groups fixed by 31.1

– If you do not have complete group, you should still register. The staff will combine.

• Project will run in 4 Sprints

• Instructions (still under preparation) http://www.cs.tut.fi/kurssit/TIE-21100/assignment/index.html

19.1.2015 TIE-21100&21106/K.Systä 3

Page 4: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Learning goals of today and the whole course

• What are process models and why they exists?

• Know basics of a few well-known process models

• And what are the motivations behind the models

– To ”behave better”

– (Some day) to select life-cycle model for your organization

• Know how to participate in the work efficiently

19.1.2015 TIE-21100&21106/K.Systä 4

Page 5: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Initial schedule of the lectures

2015-01-12 TIE-21100/21106 5

12.01 Introduction to the course and software engineering

19.01 Life-cycle/process models Project planning (part 1)

26.01 Scrum (part 1)

02.02 Requirement management

09.02 Version and configuration management

16.02 Scrum part 2. Roles of Scrum master, product owner. How to be use backlog as a RM tool.

23.02 Project planning (part 2): effort estimation

02.03 Modern practices Continuous Integration, Continuous Deployment, DevOps,..

9.03. No lectures - exam week

17.3 Improving Quality: review practices, testing and quality assurance Quality in general; Quality management systems

23.3 Dependable and safety-critical systems

30.3 Other methods; RUP, XP, Lean; Kanban .

6.4 Easter - no lectures

13.4 Role of software architecture; software maintenance; software evolution

20.4 Software business, software start-ups

27.4 Guest lecture 1

4.5 Guest lecture 2

Page 6: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Life-cycle models http://www.ics.uci.edu/~wscacchi/Papers/SE-Encyc/Process-Models-SE-Encyc.pdf

• A software life cycle model is either a descriptive or prescriptive characterization of how software is or should be developed.

• Guideline to organize, plan, staff, budget, schedule and manage software project work over organizational time, space, and computing environments.

• Prescriptive outline for what documents to produce for delivery to client.

• Basis for determining what software engineering tools and methodologies will be most appropriate to support different life cycle activities.

• Framework for analyzing or estimating patterns of resource allocation and consumption during the software life cycle (Boehm 1981)

• Basis for conducting empirical studies to determine what affects software productivity, cost, and overall quality.

19.1.2015 TIE-21100&21106/K.Systä 6

Page 7: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Software Process Models

• In contrast to software life cycle models, software process models often represent a networked sequence of activities, objects, transformations, and events that embody strategies for accomplishing software evolution.

• Such models can be used to develop more precise and formalized descriptions of software life cycle activities.

19.1.2015 TIE-21100&21106/K.Systä 7

Page 8: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Life-cycle model and process model

• Often seen as synonyms. For example wikipedia.org/wiki/Software_development_process writes: – A software development process, also known as a

software development life-cycle (SDLC), is a structure imposed on the development of a software product.

• https://ece.uwaterloo.ca/~se464/06ST/lecture/02_life-cycle-models.pdf:

• Lifecycle models: Phases in the life of an artifact, e.g., a system

• Process models: Activities performed on artifacts, e.g., development activities

19.1.2015 TIE-21100&21106/K.Systä 8

Page 9: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Don’t PANIC

• We mostly do not care about the possible difference these terms in this course

• It is about rules and strategies for the “collaborative game”

19.1.2015 TIE-21100&21106/K.Systä 9

Page 10: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

19.1.2015 10

Need/idea Prestudy

Forget Develop Order project

Tailor

Requirements

Buy

Design

Implement.

Test

Deployment Maintenance Closure

Select supplier

TIE-21100&21106/K.Systä

From needs to software

Page 11: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Waterfall model - simplified

19.1.2015 11

Specification

Design

Implementation

Testing

TIE-21100&21106/K.Systä

Page 12: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Royce, 1970 (http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf)

19.1.2015 12 TIE-21100&21106/K.Systä

Page 13: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Principles of waterfall

• Waterfall is often understood as one-directional flow,

but Royce considered iterations as a crucial part of the

model.

(mainly between consecutive steps)

• Waterfall is a plan-driven approach

• Move from step to next is a decision and often involves

reviews, re-planing, budget decisions etc.

• Proper design and plan prevents extra work (and cost)

in next steps

• The earlier the mistake is done, the more expensive it is

• Waterfall is consistent with other engineering processes

19.1.2015 TIE-21100&21106/K.Systä 13

Page 14: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Documentation is a crucial part of waterfall (one possible example)

19.1.2015 TIE-21100&21106/K.Systä 14

System

requirements

Software

requirements

Analysis

Program

design

Coding

Testing

Operations Maintenance

Requirement

Specification

Test plan

Architecture

design

Final design

(as built)

Detailed

design

Interface

design

Test report

Page 15: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Problems with waterfall

• Does not support division of the software to distinct stages

– It is difficult to take out and use partial functionality

• Difficult to respond to changing customer requirements

• Management and motivation challenges of developers

– Does not utilize full talent and motivation of talented and

highly trained software developers

– Does not show trust and empowerment

• Usually, waterfall is considered suitable for projects where

– Requirements can be known in advance

– Milestone reviews and audits are needed for example by

security standards,

19.1.2015 TIE-21100&21106/K.Systä 15

Page 16: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

For example

19.1.2015 TIE-21100&21106/K.Systä 16

Page 17: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Prototyping

• Motivations:

– Get feedback

– Ensure that selected technology works

– Gain commitment

• Evolutionary prototype

– Stepwise development towards product

• Throw-away prototype

– Allows optimization

• Can be combined with waterfall

19.1.2015 TIE-21100&21106/K.Systä 17

Page 18: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Precursor of interative models: Spiral Model (picture from: http://www.sei.cmu.edu/reports/00sr008.pdf)

19.1.2015 TIE-21100&21106/K.Systä 18

Page 19: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Fundamentals of spiral model

• Spiral model is a risk-driven process and handling

risks is explicit

• Each loop is split to four sectors

1) Objective setting

2) Risk assessment and reduction

3) Development and validation

4) Planning

• Spiral model is not a series of waterfalls !

(A common misconception)

19.1.2015 TIE-21100&21106/K.Systä 19

Page 20: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Rational Unified Process (RUP)

• Derived from UML and Unified Software

Development Process

• Large and complex, but the purpose is not

that all companies adopt all practices

• Three views

– Dynamic: phases over time

– Static: process activities

– Practice

19.1.2015 TIE-21100&21106/K.Systä 20

Page 21: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Phases in RUP

• Inception: business case and stakeholders

• Elaboration: spec, design, plan

• Construction: ”the real work”

• Transition: to users

19.1.2015 TIE-21100&21106/K.Systä 21

Inception Elaboration Construction Transition

Page 22: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Iterative model: RUP

(Rational Unified Process)

19.1.2015 TIE-21100&21106/K.Systä 22

Page 23: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Different projects - product

19.1.2015

23

Vendor

Customer

research

specification Implem. validation

Sales

ppackaging

TIE-21100&21106/K.Systä

Page 24: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Different project – customer specific

19.1.2015

24

Vendor

Customer

research

specification

Implem. validation

deployment

Call for tender

bid

specification deployment

TIE-21100&21106/K.Systä

Page 25: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Vendor

Different project – customer specific

19.1.2015

25

Vendor

Customer

research

bid

Implement. validation

delployment

Order spec

Specificat.

Tender

call

deployment

order

bid

TIE-21100&21106/K.Systä

Page 26: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Will that work?

• Assumption 1: good requirements can be written if enough effort is put

on them

– But: customer needs change over the time – even during the project

– But: software is abstract until it is seen and tried

• Assumption 2: changes are small

– But: they are not (and address surprising parts)

• Assumption 3: Integration is as easy as glue components together

– But: the components are implemented by humans

• Assumption 4: schedule is followed

– Actually very seldom

19.1.2015 26 TIE-21100&21106/K.Systä

Page 27: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Iterative, agile

19.1.2015

27

Vendor

Customer

research

Spec.

imp

test

Deploym.

Tender call

bid

Bid a.

spec. Deploym.

SW

SW

imp

test

SW

SW

imp

test

imp

test

SW

SW

Demoable software

If possible, software can be taken

into use.

TIE-21100&21106/K.Systä

Page 28: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

19.1.2015 28

Agile –manifesto

• February 2001 • 17 ”inventors” • We are uncovering better ways of developing software

by doing it and helping others do it. Through this work we have come to value: – Individuals and interactions over processes and tools – Working software over comprehensive documentation – Customer collaboration over contract negotiation – Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

TIE-21100&21106/K.Systä

Page 29: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Manifesti Suomeksi Me etsimme parempia keinoja ohjelmistojen kehittämiseen tekemällä sitä itse ja auttamalla siinä muita. Tässä työssämme olemme päätyneet arvostamaan • Yksilöitä ja vuorovaikutusta enemmän kuin prosesseja

ja työkaluja • Toimivaa sovellusta enemmän kuin kokonaisvaltaista

dokumentaatiota • Asiakasyhteistyötä enemmän kuin

sopimusneuvotteluita • Muutokseen reagoimista enemmän kuin suunnitelman

noudattamista. Vaikka oikeallakin puolella on arvoa, me arvostamme vasemmalla olevia asioita enemmän.

19.1.2015 TIE-21100&21106/K.Systä 29

Page 30: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Five principles of Agile

Customer involvement

Through the project. Provide and prioritize requirements, evaluate iterations

Incremental delivery

Customer specifies the increments

People not process

Skill recognized and exploited; Team should decide on ways of working

Embrace change

Plan and design for change

Maintain simplicity

Both in process and software

19.1.2015 TIE-21100&21106/K.Systä 30

Page 31: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Plan-driven vs. agile specification

19.1.2015 TIE-21100&21106/K.Systä 31

Requirements engineering

Design and implementation

Requirements specification

Requirements engineering

Design and implementation

Page 32: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Problems in realizing Agile

• Getting customer commitment and trust is difficult

• Some team members do not have suitable personalities

• Prioritizing changes is difficult – especially if there are many stakeholders

• Maintaining simplicity requires extra work

• Cultural changes through the company (Agile training should start from management)

19.1.2015 TIE-21100&21106/K.Systä 32

Page 33: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Extreme programming (XP)

• Well-known method developed by Kent Beck • (only briefly covered by Haikala&Mikkonen, but

internet is full of resources)

• Requirements are expressed as scenarios called User Stories which are implemented directly as series of tasks

• Programmers work in pairs (Pair Programming) and develop tests for each task before writing the code (Test-driven development)

• All tests must be successfully executed when new code is integrated

19.1.2015 TIE-21100&21106/K.Systä 33

Page 34: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

XP (Extreme programming)

19.1.2015 TIE-21100&21106/K.Systä 34

http://www.extremeprogramming.org/

Page 35: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

XP Practices Practice/principle Description

Incremental planning

Small releases Minimun useful is implemented first; frequent releases

Simple design Spend enough time in design

Test-driven development

Test written before code, automated tests

Refactoring All team members should refactor code to keep simple and maintainable

Pair programming Check each others’ work; support

Collective ownership

No islands of responsibilities; every body can change everything

Continuous integration

Whenever something is ready it is integrated; always test

Sustainable pace Large amounts of overtime is not sustainable

On-site customer Continuous access to customer

19.1.2015 TIE-21100&21106/K.Systä 35

Page 36: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

About pair-programming

• Supports collective ownership and responsibility

• Informal review because each line of code has been seen more than one person

• Supports refactoring

• Fosters learning from colleagues

• Research on productivity gives mixed results

19.1.2015 TIE-21100&21106/K.Systä 36

Page 37: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

19.1.2015 37

Scrum

• Framework for agile and iterative developmet

• Sutherland, Jeffrey Victor; Schwaber, Ken “Business object design and implementation” OOPSLA '95 workshop proceedings.

TIE-21100&21106/K.Systä

Page 38: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

XP vs Scrum

• XP has typically shorter iterations (1-2w instead of 2-4w)

• Scrum does not allow changes into sprints

• XP is work in strict priority order

• Scrum does not prescribe any engineering practices

• Scrum focuses more on management aspects

19.1.2015 TIE-21100&21106/K.Systä 38

Page 39: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Learning goals of today and the whole course

• What are process models and why they exists?

• Know basics of a few well-known process models

• And what are the motivations behind the models

– To ”behave better”

– (Some day) to select life-cycle model for your organization

• Know how to participate in the work efficiently

19.1.2015 TIE-21100&21106/K.Systä 39

Page 40: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Project

• Wikipedia (borrows): In project management a project consists of a temporary endeavor undertaken to create a unique product, service or result.

• Oxford dictionary an individual or collaborative enterprise that is carefully planned and designed to achieve a particular aim.

27.1.2014 TIE-21100/21106/K.Systä 40

Page 41: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Key elements for this lecture

• Wikipedia (borrows): In project management a project consists of a temporary endeavor undertaken to create a unique product, service or result.

• Oxford dictionary an individual or collaborative enterprise that is carefully planned and designed to achieve a particular aim.

27.1.2014 TIE-21100/21106/K.Systä 41

Page 42: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

A project

Has

• Start

• End

• Goals

Should have

• Plan

• Success criteria

• Management

27.1.2014 TIE-21100/21106/K.Systä 42

Page 43: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Project management aims at

• Deliver SW to customer at the agreed time

• Keep overall costs within the budget

• Deliver software that meets customer’s expectations

• Maintain spirit and performance of the team

27.1.2014 TIE-21100/21106/K.Systä 43

Page 44: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Special about software projects

• The product is abstract and thus intangible

– Unlike buildings it is hard to tell condition and phase of development

• Large software project are often one-off projects

– Hard to repeat experience

• Processes are variable and organization specific

27.1.2014 TIE-21100/21106/K.Systä 44

Page 45: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Project organization (traditional)

27.1.2014 TIE-21100/21106/K.Systä 45

Steering group

Users

Customer Vendor

Project group

Support group

- Tech experts

- Legal experts

Project manager

of custormer PM of

vendor

Other stakeholders

Page 46: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

27.1.2014 46

Project planning

• Organization • Target setting • Risk analysis • Selection of technologies, methods, practices, tools

– For instance if agile is selected

• Support (documentation, quality assurance, product management) • Splitting and phasing

(WBS = Work Breakdown Structure) • Worktime estimation • Resource availability and time table

– Developers, external experts – Special tools

• Budget, financing, funding • Success criteria

TIE-21100/21106/K.Systä

Page 47: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Gantt – charts (lähde: http://www.matchware.com)

27.1.2014 TIE-21100/21106/K.Systä 47

Page 48: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Another alternative (Lähde: http://orgmode.org)

27.1.2014 TIE-21100/21106/K.Systä 48

Page 49: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Identification Analysis Planning/

Potential

risks

Prioritized

risk list

Monitoring

Avoidance

Contigency

Mitigation

Risk management

27.1.2014 TIE-21100/21106/K.Systä 49

Page 50: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

A very common approach for analysis and planning

• Probability of the risk

• Severity of the risk

Priority

Plan

• Ways to avoid the risk

• Ways reduce probability of the risk

• What do if the risk is realized (action)

• How we minimize the consequences in advance

27.1.2014 50 TIE-21100/21106/K.Systä

Page 51: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Simple table RISK Probab. Severity Prevent Reduce

Key person leaves

50% 8 Keep people happy. Give a raise.

Ensure that all critical data and skill is possessed by more than one.

… … … … …

Nuclear war <0.001% 10 Attend peace campaign

Move the office to a bunger

27.1.2014 51

Often better to use - low - medium - high

TIE-21100/21106/K.Systä

Page 52: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

27.1.2014 52

Reasons for one big project to fail • The size and features of the result were impossible to

estimate during planning

• The result was much bigger than originally planned

• There was a constant flow of changes: features were added and removed

• Coordination between sub-projects was mostly non-existing

• Terrible hurry during the last phases of the project

TIE-21100/21106/K.Systä

Page 53: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

27.1.2014 53

More reasons

• Close to end project manager got sick and replaced by unexperienced person

• Many features and technologies were new and never tested in similar products.

• System testing showed that the system is not stable, but because project was late it was deployed anyways.

TIE-21100/21106/K.Systä

Page 54: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

27.1.2014

54 TIE-21100/21106/K.Systä

Page 55: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

more

• Afterwards it was discovered that the design could not work. The ship would have been stable only with so much of weight that some guns had been under water surface.

• Reference; Curt Borgenstam: Why the Wasa Capsized.

27.1.2014 55 TIE-21100/21106/K.Systä

Page 56: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

27.1.2014 56

Why project plan is important

• It is a tool for steering and tracking

• Communication tool among the stakeholders

– Goals

– Tasks and timetable

– Organization and responsibilities

– Tools, working practices

– Budgets

– Risks

TIE-21100/21106/K.Systä

Page 57: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

A few words about project management and agile

27.1.2014 TIE-21100/21106/K.Systä 57

Page 58: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

Five principles of Agile

Customer involvement

Through the project. Provide and prioritize requirements, evaluate iterations

Incremental delivery

Customer specifies the increments

People not process

Skill recognized and exploited; Team should decide on ways of working

Embrace change

Plan and design for change

Maintain simplicity

Both in process and software

27.1.2014 TIE-21100/21106/K.Systä 58

Page 59: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

But…

• Some things are not covered by agile methods – Stakeholders

– Budget

– Risks

– High-level goals

– Risks

• Some things need to be agreed on – Timing of sprints

– Who participate in sprint review

– Who takes the roles (in Scrum: Scrum master and product owner)

27.1.2014 TIE-21100/21106/K.Systä 59

Page 60: Software development processes Life-cycle Models …sweng/lectures/2015_02_LifeCycle_and_Projects.pdf · Software development processes Life-cycle Models Software Projects ... plan,

27.1.2014 60

Agile improves visibility to management

• Important argument for selling the idea of Agile

• Each sprint provides on opportunity see the progress – Steering group or management may ask a status report

(but status reporting and sprint rhythm should be synchronized)

• Example: burn-down charts

TIE-21100/21106/K.Systä