Software Project Scheduling Principles
- Compartmentalization - the product and process must be decomposed into a
manageable number of activities and tasks
- Interdependency - tasks that can be completed in parallel must be
separated from those that must completed serially
- Time allocation - every task has start and completion dates that take the
task interdependencies into account
- Effort validation - project manager must ensure that on any given day
there are enough staff members assigned to completed the tasks within the time
estimated in the project plan
- Defined Responsibilities - every scheduled task needs to be assigned to a
specific team member
- Defined outcomes - every task in the schedule needs to have a defined
outcome (usually a work product or deliverable)
- Defined milestones - a milestone is accomplished when one or more work
products from an engineering task have passed quality review
Relationship Between People and Effort
- Adding people to a project after it is behind schedule often causes the
schedule to slip further
- The relationship between the number of people on a project and overall
productivity is not linear (e.g. 3 people do not produce 3 times the work of 1
person, if the people have to work in cooperation with one another)
- The main reasons for using more than 1 person on a project are to get the
job done more rapidly and to improve software quality.
Project Effort Distribution
Generally accepted guidelines are:
- 02-03 % planning
- 10-25 % requirements analysis
- 20-25 % design
- 15-20 % coding
- 30-40 % testing and debugging
Software Project Types
- Concept development - initiated to explore new business concept or new
application of technology
- New application development - new product requested by customer
- Application enhancement - major modifications to function, performance, or
interfaces (observable to user)
- Application maintenance - correcting, adapting, or extending existing
software (not immediately obvious to user)
- Reengineering - rebuilding all (or part) of a legacy system
Software Process Degree of Rigor
- Casual - all framework activities applied, only minimum task set required
(umbrella activities minimized and documentation reduced)
- Structured - all framework and umbrella activities applied (SQA, SCM,
documentation, and measurement tasks are streamlined)
- Strict - full process and umbrella activities applied (high quality
products and robust documentation produced)
- Quick reaction - emergency situation, process framework used, but only
tasks essential to good quality are applied (back filling used to develop
documentation and conduct additional reviews after product is delivered)
Rigor Adaptation Criteria
- Size of project
- Number of potential users
- Mission criticality
- Application longevity
- Requirement stability
- Ease of customer/developer communication
- Maturity of applicable technology
- Performance constraints
- Embedded/non-embedded characteristics
- Project staffing
- Reengineering factors
Task Set Selector Value
- Computed by scoring rigor adaptation criteria and adjusting the scores
using differential weighting based on project characteristics.
- Once computed the task selector value can be used to select the
appropriate task set (casual, structured, strict) for the project.
- It is OK to choose a less formal degree of rigor when the task selector
value falls in the overlap area between two levels of rigor, unless project
risk is high.
Concept Development Tasks
- Concept scoping - determine overall project scope
- Preliminary concept planning - establishes development team's ability to
undertake the proposed work
- Technology risk assessment - evaluates the risk associated with the
technology implied by the software scope
- Proof of concept - demonstrates the feasibility of the technology in the
software context
- Concept implementation - concept represented in a form that can be used to
sell it to the customer
- Customer reaction to concept - solicits feedback on new technology from
customer
Scheduling
- Scheduling tools should be used to schedule any non-trivial project.
- PERT (program evaluation and review technique) and CPM (critical path
method) are quantitative techniques that allow software planners to identify
the chain of dependent tasks in the project work breakdown structure that
determine the project duration time.
- Timeline (Gantt) charts enable software planners to determine what tasks
will be need to be conducted at a given point in time (based on estimates for
effort, start time, and duration for each task).
- The best indicator of progress is the completion and successful review of
a defined software work product.
- Time-boxing is the practice of deciding a priori the fixed amount of time
that can be spent on each task. When the task's time limit is exceeded,
development moves on to the next task (with the hope that a majority of the
critical work was completed before time ran out).
Earned Value Analysis
- Earned value is a quantitative measure of percent of project completed so
far.
- The total hours to complete the entire project are estimated and each task
is given an earned value based on its estimated percentage contribution to the
total.
Error Tracking
- Allows comparison of current work to past projects and provides a
quantitative indication of the quality of the work being conducted.
- The more quantitative the approach to project tracking and control, the
more likely problems can be anticipated and dealt with in a proactive manner.