Shaper, deal with it!okulewiczm/downloads/io/lectures/SE1_3_Soft… · I am a Shaper, deal with it!...

45
Previously on Software Engineering I am a Shaper, deal with it! Ask “Why?” not “How much?Michal Okulewicz Software Engineering

Transcript of Shaper, deal with it!okulewiczm/downloads/io/lectures/SE1_3_Soft… · I am a Shaper, deal with it!...

Previously on Software Engineering

• I am a Shaper, deal with it!• Ask “Why?” not “How much?”

Michał Okulewicz Software Engineering

Previously on Software Engineering

• I am a Shaper, deal with it!• Ask “Why?” not “How much?”

Michał Okulewicz Software Engineering

Previously on Software Engineering

• I am a Shaper, deal with it!• Ask “Why?” not “How much?”

Michał Okulewicz Software Engineering

Software Engineering:Can we please start programming already?

Michał Okulewicz

Wydział Matematyki i Nauk InformacyjnychPolitechnika Warszawska

Michał Okulewicz Software Engineering

Example of a project statement

Requirements:• I want to perform experiments in a simulated project

environment• I want to be able to play teams of software agents from

different vendors against each other• I want to verify hypothesis about the optimal type of team,

given project complexity and risks• I want to asses a psychometric profile of a person playing the

game (without having additional human players)

Payment:• Positive marks from SE1 and SE2

Michał Okulewicz Software Engineering

Example of a project statement

Requirements:• I want to perform experiments in a simulated project

environment• I want to be able to play teams of software agents from

different vendors against each other• I want to verify hypothesis about the optimal type of team,

given project complexity and risks• I want to asses a psychometric profile of a person playing the

game (without having additional human players)

Payment:• Positive marks from SE1 and SE2

Michał Okulewicz Software Engineering

Fundamental question

When can we startprogramming?

Michał Okulewicz Software Engineering

Possible answer

When the project scope isdefined well-enough to

estimate time, and thereforecost of the project.

Michał Okulewicz Software Engineering

Possible answer

When the project scope isdefined well-enough to

estimate time, and thereforecost of the project.

Michał Okulewicz Software Engineering

More questions

1. How can we discover scope?2. How can we estimate time?

Michał Okulewicz Software Engineering

More questions

1. How can we discover scope?2. How can we estimate time?

Michał Okulewicz Software Engineering

More questions

1. How can we discover scope?2. How can we estimate time?

Michał Okulewicz Software Engineering

Not (very) helpful answers

1. Using business analysis methodsand tools (by asking “Why?” andmodeling systems)

2. You can’t (but nevertheless youshould try)

Michał Okulewicz Software Engineering

Not (very) helpful answers

1. Using business analysis methodsand tools (by asking “Why?” andmodeling systems)

2. You can’t (but nevertheless youshould try)

Michał Okulewicz Software Engineering

Not (very) helpful answers

1. Using business analysis methodsand tools (by asking “Why?” andmodeling systems)

2. You can’t (but nevertheless youshould try)

Michał Okulewicz Software Engineering

Not (very) helpful answers

1. Using business analysis methodsand tools (by asking “Why?” andmodeling systems)

2. You can’t (but nevertheless youshould try)

Michał Okulewicz Software Engineering

Not (very) helpful answers

1. Using business analysis methodsand tools (by asking “Why?” andmodeling systems)

2. You can’t (but nevertheless youshould try)

Michał Okulewicz Software Engineering

Choose proper Software Development Framework

Project:• Well-defined?• Repeatable?• Part of a

research?• Internal or

external?

Client:• Naive or

responsible?• Mature or a

start-up?• Technically

aware?

Development team:• Experienced?• Motivated?• Consisting of

experts?

Michał Okulewicz Software Engineering

Choose proper Software Development Framework

Project:• Well-defined?• Repeatable?• Part of a

research?• Internal or

external?

Client:• Naive or

responsible?• Mature or a

start-up?• Technically

aware?

Development team:• Experienced?• Motivated?• Consisting of

experts?

Michał Okulewicz Software Engineering

Choose proper Software Development Framework

Project:• Well-defined?• Repeatable?• Part of a

research?• Internal or

external?

Client:• Naive or

responsible?• Mature or a

start-up?• Technically

aware?

Development team:• Experienced?• Motivated?• Consisting of

experts?

Michał Okulewicz Software Engineering

Choose proper Software Development Framework

Project:• Well-defined?• Repeatable?• Part of a

research?• Internal or

external?

Client:• Naive or

responsible?• Mature or a

start-up?• Technically

aware?

Development team:• Experienced?• Motivated?• Consisting of

experts?

Michał Okulewicz Software Engineering

Software Development Framework

• How to communicate?• How to divide project into tasks?• How to deal with risks and requirements?• How to assign tasks?• How to verify tasks completion?

Michał Okulewicz Software Engineering

Software Development Framework

• How to communicate?• How to divide project into tasks?• How to deal with risks and requirements?• How to assign tasks?• How to verify tasks completion?

Michał Okulewicz Software Engineering

Software Development Framework

• How to communicate?• How to divide project into tasks?• How to deal with risks and requirements?• How to assign tasks?• How to verify tasks completion?

Michał Okulewicz Software Engineering

Software Development Framework

• How to communicate?• How to divide project into tasks?• How to deal with risks and requirements?• How to assign tasks?• How to verify tasks completion?

Michał Okulewicz Software Engineering

Software Development Framework

• How to communicate?• How to divide project into tasks?• How to deal with risks and requirements?• How to assign tasks?• How to verify tasks completion?

Michał Okulewicz Software Engineering

Software Development Framework

• How to communicate?• How to divide project into tasks?• How to deal with risks and requirements?• How to assign tasks?• How to verify tasks completion?

Michał Okulewicz Software Engineering

Back to the perfect world

Michał Okulewicz Software Engineering

A theoretical approach

Michał Okulewicz Software Engineering

A more realistic approach

Michał Okulewicz Software Engineering

Rational Unified Process

Michał Okulewicz Software Engineering

Rational Unified Process

Elements:• Roles (who?)• Work products

(what?)• Tasks (how?)

Engineeringdisciplines:

• Businessmodeling

• Requirements• Analysis and

design• Implementation• Test• Deployment

Supportingdisciplines:

• Configurationand changemanagement

• Projectmanagement

• (Work)Environment

Michał Okulewicz Software Engineering

Rational Unified Process

Elements:• Roles (who?)• Work products

(what?)• Tasks (how?)

Engineeringdisciplines:

• Businessmodeling

• Requirements• Analysis and

design• Implementation• Test• Deployment

Supportingdisciplines:

• Configurationand changemanagement

• Projectmanagement

• (Work)Environment

Michał Okulewicz Software Engineering

Rational Unified Process

Elements:• Roles (who?)• Work products

(what?)• Tasks (how?)

Engineeringdisciplines:

• Businessmodeling

• Requirements• Analysis and

design• Implementation• Test• Deployment

Supportingdisciplines:• Configuration

and changemanagement

• Projectmanagement

• (Work)Environment

Michał Okulewicz Software Engineering

Rational Unified Process

Elements:• Roles (who?)• Work products

(what?)• Tasks (how?)

Engineeringdisciplines:

• Businessmodeling

• Requirements• Analysis and

design• Implementation• Test• Deployment

Supportingdisciplines:• Configuration

and changemanagement

• Projectmanagement

• (Work)Environment

Michał Okulewicz Software Engineering

Agile Manifesto

We are uncovering better ways of developing software by doing itand helping others do it. Through this work we have come tovalue:

• 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 theitems on the left more.

http://agilemanifesto.org/

Michał Okulewicz Software Engineering

Agile Manifesto

We are uncovering better ways of developing software by doing itand helping others do it. Through this work we have come tovalue:

• 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 theitems on the left more.

http://agilemanifesto.org/

Michał Okulewicz Software Engineering

Agile Manifesto

We are uncovering better ways of developing software by doing itand helping others do it. Through this work we have come tovalue:

• 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 theitems on the left more.

http://agilemanifesto.org/

Michał Okulewicz Software Engineering

Agile Manifesto

We are uncovering better ways of developing software by doing itand helping others do it. Through this work we have come tovalue:

• 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 theitems on the left more.

http://agilemanifesto.org/

Michał Okulewicz Software Engineering

Agile Manifesto

We are uncovering better ways of developing software by doing itand helping others do it. Through this work we have come tovalue:

• 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 theitems on the left more.

http://agilemanifesto.org/

Michał Okulewicz Software Engineering

Agile Manifesto

We are uncovering better ways of developing software by doing itand helping others do it. Through this work we have come tovalue:

• 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 theitems on the left more.

http://agilemanifesto.org/

Michał Okulewicz Software Engineering

Agile Manifesto

We are uncovering better ways of developing software by doing itand helping others do it. Through this work we have come tovalue:

• 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 theitems on the left more.

http://agilemanifesto.org/

Michał Okulewicz Software Engineering

Takeaway message: choose wisely

Michał Okulewicz Software Engineering

Further reading

• https://www.agilebusiness.org/content/introduction-0• https://www.tutorialspoint.com/sdlc/sdlc_spiral_model.htm• https://www.versionone.com/agile-101/agile-methodologies/

Michał Okulewicz Software Engineering