+ All Categories
Home > Documents > Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software...

Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software...

Date post: 08-Jul-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
29
Agile Software Development ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 5, 2018 Andrew Vardy Agile Soft. Dev.
Transcript
Page 1: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

ENGI 5895: Software Design

Andrew Vardy

Faculty of Engineering & Applied Science

Memorial University of Newfoundland

March 5, 2018

Andrew Vardy Agile Soft. Dev.

Page 2: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Software Failures

Figures from “Why Software Fails” by Robert N. Charette, IEEE Spectrum, 2005.

Software is ubiquitous and is constantly growing in size and

complexity:

http://www.informationisbeautiful.net/

visualizations/million-lines-of-code/

Large software projects have a high failure rate. Estimated cost for

failed software projects in the US: $60-70 Billion / year.

Software developers spend 40-50% of their time on “avoidable

rework” as opposed to “work that’s done right the first time”.

Andrew Vardy Agile Soft. Dev.

Page 3: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Software Failures

Figures from “Why Software Fails” by Robert N. Charette, IEEE Spectrum, 2005.

Software is ubiquitous and is constantly growing in size and

complexity:

http://www.informationisbeautiful.net/

visualizations/million-lines-of-code/

Large software projects have a high failure rate. Estimated cost for

failed software projects in the US: $60-70 Billion / year.

Software developers spend 40-50% of their time on “avoidable

rework” as opposed to “work that’s done right the first time”.

Andrew Vardy Agile Soft. Dev.

Page 4: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Software Failures

Figures from “Why Software Fails” by Robert N. Charette, IEEE Spectrum, 2005.

Software is ubiquitous and is constantly growing in size and

complexity:

http://www.informationisbeautiful.net/

visualizations/million-lines-of-code/

Large software projects have a high failure rate. Estimated cost for

failed software projects in the US: $60-70 Billion / year.

Software developers spend 40-50% of their time on “avoidable

rework” as opposed to “work that’s done right the first time”.

Andrew Vardy Agile Soft. Dev.

Page 5: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Software Failures

Figures from “Why Software Fails” by Robert N. Charette, IEEE Spectrum, 2005.

Software is ubiquitous and is constantly growing in size and

complexity:

http://www.informationisbeautiful.net/

visualizations/million-lines-of-code/

Large software projects have a high failure rate. Estimated cost for

failed software projects in the US: $60-70 Billion / year.

Software developers spend 40-50% of their time on “avoidable

rework” as opposed to “work that’s done right the first time”.

Andrew Vardy Agile Soft. Dev.

Page 6: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

The Waterfall Process

To mitigate failure, software engineers and managers establish

processes, with scheduled outputs (documents, code, test

results,...). The classic software development process is known as

the waterfall process:

From http://en.wikipedia.org/wiki/Waterfall_process

The idea is to complete each phase in sequence before moving onto

the next. Adv.: Encourages getting things right before moving on.

Andrew Vardy Agile Soft. Dev.

Page 7: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

The Waterfall Process

To mitigate failure, software engineers and managers establish

processes, with scheduled outputs (documents, code, test

results,...). The classic software development process is known as

the waterfall process:

From http://en.wikipedia.org/wiki/Waterfall_process

The idea is to complete each phase in sequence before moving onto

the next. Adv.: Encourages getting things right before moving on.

Andrew Vardy Agile Soft. Dev.

Page 8: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

The Waterfall Process

To mitigate failure, software engineers and managers establish

processes, with scheduled outputs (documents, code, test

results,...). The classic software development process is known as

the waterfall process:

From http://en.wikipedia.org/wiki/Waterfall_process

The idea is to complete each phase in sequence before moving onto

the next. Adv.: Encourages getting things right before moving on.

Andrew Vardy Agile Soft. Dev.

Page 9: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Problems with the Waterfall Process

The waterfall process requires reports, meetings, and

evaluations at every stage. Scheduling and executing all of this

extra work is time-consuming.

The artefacts and constraints of this process are not sufficient

to prevent errors, so more artefacts and constraints are

imposed.

Sounds paradoxical but this is how organizations often behave!

As the development process becomes more and more

cumbersome, the schedule slips.

The customer may wish to modify the requirements, or it may

be realized that the original requirements were poorly specified.

Leads to a massive cascade of changes through all subsequent

stages of the process!

Andrew Vardy Agile Soft. Dev.

Page 10: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Problems with the Waterfall Process

The waterfall process requires reports, meetings, and

evaluations at every stage. Scheduling and executing all of this

extra work is time-consuming.

The artefacts and constraints of this process are not sufficient

to prevent errors, so more artefacts and constraints are

imposed.

Sounds paradoxical but this is how organizations often behave!

As the development process becomes more and more

cumbersome, the schedule slips.

The customer may wish to modify the requirements, or it may

be realized that the original requirements were poorly specified.

Leads to a massive cascade of changes through all subsequent

stages of the process!

Andrew Vardy Agile Soft. Dev.

Page 11: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Problems with the Waterfall Process

The waterfall process requires reports, meetings, and

evaluations at every stage. Scheduling and executing all of this

extra work is time-consuming.

The artefacts and constraints of this process are not sufficient

to prevent errors, so more artefacts and constraints are

imposed.

Sounds paradoxical but this is how organizations often behave!

As the development process becomes more and more

cumbersome, the schedule slips.

The customer may wish to modify the requirements, or it may

be realized that the original requirements were poorly specified.

Leads to a massive cascade of changes through all subsequent

stages of the process!

Andrew Vardy Agile Soft. Dev.

Page 12: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Problems with the Waterfall Process

The waterfall process requires reports, meetings, and

evaluations at every stage. Scheduling and executing all of this

extra work is time-consuming.

The artefacts and constraints of this process are not sufficient

to prevent errors, so more artefacts and constraints are

imposed.

Sounds paradoxical but this is how organizations often behave!

As the development process becomes more and more

cumbersome, the schedule slips.

The customer may wish to modify the requirements, or it may

be realized that the original requirements were poorly specified.

Leads to a massive cascade of changes through all subsequent

stages of the process!

Andrew Vardy Agile Soft. Dev.

Page 13: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Problems with the Waterfall Process

The waterfall process requires reports, meetings, and

evaluations at every stage. Scheduling and executing all of this

extra work is time-consuming.

The artefacts and constraints of this process are not sufficient

to prevent errors, so more artefacts and constraints are

imposed.

Sounds paradoxical but this is how organizations often behave!

As the development process becomes more and more

cumbersome, the schedule slips.

The customer may wish to modify the requirements, or it may

be realized that the original requirements were poorly specified.

Leads to a massive cascade of changes through all subsequent

stages of the process!

Andrew Vardy Agile Soft. Dev.

Page 14: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Problems with the Waterfall Process

The waterfall process requires reports, meetings, and

evaluations at every stage. Scheduling and executing all of this

extra work is time-consuming.

The artefacts and constraints of this process are not sufficient

to prevent errors, so more artefacts and constraints are

imposed.

Sounds paradoxical but this is how organizations often behave!

As the development process becomes more and more

cumbersome, the schedule slips.

The customer may wish to modify the requirements, or it may

be realized that the original requirements were poorly specified.

Leads to a massive cascade of changes through all subsequent

stages of the process!

Andrew Vardy Agile Soft. Dev.

Page 15: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 16: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 17: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 18: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 19: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 20: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 21: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 22: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Agile Software Development

A set of values established by a group of industry experts in 2001

to allow software teams to work quickly and respond to change:

Manifesto for Agile Software Development

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.

Andrew Vardy Agile Soft. Dev.

Page 23: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Individuals and interactions over processes and tools

Some advice from “Agile Software Development” by Robert. C. Martin (Bob)

Individuals and interactions:

A team of average programmers who communicate wellare more likely to succeed than a group of superstars whofail to interact as a team.

Tools:

Don’t assume you’ve outgrown a tool until you’ve tried itand found you can’t use it. [...] Before you commit to thetop-shelf behemoth database system, try flat files. Don’tassume that bigger and better tools will automaticallyhelp you do better. Often they hinder more than help.

Page 24: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Individuals and interactions over processes and tools

Some advice from “Agile Software Development” by Robert. C. Martin (Bob)

Individuals and interactions:

A team of average programmers who communicate wellare more likely to succeed than a group of superstars whofail to interact as a team.

Tools:

Don’t assume you’ve outgrown a tool until you’ve tried itand found you can’t use it. [...] Before you commit to thetop-shelf behemoth database system, try flat files. Don’tassume that bigger and better tools will automaticallyhelp you do better. Often they hinder more than help.

Page 25: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Working software over comprehensive documentation

Huge software documents take a great deal of time toproduce and even more time to keep in sync with thecode. If they are not kept in sync, then they turn intolarge, complicated lies and become a significant sourceof misdirection.[...]

It is always a good idea for the team to write andmaintain a rationale and structure document, but thatdocument needs to be short and salient. By “short” Imean one or two dozen pages at most. By “salient,” Imean it should discuss the overall design rationale, andonly the highest-level structures in the system.

Andrew Vardy Agile Soft. Dev.

Page 26: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Working software over comprehensive documentation

Huge software documents take a great deal of time toproduce and even more time to keep in sync with thecode. If they are not kept in sync, then they turn intolarge, complicated lies and become a significant sourceof misdirection.[...]

It is always a good idea for the team to write andmaintain a rationale and structure document, but thatdocument needs to be short and salient. By “short” Imean one or two dozen pages at most. By “salient,” Imean it should discuss the overall design rationale, andonly the highest-level structures in the system.

Andrew Vardy Agile Soft. Dev.

Page 27: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Customer collaboration over contract negotiation

Successful projects involve customer feedback on aregular and frequent basis. Rather than depending on acontract or a statement of work, the customer of thesoftware works closely with the development team,providing frequent feedback on their efforts.

Andrew Vardy Agile Soft. Dev.

Page 28: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Responding to change over following a plan

It is tempting for novice managers to create a [...] Ganttchart of the whole project [...] What really happens isthat the structure of the chart degrades. As the teamgains knowledge about the system, and as the customersgain knowledge about their needs, certain tasks on thechart become unnecessary. [...] In short, the planundergoes changes in shape, not just changes in dates.

A better planning strategy is to make detailed plans forthe next two weeks, very rough plans for the next threemonths, and extremely crude plans beyond that.

Andrew Vardy Agile Soft. Dev.

Page 29: Agile Software Developmentav/courses/5895-current/manual_uploads/agile_inc… · Software developers spend 40-50% of their time on “avoidable rework” as opposed to “work that’s

Responding to change over following a plan

It is tempting for novice managers to create a [...] Ganttchart of the whole project [...] What really happens isthat the structure of the chart degrades. As the teamgains knowledge about the system, and as the customersgain knowledge about their needs, certain tasks on thechart become unnecessary. [...] In short, the planundergoes changes in shape, not just changes in dates.

A better planning strategy is to make detailed plans forthe next two weeks, very rough plans for the next threemonths, and extremely crude plans beyond that.

Andrew Vardy Agile Soft. Dev.


Recommended