html5-img
1 / 36

Planning and Estimating Development Projects

Planning and Estimating Development Projects. I. Planning: Where to Begin?. Determine the required activities. work breakdown structure Determine the sequence of activities. Estimate time required for each task. Allocate staff and resources to each task.

Lucy
Download Presentation

Planning and Estimating Development Projects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Planning and Estimating Development Projects

  2. I. Planning: Where to Begin? • Determine the required activities. • work breakdown structure • Determine the sequence of activities. • Estimate time required for each task. • Allocate staff and resources to each task. • Document the schedule (e.g., CPM network or Gantt chart).

  3. Work Breakdown Structure • Hierarchical list of tasks required to complete a system • Usually based on chosen systems development methodology • Rapid Application Development (RAD) with IEF (TI methodology) • Structured Analysis & Design • etc.

  4. Identifying Activities: 3 Approaches • Checklist: List of tasks in methodology • effective for small, low-risk projects • quick & easy but ... emphasizes process, not product • Matrix: Development stage X system component • effective for small, low-risk projects but confusing for novice developers • allows flexibility; no preset sequence of activities

  5. Identifying Activities.... • Product Delivery: useful for large or high-risk projects • partition system into smaller deliverables • subsystems • data capabilities: acquisition, storage, manipulation, retrieval, distribution • use checklist or matrix to identify activities for each phase

  6. Sequencing Tasks • Task dependencies • Task A provides an input to Task B • Concurrent tasks • Task A does not provide any inputs to Task B • Number of concurrent tasks cannot exceed number of development team members • Use CPM network to determine and model sequence and concurrency.

  7. Project Mgmt Tools & Techniques • Planning and Scheduling Techniques: PERT, CPM Network, Gantt Chart • Estimating Techniques: Sum-of-tasks, Function Point Analysis, 3xProgramming, COCOMO • Measurement Techniques: Software metrics, i.e., function points, feature points, complexity metrics, cost per defect, cost per KLOC, etc.

  8. Project Effort vs. Project Schedule • EFFORT: the total time required to complete a project assuming • one person only • all tasks must be performed sequentially • Equal to sum of times for all project tasks • SCHEDULE: the minimum time to complete a project assuming • multiple people • concurrent tasks • Equal to sum of times for critical path tasks SCHEDULE = EFFORT if all tasks must be performed sequentially!

  9. Two Techniques for Project Planning • CPM Network: graphic representation of tasks, time allotted to each, and task dependencies • good tool for planning and monitoring • Gantt Chart: a more text-based planning technique; shows tasks, time and personnel allotted to each, and task dependencies (though not as clearly as the CPM) • good tool for planning, monitoring, and coordinating (can include float time and assignment of alternative personnel

  10. Critical Path Method (CPM) Network 2 D 3 E 2 A 2 B 1 C 1 S 1 3 E F 2 G 1 4 Critical path = A + D + E = 7 weeks Minimum schedule = 7 weeks Slack time: B & F can work on D; C can work on D, E, or G; G can work on E.

  11. Gantt Chart

  12. Strategies for Reducing Schedule • Transfer workers from slack paths to critical path. • slack: activity not on critical path that requires less time than a concurrent activity on the critical path • critical path: every activity on this path must begin and end on time to meet the project schedule

  13. Strategies .... • Allocate more money, resources, and personnel to the critical path (e.g., hire consultants, buy development tools) • Perform more tasks concurrently (if possible!!!)

  14. Allocating Staff • Roles: • Technical Staff: Project manager, architect, systems analysts, programmer analysts, data analysts, programmers, DB administrator, QA, technical writers • End-User Staff: Business analyst, trainers, end-users on development team, user-manager, user-sponsor, steering committee, administrative aides

  15. Allocating Resources • Resources: • Human: define title, name, allocation to project (%), rate, start and end dates; define external consulting needs • Technical: define hardware needs and usage; ensure availability of software (e.g., CASE tools, 4GLs, GUI generators, etc.) • Overhead: define office space needs, communication hook-ups, supplies, travel, etc.

  16. Issues in Resource Allocation • Two “half-people” do not equal one “whole-person.” • Match team member skills to development tasks; provide training if necessary. • Assess team member skill level and productivity.

  17. Planning Guidelines • Keep deliverable products small. • Partition system to reduce creeping requirements, complexity, and team size (management overhead) and to maintain user interest • Manage the product, not the process. • Set product delivery points that result in sign-offs

  18. Planning Guidelines .... • Set enough milestones for effective management. • Rule of thumb: one milestone (measurable activity) per team member per week • Prepare several plans: a general one early on, more detailed ones for each development stage as you come to it

  19. Planning Guidelines .... • Involve the right people. • Review the plan with end-users, user-managers, and user-sponsor; with maintenance teams of systems with which the project system interfaces • Consult with technical support staff, operations management, etc. to schedule technical resources (e.g., CPU time)

  20. II. Estimating • Sum of Tasks** • Lines of Code • Three times Programming • Life Cycle Stage Model** • COCOMO: Constructive Cost Model • Function Point Analysis**

  21. A. Sum of Tasks • Identify all the tasks required to complete the project. • Estimate the effort required for each task. [Requires experience!!] • Sum the individual task effort estimates, giving project effort. • Determine project schedule by drawing a CPM Network model.

  22. Example of Sum of Tasks 2 D 3 E 2 A 2 B 1 C 1 S 1 3 E F 2 G 1 4 Effort = 2 + 1 + 1 + 3 + 2 + 2 +1 = 12 weeks Critical path = A + D + E = 7 weeks Project schedule = 7 weeks

  23. B. Life Cycle Stage Model

  24. Life Cycle Stage Model .... • Estimate the effort required to complete one of the major stages, e.g., Determine Requirements. • Calculate total effort. • Distribute total effort over other activities. • Adjust for concurrent tasks.

  25. Example of Life Cycle Stage Model • Estimate that Determine Requirements will consume 5 effort-weeks. • 5/X ~ 13/100; X = 38.5 = total effort • Specify Design: D/38.5 ~ 23/100; D = 8.85 (9) effort-weeks • Construct System: C/38.5 ~ 36/100; C = 13.9 (14) effort-weeks

  26. C. Function Point Analysis • Defines project size in terms of the number and complexity of the functions that must be delivered. • Can be used to compare projects and to determine the relative effort to complete a project. • Best approach: Build historical database of projects and develop a model specific to your organization.

  27. How to Perform FPA • Identify the functions to be delivered (input, output, files, queries, interfaces). • Categorize functions according to type and complexity to estimate the number of functions in each category. • Multiply each function by a complexity weight to calculate unadjusted function points (UFP).

  28. Functions • Inputs: User inputs of data or controls. • Outputs: Distinct data or signal outputs. • Files: Number of logical data files. • Queries: User queries requiring a response. • Interfaces: Shared applications, data and control information.

  29. Complexity Weight Scale

  30. Ratings Defined • Simple: minimal file accesses, few different data types, minimal user involvement. • Complex: many file accesses, many different data types, extensive user involvement.

  31. Project Influencing Factors • Identify factors that will influence project complexity: • Data communication facilities • Distributed functions - Data volumes • On-line functions - Transaction rates • Conversion difficulty - Reusability • Performance objectives - Multiple sites • Rate from 0 (little or no difficulty) to 5 (great difficulty)

  32. Calculating FP Value • Calculate total of all the PIF values. • Calculate Processing Complexity Adjustment (PCA) = (sum PIF * .01) + .65 • Calculate Adjusted Function Points (AFP) = PCA * UFP

  33. Example of FPA: PIF

  34. Example of FPA

  35. Example of FPA • PCA = 14 * .01 + .65 = .79 • AFP = PCA * UFP = .79 * 291 = 230 AFP • Schedule-months = AFP .4 = 230 .4 = 9 SM • Staffing = AFP/150 = 230/150 = 2 developers • Documentation = AFP 1.15 = 520 pages • Productivity = AFP/person-month • Quality = error/AFP • Cost = $/AFP

  36. Conclusion • Any plan is better than no plan. • A “ballpark” estimate is better than no estimate. • Planning and estimating are iterative activities. • Nonetheless ... the best-laid plans of mice and men often go astray! (R. Burns)

More Related