• No results found

Improving Software Productivity with Agile Methodologies

N/A
N/A
Protected

Academic year: 2021

Share "Improving Software Productivity with Agile Methodologies"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

PROCESSI DI PRODUZIONE E

GESTIONE DEL SOFTWARE

Ing. Paola Turci

Improving Software Productivity

with “Agile Methodologies”

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 comeconomy

• 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-likeand

mission-critical

• Software development must no longer be thought of as oriented toward a productBUTit is an ongoing process which continually delivers value (continuous evolution)

(2)

2

3

P. Turci -Processi di Produzione e Gestione del Software

Standish Group

Standish Group

Standish Group

Standish 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%

4

P. Turci -Processi di Produzione e Gestione del Software

CIO Magazine, July 2001

CIO Magazine, July 2001

CIO Magazine, July 2001

CIO 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”

(3)

5

P. Turci -Processi di Produzione e Gestione del Software

from: from: from:

from:

Rapid Application Development

Rapid Application Development

Rapid Application Development

Rapid Application Development

Steve McConnell Steve McConnell Steve McConnell Steve 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

Remarks

Remarks

Remarks

Remarks

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

(4)

4

7

P. Turci -Processi di Produzione e Gestione del Software

PEOPLE PROCESS

PRODUCT TECHNOLOGY

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

8

P. Turci -Processi di Produzione e Gestione del Software

PEOPLE

PEOPLE

PEOPLE

PEOPLE

(5)

9

P. Turci -Processi di Produzione e Gestione del Software

PROCESS

PROCESS

PROCESS

PROCESS

Unrealistic Expectations

Unrealistic Expectations

Unrealistic Expectations

Unrealistic Expectations

overly optimistic schedules lack effort estimation

(6)

6

11

P. Turci -Processi di Produzione e Gestione del Software

Shortchanged Upstream

Shortchanged Upstream

Shortchanged Upstream

Shortchanged Upstream

Activities

Activities

Activities

Activities

jumping into coding

tests at the end of the project

12

P. Turci -Processi di Produzione e Gestione del Software

PROCESS

PROCESS

PROCESS

PROCESS

(7)

13

P. Turci -Processi di Produzione e Gestione del Software

Insufficient Planning

Insufficient Planning

Insufficient Planning

Insufficient Planning

planning to catch it later

abandonment of planning under pressure

Insufficient Management Controls

Insufficient Management Controls

Insufficient Management Controls

Insufficient Management Controls

(8)

8

15

P. Turci -Processi di Produzione e Gestione del Software

PROCESS

PROCESS

PROCESS

PROCESS

16

P. Turci -Processi di Produzione e Gestione del Software

PRODUCT

PRODUCT

PRODUCT

PRODUCT

(9)

17

P. Turci -Processi di Produzione e Gestione del Software

TECHNOLOGY

TECHNOLOGY

TECHNOLOGY

TECHNOLOGY

“ … 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:

(10)

10

19

P. Turci -Processi di Produzione e Gestione del Software

From Nothing

From Nothing

From Nothing

From Nothing,,,, to Monumental

to Monumental

to Monumental

to Monumental,

,

,

, to Agile

to Agile

to Agile

to 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

20

P. Turci -Processi di Produzione e Gestione del Software

Agile Alliance

Agile Alliance

Agile Alliance

Agile 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

(11)

21

P. Turci -Processi di Produzione e Gestione del Software

The Agile Manifesto

The Agile Manifesto

The Agile Manifesto

The 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 softwareover 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.

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

(12)

12

23

P. 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.

24

P. 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

(13)

25

P. 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

References

Related documents