Daddy's Technology Notes

Read, think, and write down the notes.

Tuesday, October 04, 2005

Scheduling

Notes for chapter 9 of "Rapid Development" by Steve McConnell.

What's does scheduling have to do with Rapid Development? It has to do with creating an environment that isn't characterized by hasty, error-prone decision making and is conducive to effective planning, thoughtful design, and time-saving quality assurance.

Note: time planning is not to find a short-cut solution to the task, which always leads to a nasty outcome embrassing yourself, instead, it is to look for a effective way to the task with better quality.


1. Overly optimistic scheduling

This is a tradition in software development.

WinWord example: Bill Gates wanted it to be done in 12 months, it ended up with 5 years. The aggressive schedule came out with 4 project lead, 3 quitted because of schedule pressure, and 12 months to stabilize the product(normally 3 month).

Reasons for overly optimistic scheduling:

  • External deadline;
  • Manager or customers' refusal;
  • Manager/developer underestimate the oost;
  • Management/sales underestimate;
  • New features piled up;
  • Poorly estimation

Effects:

  • Schedule accuracy;
  • Quality of project planning;
  • Adherence to plan;
  • Underscoping the project;
  • Project focus;
  • Customer relations;
  • Premature convergence;

Excessive schedule pressures on manager and developers.

  • Motivation;
  • Gambling;
  • Creativity;
  • Burnout;
  • Turnover;
  • Long-term rapid development;
  • Relationship between developers and managers;

The bottom line: It just doesn't work.

2. Beating schedule pressure

Schedule pressure produces damaging. short-term thinking on 2 levels:

  • Local level, short-cut-taking on specific projects and damage them;
  • Global level, fire-fighting mentality about schedule pressure itself.

3 factors causing the pressure:

  • Wishful thinking
  • Little awareness of the software estimation tory or the real effect of overly optimistic scheduling
  • Poor negotiating skill: developers are good at estimation, but poor at defending their estimate.

How to negotiate effectively? principled negotiation: face the brutal facts, and take win-win alternatives, keep the schedule, cost, and product in balance.

  • Separate the People from the Problem: improve the relationship with ur manager/customer and be cooperative;
  • Focus on interests, not positions;
    • Appeal to true development speed: be firmly connected to reality and realistic schedule
    • Appeal to increasing the chance of success;
    • Invoke your organization's track record: not to make same mistakes again?!
  • Invent options for mutual gain;
    • Product: +/- features
    • Resources: +staffing, tools, expense
    • Schedule: coarse estimates, set goad instead of deadline, staged delivery.;
    • Management: overtime pay, bonus, etc
  • Insist on using objective criteria
    • don't negotiate the estimate itself: talk about the input,.
    • insist that the estimate be prepared by a qualified party.
    • insist on a rational estimation process: nail down the details, don't provide unrealistic precision, reestimate after changes.
    • weather the storm: endure the thunderstorm of a unwelcome estimate earlier, the better.

0 Comments:

Post a Comment

<< Home