37
SE is not like other projects. SE is not like other projects. The project is intangible. There is no standardized solution process. New projects may have little or no relationship to completed projects. Rapid changes in technology often makes the "experience" learned from other projects non- transferable.

SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

SE is not like other projects.SE is not like other projects.

The project is intangible. There is no standardized solution

process. New projects may have little or no

relationship to completed projects. Rapid changes in technology

often makes the "experience" learned from other projects non-transferable.

Successful software Successful software requiresrequires that we understand:that we understand:

the scope of the work to be done

the risks to be incurred the resources to be needed the tasks to be accomplished the milestones to be tracked the effort (cost) to be expended the schedule to be followed

Successful software Successful software requiresrequires that we understand:that we understand:

the scope of the work to be done

the risks to be incurred the resources to be needed the tasks to be accomplished the milestones to be tracked the effort (cost) to be expended the schedule to be followed

Project Objectives Project Objectives - identify - identify the overall goals of the project the overall goals of the project without considering how these without considering how these

goals will be achievedgoals will be achieved

Project Size Project Size (Scope) - identifies (Scope) - identifies the primary functions that the primary functions that software is to accomplishsoftware is to accomplish

Project planning is Project planning is essential essential

to SE efforts.to SE efforts.

Formalize Software Formalize Software RequirementsRequirements

It is unreasonable to expect a Software Engineer to estimate the amount of work required to build “something” before that “something” has been

defined.

Adapted from Code Complete

How can the size of a project be How can the size of a project be estimated?estimated? Use scheduling software Use an algorithmic approach such as

COCOMO Hire an expert to do the estimation Use previous project experience as a

guideline

Adapted from Code Complete

How can the size of a project be How can the size of a project be estimated?estimated? Have team members carefully discuss

the schedule Estimate project pieces and add the

parts together Estimate the time available for the entire

project and divide it among the parts Estimate, see what actually happens and

adjust

Adapted from Code Complete

Effort Estimates can include:Effort Estimates can include:

estimates of required human effort

(person-months) estimates of project duration

(calendar time)  estimates of the cost of the project

(in dollars)

Estimate pieces of the Estimate pieces of the project and project and

add the parts together!add the parts together!

Project Time Project Time In Work HoursIn Work Hours

Actual Time Required

Project Estimation

Project Progress in Milestones1 2 3 4 5 6 7

Adapted from Code Complete

TIMETIME

is the most valuable commodity available to a

software engineer!

IF - enough TIME is available,IF - enough TIME is available, A problem CAN be properly analyzed, A solution CAN be comprehensively

designed, Source code CAN be carefully

implemented, and The program CAN be thoroughly tested

BUT -- there never is enough

SE involves significant SE involves significant time pressure.time pressure.

SE involves significant time SE involves significant time pressure.pressure. Part of the pressure comes from

arbitrary and sometimes unrealistic deadlines established by those who do not have to build the product!

But, Part of the pressure is created by the people involved!

WHY is there TIME pressure?WHY is there TIME pressure?

In most cases: Projects are planned and

scheduled in a haphazardly. Risks, if at all, are considered as

they happen! – Crisis Management

People aren't organized effectively!

Every software project has a Every software project has a schedule,schedule,

BUT not all schedules are created equal--

Two views to scheduling a Two views to scheduling a project:project:

1) An end date is set in advance and cannot be changed (Management decision)

2) Schedule is roughly set by the primary players

Poor scheduling CAN--Poor scheduling CAN--

reduce market impact create dissatisfied customers raise internal costs by creating

additional problems during system integration

Scheduling IssuesScheduling Issues

How do we balance chronological time with human effort?

What tasks and parallelisms are to be expected?

What milestones can be used to show progress?

"...if we fall behind "...if we fall behind schedule we can always schedule we can always add more programmers add more programmers

and catch up later in and catch up later in the project."the project."

Management often believes:

Adding people to a Adding people to a late project only late project only makes it later!!!makes it later!!!

WHY???

If If 1 cat can catch 1 mouse in 1

hourThen

2 cats might be able to catch 1 mouse in 30 minutes

Then Can? 60 cats catch the mouse in 1

minute?

Most likely outcome --Most likely outcome --

10 dead cats10 injured cats

1 escaped mouse

Why is this true?Why is this true?

CommunicationCommunication

New people have to learn the project form the existing team members.

The time lost in teaching the new people is time away from the project.

The more people in a group, the more complex the communication, the less that gets done in the same amount of time.

Benefits can be gained by:Benefits can be gained by:

Using fewer people over a longer period of time span

When more than one person is involved in a SE project try to complete tasks in parallel

Why does a project fall Why does a project fall behind?behind?

What kinds of things What kinds of things influence a project’s influence a project’s

schedule?schedule?

Influences on ScheduleInfluences on Schedule

Team motivation Management quality Amount of code reuse Personnel Turnover Requirements volatility

Adapted from Code Complete

Influences on ScheduleInfluences on Schedule

Quality of relationship with customer

User participation in requirements Classified security environment Amount of documentation Experiences-level of Team

Adapted from Code Complete

Factors that Influence Factors that Influence Software Software Project EffortProject Effort Reliability required

Database size Project complexity Execution time required Volatility of Operating System Turnaround time on development

computer Analyst team capability Team’s experience in application areaAdapted from Code Complete

Factors that Influence Factors that Influence Software Software Project EffortProject Effort Programmer team capability

Programmers’ experience with underlying hardware and software

Team’s programming language experience

Use of modern programming practices Use of software tools Required development schedule

Adapted from Code Complete

Effort should be divided as Effort should be divided as follows:follows:

Project planning = 2-3% Requirements analysis = 10-25% Software design = 20-25%

If the above time is spent then

Coding = 15-20% Testing/debugging could = 30-

40%

Project tracking-- Project tracking-- How are we doing?How are we doing?

"Software Projects fall behind schedule one day at a time."

How do we know if we're on How do we know if we're on track?track? Conduct periodic project status

meetings in which each team member reports on progress and problems.

Evaluate the results of all reviews conducted throughout the SE process.

How do we know if we're on How do we know if we're on track?track? Determine whether formal

project milestones have been accomplished by the scheduled date.

Compare the actual start date to the planned start date for each project task.

How do we know if we're on How do we know if we're on track?track?

Managers need to meet informally with each team member to obtain their "subjective" assessment of progress to date and problems they anticipate.