improving software productivity with “agile methodologies” · 2012-12-14 · heavy...

13
1 PROCESSI DI PRODUZIONE E GESTIONE DEL SOFTWARE Ing. Paola Turci Improving Software Productivity with “Agile Methodologies” 2 P. Turci - Processi di Produzione e Gestione del Software Status of SE in the New Millennium Status of SE in the New Millennium Status of SE in the New Millennium Status of SE in the New Millennium To date … Current tendency to make software functionalities and business cases coincide - stimulated by the Internet era and reinforced by the dot com economy Leads to linking software construction and business dynamics more closely than ever In industry there is a need for swiftly-developed, complex software projects that are both research-like and mission-critical Software development must no longer be thought of as oriented toward a product BUT it is an ongoing process which continually delivers value (continuous evolution) Software crisis Hardware costs were decreasing while software costs were increasing.

Upload: others

Post on 03-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

1

PROCESSI DI PRODUZIONE E

GESTIONE DEL SOFTWARE

Ing. Paola Turci

Improving Software Productivity

with “Agile Methodologies”

2P. Turci - Processi di Produzione e Gestione del Software

Status of SE in the New MillenniumStatus of SE in the New MillenniumStatus of SE in the New MillenniumStatus of SE in the New Millennium

� To date …

� Current tendency to make software functionalities and business cases coincide - stimulated by the Internet era and reinforced by the dot com economy• Leads to linking software construction and business dynamicsmore closely than ever

� In industry there is a need for swiftly-developed, complex software projects that are both research-like and mission-critical• Software development must no longer be thought of as oriented toward a product BUT it is an ongoing process which continually delivers value (continuous evolution)

� Software crisis• Hardware costs were decreasing while software costs were increasing.

Page 2: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

2

3P. Turci - Processi di Produzione e Gestione del Software

Standish GroupStandish GroupStandish GroupStandish Group

� In the 1994, published a landmark white paper

� Each year, reports on success, failure and

challenge rates.

� Its 2000 report “Chaos in the new millennium”Only 28% of software projects succeeded

Outright failures 23%

Challenged projects 49%

4P. Turci - Processi di Produzione e Gestione del Software

CIO Magazine, July 2001CIO Magazine, July 2001CIO Magazine, July 2001CIO Magazine, July 2001

� Almost ¾ of all software development in the

Internet era suffered from one or more of the

following:

� Total failure

� Cost overruns

� Rollout with fewer features or functions than promised

Nike's glitch with i2's inventory software, which prompted Nike CEO Phil Knight to wail, "This is what we get for our $400 million?“

Sobey, a Canadian grocery chain that in February suddenly and publicly canned a SAP project …” $50 million into the trash bin”

CIO Magazine – “The secret to software success“

Page 3: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

3

5P. Turci - Processi di Produzione e Gestione del Software

from:from:from:from: Rapid Application DevelopmentRapid Application DevelopmentRapid Application DevelopmentRapid Application DevelopmentSteve McConnellSteve McConnellSteve McConnellSteve McConnell

Use of Modern Programming Practises

(percentage of total system)

Percentage Low Medium High

of Nominal (0-25%) (26-75%) (76-100%)

Productivity

+200

+100

0 (average)

-100

6P. Turci - Processi di Produzione e Gestione del Software

RemarksRemarksRemarksRemarks

� The use of any specific best practice is necessary

but not sufficient for achieving maximum

development speed

� Doing few things right doesn’t guarantee rapid

development

avoid making any big mistakes

Page 4: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

4

7P. Turci - Processi di Produzione e Gestione del Software

PEOPLE PROCESS

PRODUCTTECHNOLOGY

Why Projects Fail

� Undermined Motivations - Maslow

� Weak Personnel / Turn Over

� semantic gap

Adding People to Late Project

"The Mytichal

Man-Month"

Brooks

� Uncontrolled Problem Employees

� Unsatisfactory Working Conditions

� Lack of Stakeholder Buy-In

Document Oriented (instead of

functional oriented)� design up-front

Unrealistic Expectations� overly optimistic schedules

� lack effort estimation

� Shortchanged Upstream Activities

jumping into coding

tests at the end of

the project

� Code-like-hell Programming

� Insufficient Plannig

� planning to catch it later

abandonment of planning

under pressure

Insufficient Management

Controls�

insufficient risk

management

� Contractor Failure

� Requirements Creeping� increase complexity

� Developer Gold-Plating

� Requirements Gold-Plating

� Research-Oriented Development

� Sylver-Bullet Syndrome

Overestimated Savings from

New Tools or Methods

Switching Tools in the Middle of

a Project

8P. Turci - Processi di Produzione e Gestione del Software

PEOPLEPEOPLEPEOPLEPEOPLE

Page 5: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

5

9P. Turci - Processi di Produzione e Gestione del Software

PROCESSPROCESSPROCESSPROCESS

10P. Turci - Processi di Produzione e Gestione del Software

Unrealistic ExpectationsUnrealistic ExpectationsUnrealistic ExpectationsUnrealistic Expectations

� overly optimistic schedules

� lack effort estimation

Page 6: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

6

11P. Turci - Processi di Produzione e Gestione del Software

Shortchanged Upstream Shortchanged Upstream Shortchanged Upstream Shortchanged Upstream

ActivitiesActivitiesActivitiesActivities

� jumping into coding

� tests at the end of the project

12P. Turci - Processi di Produzione e Gestione del Software

PROCESSPROCESSPROCESSPROCESS

Page 7: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

7

13P. Turci - Processi di Produzione e Gestione del Software

Insufficient PlanningInsufficient PlanningInsufficient PlanningInsufficient Planning

� planning to catch it later

� abandonment of planning under pressure

14P. Turci - Processi di Produzione e Gestione del Software

Insufficient Management ControlsInsufficient Management ControlsInsufficient Management ControlsInsufficient Management Controls

� insufficient risk management

Page 8: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

8

15P. Turci - Processi di Produzione e Gestione del Software

PROCESSPROCESSPROCESSPROCESS

16P. Turci - Processi di Produzione e Gestione del Software

PRODUCTPRODUCTPRODUCTPRODUCT

Page 9: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

9

17P. Turci - Processi di Produzione e Gestione del Software

TECHNOLOGYTECHNOLOGYTECHNOLOGYTECHNOLOGY

18P. Turci - Processi di Produzione e Gestione del Software

“ … Building a product the right way still sounds like a laudable goal, but what really matters today is building it fast.

… We have asked, ‘What shall we add to our process to deal with this new situation?’ No answer to that question is going to be right because the question itself is wrong.

What the mobility imperative requires is that we subtract from the process:

We need to get light! “ Tom DeMarco

Page 10: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

10

19P. Turci - Processi di Produzione e Gestione del Software

From NothingFrom NothingFrom NothingFrom Nothing,,,, to Monumentalto Monumentalto Monumentalto Monumental, , , , to Agileto Agileto Agileto Agile

� Most software development is a chaotic activity,

often characterized by the phrase “code and fix”(works pretty well as the system is small)

� Heavy Methodologies; disciplined process with the

aim of making software development more

predictable and more efficient

� New group of methodologies have appeared in the

last few years: Agile Methodologies

20P. Turci - Processi di Produzione e Gestione del Software

Agile AllianceAgile AllianceAgile AllianceAgile Alliance

� Manifesto for Agile Software Development, a

statement of the common values and principles of

agile processes

� Agile methods are adaptive rather than predictive

� Agile methods are people-oriented rather than process-oriented

Page 11: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

11

21P. Turci - Processi di Produzione e Gestione del Software

The Agile ManifestoThe Agile ManifestoThe Agile ManifestoThe Agile Manifesto

“ We are uncovering better ways of developing

software by doing it helping others to 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 we value the items on the right, we

value the items on the left more.

22P. Turci - Processi di Produzione e Gestione del Software

The Agile Manifesto The Agile Manifesto The Agile Manifesto The Agile Manifesto (cont(cont(cont(cont’’’’d)d)d)d)

“ We follow the following principles:

� Our highest priority is to satisfy the customer

through early and continuous delivery of valuable

software

� Deliver working software frequently, from a couple

of weeks to a couple of months, with preference

for the shorter timescale.

� Welcome changing requirements, even late in

development. Agile processes harness change for

the customer’s competitive advantage.

Page 12: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

12

23P. Turci - Processi di Produzione e Gestione del Software

The Agile Manifesto The Agile Manifesto The Agile Manifesto The Agile Manifesto (cont(cont(cont(cont’’’’d)d)d)d)

� Business people and developers work together daily

throughout the project.

� Build projects around motivated individuals. Give them

the environment and support they need, and trust them

to get the job done.

� The most efficient and effective method of conveying

information to and within a development team is face-to-

face conversation.

24P. Turci - Processi di Produzione e Gestione del Software

The Agile Manifesto The Agile Manifesto The Agile Manifesto The Agile Manifesto (cont(cont(cont(cont’’’’d)d)d)d)

� Working software is the primary measure of progress

� Agile processes promote sustainable development. The

sponsors, developers and users should be able to

maintain a constant pace indefinitely.

� Continuous attention to technical excellence and good

design enhances agility

Page 13: Improving Software Productivity with “Agile Methodologies” · 2012-12-14 · Heavy Methodologies;disciplined process with the aim of making software development more predictable

13

25P. Turci - Processi di Produzione e Gestione del Software

The Agile Manifesto The Agile Manifesto The Agile Manifesto The Agile Manifesto (cont(cont(cont(cont’’’’d)d)d)d)

� Simplicity - the art of maximizing the amount of work not

done - is essential

� The best architectures, requirements and designs

emerge from self-organizing teams

� At regular intervals, the team reflects on how to become

more effective, then tunes and adjusts its behavior

accordingly