Excellence in Software Engineering Optimized Level Manage d Level Defined Level SE470 - Project Management Workflow Excellence in Repeatable Level Initial Level Software Engineering Optimizing Level Managed Level Defined Level Repeatable Level Initial Level Larry Dribin, Ph.D. - DePaul University Phone: (847)807-7390 - Fax: (847)459-1650 Email: dribin@cs.depaul.edu Copyright 2001 - Larry Dribin, Ph.D. - v1 10-21-01 Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 1 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Agenda Repeatable Level Initial Level Lecture / discussion on Project Management Workflow & Architecture A1 - Informal presentation of each person’s experiences (Complete) A2 - Present, discuss and plan next interation Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 2 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Best Practices Repeatable Level Initial Level “An organized and documented set of principles, methods and processes that increase quality and productivity of software development.” Source: Rational - “Principles of Managing Iterative Development v2.0” Rational’s View of Best Practices: Develop Iteratively Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt XP View of Best Practices: The Planning Game Small releases Metaphor Simple design Testing Refractoring Pair Programming Collective ownership Continuous integration 40-hour work week On-site customer Coding standards SE470 - ProjMgmt - 3 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Rational Unified Process - Phases Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Repeatable Level Initial Level SE470 - ProjMgmt - 4 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iterations and Phases Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Repeatable Level Initial Level SE470 - ProjMgmt - 5 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iterative Development Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Repeatable Level Initial Level SE470 - ProjMgmt - 6 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Project Management Workflow Repeatable Level Initial Level Coarse- Grained Plan Iter. #1 Iter. #2 v v 5/01 6/01 Iter. #3 Iter. #4 v v 7/01 8/01 Iter. # 5 Beta1 Beta 2 v 9/01 v 11/01 Product Release v v 12/01 2/02 Fine-Grained Plan Copyright August 7/29 8/5 Duration 75 days ID 1 Task Name Project Management 2 Initial Planning 4 days 3 Analysis 3 days 4 Desing 4 days 5 Code 5 days 6 Test 2 days 7 Integrateion Test 5 days 8 Deploy 5 days 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt 8/12 8/19 8/26 SE470 - ProjMgmt - 7 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Inception Objectives Establish the Projects Scope Define the high level Requirements / Use Cases Exhibit a candidate Architecture Estimate the Cost & Schedule Estimate the Risk Activities Formulate the Scope Prepare a Business Case which include: Risk Management, Staffing, Project Plan, & Tradeoffs between: Cost, Schedule & Profitability Develop a Candidate Architecture Repeatable Level Initial Level Outcomes / Artifacts Vision Document Use-Case Model Survey (list of all use cases and actors) Business Case Risk Assessment Project Plan Evaluation Criteria Stakeholder Concurrence Requirements Understanding Credibility of estimates Depth & Breadth of architectural prototype Actual Expenditures vs. Planned Expenditures Inception -> Elaboration -> Construction -> Transition Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 8 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Elaboration Objectives Define & validate the Architecture Baseline of Vision Baseline of Construction Plan Demonstrate that Architecture will support the Vision Activities Elaborate the Vision Elaborate: – Process – Infrastructure – Tools & Automation Elaborate the Architecture – Begin to Evaluate Components Repeatable Level Initial Level Outcomes / Artifacts Use-Case Model Supplementary Requirements Software Architecture Description Executable Architectural Prototype Development Plan Evaluation Criteria Is the Vision stable? Is the Architecture Stable? Does the Prototype show that the risks have been addressed? Is the construction phase plan sufficiently detailed? Do all stakeholders agree that the vision can be achieved with the current plan and architecture? Is the resource plan acceptable? Inception -> Elaboration -> Construction -> Transition Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 9 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Construction Objectives Achieve useful versions Achieve adequate quality Minimize development costs Construct as rapidly as possible Activities Complete Component Development Resource Management and process optimization Assess product releases against acceptance criteria and Vision Repeatable Level Initial Level Outcomes / Artifacts Software Product Releases Description of current release Users Manuals Evaluation Criteria Is the product release stable? Are all stakeholders ready for transition? Are resource expenditures vs. planned expenditures still acceptable Inception -> Elaboration -> Construction -> Transition Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 10 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Transition Objectives Move the software product to the user community Achieve user self-support Achieve stakeholder concurrence that deployment baselines are complete and consistent with the vision Activities Rollout of Product Repeatable Level Initial Level Outcomes / Artifacts Deployed Software Beta Testing Parallel Operation Conversion of Data Bases Evaluation Criteria Is the user satisfied? Are the actual resources vs. planned resources acceptable – Cutover to production – Commercial Packaging & Shipping Training of Users Tuning and bug fixing Add new features Assess deployment baseline against the vision Inception -> Elaboration -> Construction -> Transition Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 11 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iteration within the Phases Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Repeatable Level Initial Level SE470 - ProjMgmt - 12 Excellence in Iteration is a way to Control Risk & Poorly Defined Requirements Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level Selected Scenarios Project Management Requirements Analysis & Design Implementation Test (Validation & Verification) Deployment Product Release The Iteration Life Cycle is a mini-waterfall. Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 13 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Metrics are the Basis of Iteration Assessment Iteration ‘N’ Costs & Schedule Actuals Quality Assessment • Test Results • Defect Density • Architecture Stability • Requirements Stability Copyright Repeatable Level Initial Level Iteration ‘N’ Assessment Compare iteration actual costs, schedule and functional content with plan Determine rework (if any) Determine what risks have been eliminated or reduced Determine what risks remain and any new risks Update overall project plan for next iteration Prepare detailed plan for next iteration 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Revised Risk Plan Revised Project Plan • total Cost • Schedule • Scope Iteration ‘N+1’ Plan • Cost • Schedule • Content SE470 - ProjMgmt - 14 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Benefits of an Iterative Approach Repeatable Level Initial Level Risk Mitigation Requirements Risks Integration Risks Architectural Risks Easier to Accommodate Change Requirements Tactical Technology Learning As You Go Increased Opportunity for Reuse Better overall Quality Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 15 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Core Workflows Repeatable Level Initial Level Engineering Workflows Business Modeling Requirements Definition Analysis and Design Implementation Test Deployment Supporting Workflows Project Management Configuration and change management Environment Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 16 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Architectural Views Repeatable Level Initial Level Definition System Organization Selection of Structural elements and their interfaces and their behavior Composition of these elements into progressively larger subsystems Architectural Style that guides this organization Presentation Different Views for Different Stakeholders – – – – – – Copyright Analyst End user Project Manager Designer Developers etc. 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Programmers End Users Logical View End Users Implementation View Use Case View Process View System Integrators Deployment View System Engineering The 4+1 View SE470 - ProjMgmt - 17 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Use Cases Repeatable Level Initial Level A Use Case is a sequence of actions a system performs that yields an observable result of value to a particular actor An Actor is someone or something outside the system that interacts with the system Transfer Money Check Balance Withdraw Money Client Use Case for an ATM (RUP p100) Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 18 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Metaphor - XP’s View of Architecture Repeatable Level Initial Level Architecture is just as important in XP projects as it is in any software project Each XP Project is guided by a single overarching metaphor Part of the Architecture is captured in the “Systems Metaphor” The XP Metaphor replaces much of what other people call “architecture” Issues with “architecture” Architectures do not push system into any sense of cohesion An Architecture is the big boxes and connections By asking for a metaphor, we are likely to get an architecture that is easy to communicate and elaborate Put a simple “Architecture” in place and evolve it Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 19 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Role of pictures in design: Repeatable Level Initial Level There is nothing wrong with pictures Trouble drawing pictures can give you a subtle clue that the design is in trouble You can design quickly with Pictures Anyone can design with Pictures Issues with Pictures They can’t give you concrete feedback like tests of code can It is hard to keep the Pictures and the Code in synchronization Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 20 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Full Life Cycle Software Engineering Processes Repeatable Level Initial Level IT Value Chain Needs • Project Evaluation & Prioritization (Work Request) Analysis Design • Requirements Management • Software Product Engineering • Software Product Engineering Build • Software Product Engineering Operate • Systems Management • Call Management • Tech. Support & Maintenance Organization Process Function Performance Measurement Configuration Management & Documentation Standards Quality Assurance Subcontractor Management Project Planning Project Tracking & Oversight Technology Organization Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Technology Strategy SE470 - ProjMgmt - 21 Excellence in Software Engineering Optimized Level Manage d Level Defined Level The Planning Game (XP p 86) The Pieces - Story Cards The Players Business Development The Moves Exploration – Write a story – Estimate a story – Split / refine a story Commitment – Sort by value – Sort by risk – Set Velocity (how fast can the development team go) – Choose scope Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt Repeatable Level Initial Level The Moves (Continued) Steer – Iteration - Business picks one iteration worth of the most valuable stories – Recovery - If Development overestimated, it can ask the Business to revise the stories for this iteration – New Story - If Business needs a new story, it can write the story and – Re-estimate - If development feels that the plan is no longer accurate, it can re-estimate all of the remaining stories SE470 - ProjMgmt - 22 Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iteration Planning (XP p 91) Repeatable Level Initial Level The Pieces - Task Cards The Players - Individual Programmers Elaboration Phase Write a task Split / combine tasks Commitment Phase Accept a Task Estimate a Task Set Load Factor Balancing Steering Phase Record Progress Recovery Verify Story Copyright 2001 - Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 23