Software Project Management - PowerPoint PPT Presentation

1 / 55
About This Presentation
Title:

Software Project Management

Description:

Once the rough scope of tasks has been defined in the WBS, we need ... refers to anything needed to fabricate or test components of the product ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 56
Provided by: gle9
Category:

less

Transcript and Presenter's Notes

Title: Software Project Management


1
Software Project Management
  • Estimation and scheduling
  • INFO 638
  • Glenn Booker

2
After the WBS
  • Once the rough scope of tasks has been defined in
    the WBS, we need to estimate each task in terms
    of duration and effort
  • From effort well get the cost of each task, and
    eventually the project
  • After estimation, can start to organize the
    project schedule

3
Welcome to Estimation!
  • This is often the most challenging part of
    project management
  • Most dont want to admit what their methods are
    for estimating work its just a WAG (wild
    approximate guess ?)
  • Estimation is the basis for creating a plausible
    schedule
  • Need to estimate the duration and effort of each
    task

4
Duration versus Effort
  • Duration, or time for a task, is the amount of
    calendar time needed to accomplish it
  • Effort is the number of working hours (or months
    or years) needed for a task or project
  • One week of effort is 40 hours, one month of
    effort is about 168 hours
  • May have units of staff-months, people-months,
    labor-months or man-months

5
Average Staffing
  • An easy measure of a project is the average
    number of people working on it equal to the
    effort divided by time
  • Ave staffing effort / time
  • A project might take 9 months (duration) and
    12,000 hours (effort)
  • Ave staffing(12,000 hrs / (168 hrs/mo))/
    9 months 7.9 people

6
Why Average Staffing?
  • Most software projects require few people in the
    beginning, peak in the middle of the project, and
    taper off later on as testing is completed

7
Resource Loading
  • Resource Loading is the number of people assigned
    to a task
  • Some tasks can be completed sooner if more people
    work on them
  • Sweatshops of people sewing shirts will produce
    more if there are more employees
  • Other tasks might take longer, if tasks are
    dependent upon each other

8
Task Duration Varies
  • How long does it take to drive from Philly to
    Baltimore?
  • Depends on how fast you drive, what route you
    take, traffic, weather, how much construction
    there is, etc.
  • Development tasks will vary in duration from one
    person to another depending on their skill level,
    motivation, outside influences, etc.

9
Creating a Good Estimate
  • There are six techniques for estimating the
    duration and effort of a task
  • Similar activities
  • Historical data
  • Expert advice
  • Delphi technique
  • Three-point technique
  • Wide-band Delphi technique

10
Similar activities
  • This just means estimate a task based on similar
    tasks in the past
  • If youve developed lots of web pages, you can
    safely estimate how long itll take to develop
    similar pages
  • A common rule of thumb is to
  • Take the time itd take you to do a task, double
    it, and add 10-20

11
Historical data
  • If you can find data from similar projects
    developed by your organization, they can form the
    basis for a good estimate
  • This assumes the project uses similar technology
    as previous projects
  • This is why big new projects want to see
    experience developing similar big projects to
    lend credence to your estimates

12
Expert advice
  • If you dont know anything about the task, ask
    someone who does!
  • Could find experts within your organization,
    outside consultants, vendors, academia, etc.
  • Notice the first three estimation methods depend
    on someone having experience doing the task before

13
Delphi technique
  • The Delphi technique is a formal way to get group
    consensus on a wild guess for the estimate
  • Get a group of people together
  • Tell them about the project and its tasks
  • Get them to all estimate the duration of each task

14
Delphi technique
  • Tabulate the guesses in a histogram called First
    Pass
  • For estimates in the outer quartile (lt25 and
    gt75), ask them for their rationale
  • Have everyone guess again, and retabulate the
    results Second Pass
  • Have the outer quartile defend their choices again

15
Delphi technique
  • Make a third set of guesses, and use the average
    value for the tasks estimate
  • Though it sounds a bit goofy, this method
    actually works pretty well

16
Three-point technique
  • The actual duration of a task could vary,
    depending on many factors
  • Hence there could be a distribution of possible
    values for the duration
  • Based on best judgment, determine the Optimistic,
    Most likely, and Pessimistic values for the
    duration, then use Estimate (O 4M P)/6

17
Wide-band Delphi technique
  • Combine the three point technique and Delphi to
    get the Wide-band Delphi technique
  • In each of the three Passes (sets of guesses),
    have each person estimate the Optimistic, Most
    likely, and Pessimistic values
  • Use results from the third Pass and apply the
    three point formula

18
Estimation Accuracy
  • Keep in mind that early estimates of a project
    could be off by a factor of four either way from
    the final effort (McConnell, Rapid Development),
    so dont treat the estimates as perfectly precise
  • Expect that estimation accuracy will improve
    throughout the project

19
Estimating Resources
  • While resources often refers to people on a
    project, it may refer to
  • People
  • Facilities
  • Equipment
  • Money
  • Materials

20
People Resources
  • People on a project are generally identified by
    their skills
  • Systems analyst, web developer, programmer,
    system administrator, database admin, etc.
  • For each activity or task, determine the skills
    needed to perform it
  • Your staff has a known set of skills
  • Then match up activities to staff (p. 107)

21
Facilities Resources
  • Part of planning a project is to consider where
    the people will be working
  • Might be able to use existing facilities
  • Large or long term projects may require leasing
    new facilities
  • Need to decide where to put them
  • Beware of communication lag between facilities

22
Equipment Resources
  • Some kinds of activities may require special
    equipment to perform them
  • This isnt the material needed to create the
    product equipment refers to anything needed to
    fabricate or test components of the product
  • Automated testing is the most common equipment
    need for software

23
Money Resources
  • Above and beyond the other resources, money may
    be needed for other expenses
  • Service contracts for non-project equipment
  • Travel expenses
  • Office supplies
  • Other overhead expenses not covered directly by
    the project

24
Materials Resources
  • Material costs include the cost of parts that
    become part of the completed product
  • This might include various kinds of servers and
    network equipment, software licensing, printers,
    etc.
  • This is often the biggest resource after labor

25
Organization Chart
  • Since we need to define the types of staff needed
    to perform each task, this feeds into developing
    the organization chart of the project
  • The roles needed for performing tasks should all
    appear on the org chart
  • Its called a Resource Breakdown Structure in the
    text (p. 108)

26
Assigning People to Tasks
  • Keep in mind that the number of people assigned
    to a task might be a fraction, or greater than
    one
  • Hence the duration and effort could be quite
    different
  • A low demand task might be assigned to a tenth of
    a person, so a 20-day duration would only have 2
    days of effort

27
Cost Estimation
  • Cost is easy to estimate once effort has been
    determined and assigned to specific roles
  • For labor cost, just multiply effort by the labor
    rate for that role
  • A senior programmer might cost 90/hr, so a
    10-hour task would cost 900

28
90/hr 187,200/year?!
  • Does that labor rate mean the programmer makes
    187.2k/year?
  • No, the labor rate also includes overhead
    expenses
  • Taxes, vacation, sick leave, health coverage,
    etc. all contribute to overhead
  • Pay for managers is often from overhead
  • Depending on the organization, ones salary is
    about 35-50 of the labor rate

29
Resource Planning
  • Now the real challenge of planning occurs
  • Need to take the projects needs for people and
    other resources, and make sure its feasible
  • Need to avoid committing a given person for
    multiple tasks at once, or scheduling two
    activities in the same facility on one day

30
Resource Planning
  • Another key is to do load balancing
  • Avoid having gaps in a persons schedule
  • If you need Pat to run tests in July and
    September, whats she going to do in August?
  • Also want to avoid large spikes in staffing needs
  • Implies a lot of people hired only briefly

31
Cost Control
  • The costs for the project consist of cost for all
    of the resources needed
  • To manage cost, need to get weekly reports of
    costs incurred, and compare to the plan
  • Variances are the difference between the actual
    and planned costs

32
Project Network Diagram
  • Now that the tasks and activities have been
    resourced (is that a word?), we can put them in
    order
  • Need to determine dependencies among the tasks
  • Which are sequential? Parallel?
  • Which tasks must finish together? Start together?

33
Project Network Diagram
  • The goals of the Project Network Diagram are to
    help identify key characteristics of tasks, and
    the project as a whole
  • When can each task start, at earliest?
  • When can we expect completion of the project?

34
Gantt Chart
  • Editorial note the text hates Gantt charts (p.
    119) whereas most projects Ive seen rely on
    them
  • Take your pick whether to use them or not

35
Gantt Chart
  • Identify major tasks, based on life cycle model
    and project needs
  • Determine size and schedule estimates for each
    major task
  • Identify sequential or parallel tasks, ongoing
    activities, and task dependencies

36
Gantt Chart
  • Identify milestones and work products wherever
    possible (decisions, documents, baselines)
  • Assign WBS to tasks
  • Determine timeline scales needed

37
Timelines
  • Timelines for a schedule may follow either a
    calendar schedule, or a relative schedule
  • Calendar schedule is broken into absolute time
    intervals based on actual time (e.g. Feb. 2004)
  • May use a second or third calendar scale of
    larger intervals (quarters, years)
  • Calendar (CY) or fiscal (FY) years may be used

38
Timelines
  • Relative schedule is measured from the start of
    the project - or some other key event - then uses
    time intervals counted from that event (e.g.
    Month 2 after grant received)

39
Gantt Chart
  • Label each activity with its WBS and task name,
    followed by a bar to represent its duration on
    the timeline
  • Milestones are generally a diamond symbol ?
  • Used for key decisions
  • Symbol format not critical, as long as its
    clear and consistent

40
Gantt Chart
41
Network Diagrams
  • Historic note early network diagrams (and some
    forms of PERT chart) used the lines between nodes
    to represent tasks
  • This is called activity on the arrow (AOA)

42
Network Diagrams
  • Now we use boxes to represent each task and the
    lines between them imply their relationship
  • Here, task 3.2 may start after 3.1 finishes, a
    finish-to-start (FS) dependency (very common)

43
Network Diagrams
  • The other dependencies are
  • When task A finishes, task B may finish (FF)
  • When A starts, B may start (SS)
  • When A starts, B may finish (SF)

44
Other Constraints
  • Other constraints may affect the relationship
    between tasks
  • Technical constraints, such as the way a task may
    need output from a previous task before they may
    begin
  • Management constraints, such as to meet
    competitive pressure, or get things done before a
    major event (holiday, conference, etc.)

45
Other Constraints
  • Interproject constraints, such as the need for a
    related project to finish their side of an
    interface before yours can be fully tested
  • Date constraints, where a specific event guides
    an activity, such as needing a task done no
    earlier than, no later than, or on a specific day

46
Lag
  • Lag can be used to specify delay between events
  • Customer surveys are distributed 30 days after
    product release thats a 30 day lag in the
    distribution task
  • Lag can be positive or negative

47
Creating the Schedule
  • These concepts allow the schedule to be created
  • For every task, determine its relationship to
    some other task, and lag (if any)
  • The early schedule gives the earliest times each
    task may start and finish
  • This defines the earliest start (ES) and earliest
    finish (EF) date for each task

48
Creating the Schedule
  • Conversely, the late schedule gives the latest
    start and finish times without changing the
    completion date
  • This defines the latest start (LS) and latest
    finish (LF) date for each task

49
Critical Path
  • A key output is the critical path, which can be
    defined as
  • The longest duration path in the network diagram,
    or
  • The series of tasks whose early and late
    schedules are the same dates, or
  • The set of activities with zero slack

50
Slack?
  • Slack (or float) is the amount of delay in
    starting or completing a task that can be
    tolerated without affecting some other task
  • Specifically, free slack is the time a task can
    finish without affecting the early schedule of
    anything after it
  • Total slack is how much completion of a task can
    be delayed without affecting the project
    completion date

51
Detailed Task Estimate
  • If we define not just the time Estimate (E) of
    each task, but also compute the earliest start
    and finish (ES, EF) and latest start and finish
    (LS, LF) and slack time, task name ID looks like

52
Editorial Comment
  • Most projects are doing well to come up with a
    plausible estimate (E) for each task they
    arent going to determine ES, EF, LS, LF, and
    slack time for every task too!!

53
Schedule Compression
  • Often you need to shrink the projected completion
    date
  • Look for tasks which can be done simultaneously
    instead of sequentially
  • Look for tasks which may begin when part of a
    previous task is done (instead of all of that
    task)
  • Focus on critical path and near-critical path
    tasks

54
Schedule Compression
  • Look for tasks that can be assigned to more than
    one person (partitionable)
  • Look for possible changes to task dependencies
    (beware of added risk)
  • SF to SS, for example

55
Management Reserve
  • At the project level, try to keep a little
    reserve of time (padding) to allow for likely
    schedule slips
  • Dont do this on individual tasks tends to
    bloat the schedule
  • 5-10 is a good schedule reserve
  • So a 6-month project might try to finish 6-13
    work days early
  • 6 months 26 weeks 130 work days
Write a Comment
User Comments (0)
About PowerShow.com