Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
140 views

Software Development Challenges: Hard To Develop?

The document discusses some of the challenges of software development including managing quality, risks from changes, and minimizing risks. It compares software development to other fields like bridge construction, medicine, and flying. Unlike these other fields, software development is still nascent with many variables. It discusses how approaches like waterfall have high failure rates and argues for more iterative and agile approaches. It emphasizes the importance of testing designs through feedback to adapt plans and ensure quality and relevance over time.

Uploaded by

kimidors143
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
140 views

Software Development Challenges: Hard To Develop?

The document discusses some of the challenges of software development including managing quality, risks from changes, and minimizing risks. It compares software development to other fields like bridge construction, medicine, and flying. Unlike these other fields, software development is still nascent with many variables. It discusses how approaches like waterfall have high failure rates and argues for more iterative and agile approaches. It emphasizes the importance of testing designs through feedback to adapt plans and ensure quality and relevance over time.

Uploaded by

kimidors143
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Software

Development
Challenges

Hard to develop?
Why is it hard to develop software within budget and
time?

Quality of code

When you say it’s done, what do you mean?

How good is the code you write?

SDC- 2
Risk in development
You write code based on what you know

When was the last time you had to change the design?

What happened after you changed it?

Does your code turn into a loose cannon towards the


deadline?
SDC- 3

Efforts to minimize Risk


Change in inevitable

You don’t want to wonder what the effect of a change


is

Feedback is critical

Frequent feedback is necessary

You want to know right away if you broke the code,


isn’t it?

SDC- 4
Software Development
What’s software development like?

We often get compared to other human endeavors

Let’s study some of those

Bridge Construction

Medicine

Flying

SDC- 5

Bridge Construction

Safety Concerns

Strong metrics and standards

Often construction and design are separated

Innovation and construction are separated

SDC- 6
Medicine
“Health was thought to be restored by
purging, starving, vomiting or
bloodletting”

Both surgeons and barbers were involved

Rate of infection was high before Joseph


Lister introduced Germ theory

As human, we learn from our mistakes

We reject ideas

We take time

We learn eventually SDC- 7

Flying

400BC Chinese learned to fly a kite

Lead to aspirations for human to fly

Several inventions and innovations followed for


centuries

Flying is more than putting wings on a machine

We can’t copy - we’ve to figure out what works

SDC- 8
Software Development
Still a nascent field

Too many variables

Innovation is not separate from construction

Separating design and coding phase is not realistic

Capers Jones studies large software projects

Only 10% of projects were successful

We can’t afford to continue at this rate


SDC- 9

Engineering Rigor
In Engineering Construction is expensive, Design is
relatively Cheap

In Software Development Construction is Cheap (it’s


the conversion of code into executables)

Design (which involves modeling and coding) is


expensive

Can’t we quickly test our design (since construction is


cheap)?

Testing is the Engineering Rigor in Software


Development
SDC- 10
Software Development
Methodologies and Practices

We’ve tried several approaches

Waterfall, Fountain, Spiral, Iterative and Incremental,


Agile,...

SDC- 11

Waterfall Method
Requirements

Analysis

Design

Implementation &Testing

Integration

Maintenance

SDC- 12
Waterfall—pros and cons
Simple (simplistic)

Easy to plan

Hard to deliver

Assumes stages carried out to completion

Most practiced

High rate of failure

SDC- 13

What’s Agility?

What’s Agility?

It’s being agile

OK, what’s Agile?

“marked by the ready ability to move with quick


easy grace”

“having a quick resourceful and adaptive character”

SDC- 14
Why Agile?
Software Development is

risky

change is the only constant

we constantly have to fight entropy

always in a state of flux

Conventional approach has not solved our problems

SDC- 15

Reliability on Estimates

From Agile and Iterative Development: A Managers


Guide by Craig Larman
SDC- 16
Change in Requirements

From Agile and Iterative Development: A Managers


Guide by Craig Larman
SDC- 17

Relevance

Actual Use of Requested Features


From Agile and Iterative Development: A Managers
Guide by Craig Larman
SDC- 18
Impact

From Agile and Iterative Development: A Managers


Guide by Craig Larman
SDC- 19

Factors

From Agile and Iterative Development: A Managers


Guide by Craig Larman
SDC- 20
Duration

From Agile and Iterative Development: A Managers


Guide by Craig Larman
SDC- 21

Meeting Requirements

From "Practices of an Agile Developer"


SDC- 22
by Venkat Subramaniam and Andy Hunt
Project & Schedule

Start Realization Deadline Delivery

Time

Quality Scope

SDC- 23

Adaptive Planning
“No plan survives contact with the enemy” -
Helmuth von Moltke

It is more important to succeed than stick with a


predefined plan

Allow your management to dictate only two out of


three - quality, time, scope

What if they insist you give them all three?

They get failure instead

SDC- 24
How to be agile?

Agility is all about action

How can you be evolutionary?

You need to build what’s relevant

You need to make change affordable

How can you do that?

SDC- 25

Feedback and
Communication
Actively listen and seek feedback

Feedback comes in two forms

Is your code meeting and continuing to meet your


(programmers’) expectations?

Unit and integration tests

Is it relevant and solving customers’ problems?

Frequent Demo and Exercise

SDC- 26
Continuous, not Episodic

From "Practices of an Agile Developer"


SDC- 27
by Venkat Subramaniam and Andy Hunt

You might also like