CSC 480 Software Engineering Project Planning
Proposal writing Project planning and scheduling Project costing Project monitoring and reviews Personnel selection and evaluation Report writing and presentations Management Activities
Project Scheduling Dependent on project managers intuition and experience Split project into tasks and estimate time and resources required to complete each task Organize tasks concurrently to make optimal use of workforce Minimize task dependencies to avoid delays caused by one task waiting for another to complete
The Project Scheduling Process
Scheduling Problems Estimating the difficulty of problems and hence the cost of developing a solution is hard Productivity is not proportional to the number of people working on a task Adding people to a late project makes it later because of communication overheads The unexpected always happens. Always allow contingency in planning
Bar Charts & Activity Networks Graphical notations used to illustrate the project schedule Show project breakdown into tasks. Tasks should not be too small. They should take about a week or two Activity charts show task dependencies and the the critical path Bar charts show schedule against calendar time
Task Durations & Dependencies
Activity network
Activity Timeline
Staff Allocation
Risk Management A risk is a probability that some adverse circumstance will occur. Project risks affect schedule or resources Product risks affect the quality or performance of the software being developed Business risks affect the organisation developing or procuring the software
The Four Risk Activities Identification Mindset: try to continually identify risks Retirement planning Prioritization Retirement or mitigation
Risk Identification Technology risks People risks Organisational risks Requirements risks Estimation risks
Risks and Risk Types
Risk Analysis Assess probability and seriousness of each risk Probability may be very low, low, moderate, high or very high Risk effects might be catastrophic, serious, tolerable or insignificant
Project finish Risk Management Mindset Project start IdentificationRetirement 2. “Java skills not high enough.” 1. “May not be possible to superimpose images adequately.” 1. Retirement by conquest: Demonstrate image super- imposition Risk 1 Risk 2 Risk 1 Project finish Risk 2 2. Retirement by avoidance: Use C++ Project start
Likelihood = least likely Impact = least impact Retire- ment cost = lowest retirement cost Priority computation Resulting priority Lowest number handled first The highest priority risk 10 (most likely) 10 (most impact) 1 (lowest retiremen t cost) (11-10) *(11-10) *1 1 The lowest priority risk 1 (least likely) 1 (least impact) 10 (highest retiremen t cost) (11-1) *(11-1) * Compute Risk Priorities
Constructive Cost Model (COCOMO) Can we use the estimated KLOC as an effort estimation? KLOC / (KLOC/(man*hr)) = man * hr The answer is NO The communication, documentation, and integration efforts increase faster than the product size grows Effort (in man-month) is exponential in size
COCOMO Once we know the effort estimation in man-month, can we just divide it by the number of developers to get the duration? Duration = Effort / (# developers) The answer is NO, again It takes one chef five hours to cook a turkey. Can we then expect five chefs get one ready in one hour?
COCOMO Formulas (Boehm) Applies to design through integration & test. *“Effort” = total person-months required. (2) Duration for increasing Effort* ( y b 2.5x 0.35 ) (1) Effort* for increasing LOC ( y b 3x 1.12 ) exponent: < 1 > 1
Basic COCOMO Formulae Effort in Person-months = a KLOC b Duration = c Effort d Software Project a b c d Organic Semidetached Embedded Empirical factors due to Boehm [Bo]