RUP Project Estimation and Planning Demystified
RUP Project Estimation and Planning Demystified. Bob Heinemeyer Principal Consultant Capable Software, LLC. What We Will Be Covering. Effort estimation Utilizing Use Case Point Analysis (UCPA) Coarse-grained planning (See artifact: Software Development Plan)
RUP Project Estimation and Planning Demystified
E N D
Presentation Transcript
RUP Project Estimation and Planning Demystified Bob Heinemeyer Principal Consultant Capable Software, LLC
What We Will Be Covering • Effort estimation • Utilizing Use Case Point Analysis (UCPA) • Coarse-grained planning (See artifact: Software Development Plan) • Utilizing standard RUP project assumptions concerning schedule and effort • Utilizing iteration patterns • Project planning and estimation spreadsheet
What We Won’t Be Covering • Management planning • Project organization • Metrics • Quality assurance • Communication • Fine-grained planning (See artifact: Iteration Plan) • UCPA computational details • RUP details
What’s Mystifying • 31 Roles • 83 Artifacts • 148 Activities • Four phases • Iterations (?!) • Just-enough/Just-in-time philosophy • CIO wants cost, schedule and staffing numbers by next Friday!
RUP Overview Disciplines
What Is Use Case Point Estimation? • Procedure for doing analytical estimation of effort very early in project lifecycle • Uses fragmentary use cases and actors plus characteristics of the project and development environment as basis • Variation on Function Point Analysis
UCPA: Actors • Actor: someone or something outside the system that interacts with the system. • Actor type • Simple: another system with defined API • Average: another system interacting via protocol (e.g., TCP/IP) • Complex: human interacting through GUI or web
UCPA: Use Cases • Use case: sequence of actions that yields an observable result of value to an actor. • Use case type • Simple: simple piece of work; simple UI; 1 entity • Average: more difficult; more UI design; >1 entities • Complex: very difficult; complex UI or processing; >2 entities
Phase Level Standard Effort and Schedule Assumptions Walker Royce, Software Development Project Management: A Unified Approach. Addison Wesley, 1998, p.148.
Discipline Level Standard Effort Assumptions Source: Walker Royce, Software Development Project Management: A Unified Approach. Addison Wesley, 1998, p.148
Iteration Pattern • A set of iterations with a particular configuration of lengths, numbers and objectives that is appropriate for projects with certain characteristics. • Analogous to design patterns
Iteration Pattern: Incremental Lifecycle • Strategy • determine user needs • define the system requirements • perform the rest of the development in a sequence of builds, each build adding more capabilities until the system is complete. • Project Characteristics • The problem domain is familiar. • Risks are well-understood. • The project team is experienced. • Iteration Pattern • a short Inception iteration to establish scope and vision, and to define the business case • a single Elaboration iteration, during which requirements are defined, and the architecture established • several Construction iterations during which the use cases are realized and the architecture fleshed-out • several Transition iterations to migrate the product into the user community
Iteration Pattern: Evolutionary Lifecycle • Strategy • acknowledges user needs are not fully understood • all requirements cannot be defined up front, they are refined in each successive build • Project Characteristics • The problem domain is new or unfamiliar. • The team is inexperienced • Iteration Pattern • a short Inception iteration to establish scope and vision, and to define the business case • several Elaboration iterations, during which requirements are refined at each iteration • a single Construction iteration, during which the use cases are realized and the architecture is expanded upon • several Transition iterations to migrate the product into the user community
Iteration Pattern: Incremental Delivery Lifecycle • Strategy • phased deliveries of incremental functionality to the customer • time-to-market pressures, where delivery of certain key features early can yield significant business benefits • requires a very stable architecture • Project Characteristics • The problem domain is familiar: • the architecture and requirements can be stabilized early in the development cycle • there is a low degree of novelty in the problem • The team is experienced. • Incremental releases of functionality have high value to the customer. • Iteration Pattern • a short Inception iteration to establish scope and vision, and to define the business case • a single Elaboration iteration, during which a stable architecture is baselined • a single Construction iteration, during which the use cases are realized and the architecture fleshed-out • several Transition iterations to migrate the product into the user community
Iteration Pattern: Grand Design Lifecycle • Strategy • traditional waterfall approach • hard to avoid additional iterations in the transition phase. • Project Characteristics • a small increment of well-defined functionality is being added to a very stable product • the new functionality is well-defined and well-understood • The team is experienced, both in the problem domain and with the existing product • Iteration Pattern • a short Inception iteration to establish scope and vision, and to define the business case • a single very long Construction iteration, during which the use cases are realized and the architecture fleshed-out • several Transition iterations to migrate the product into the user community
Project Planning & Estimation Spreadsheet • Performs planning and estimation extremely early in Inception by combining standard RUP project assumptions, with Iteration Patterns and Use Case Point Analysis • Best used as iterative, “what if” tool • Requires RUP roles Software Architect, Process Engineer, Project Manager and System Analyst • One to four individuals, usually two. • Brief demo
Future A web-based RUP project planning tool Contact: bob.heinemeyer@capablesoftware.com (602) 620-3882 www.capablesoftware.com