Transcript Document
SE 470 Software Development Processes James Nowotarski 05 May 2003 Course Map Week 1 2 3 4 5 6 7 8 9 Content . Rational Unified Process . Extreme Programming Implementation . Tools, Training, Roles . CMM, Metrics . Selection & Evaluation Briefings (Term Papers) Assignments Quizzes Memorial Day Overview . Introduction . History 10 11 Today’s Objectives • Understand who uses methodology and why • Understand key strategies and issues affecting methodology deployment, adoption, and usage • Be able to outline a methodology deployment plan Today’s agenda Topic Duration • Recap 15 minutes • Who reads methodology and why 30 minutes • Deployment, adoption, use 45 minutes • *** Break 10 minutes • Deployment, adoption, use (cont.) 45 minutes • Term Project 10 minutes • Quiz 40 minutes Today’s agenda Topic Duration • Recap 15 minutes • Who reads methodology and why 30 minutes • Deployment, adoption, use 45 minutes • *** Break 10 minutes • Deployment, adoption, use (cont.) 45 minutes • Term Project 10 minutes • Quiz 40 minutes Lightweight Methods Approach References XP www.extremeprogramming.org www.xprogramming.com Crystal A. Cockburn, Agile Software Development, Addison-Wesley, 2001 SCRUM K. Schwaber and M. Beedle, Agile Software Development with Scrum, Prentice Hall, 2001. Adaptive Software Development J. Highsmith, Adaptive Software Development, Dorset House, 2000. FDD S. Palmer, A Practical Guide to Feature-Driven Development, Prentice Hall, 2002. Agile - General http://www.agilealliance.org/home What is XP First Principles • • • • • Rapid feedback Assume simplicity Incremental change Embrace change Quality work What is XP Key Features • Pair programming • Test all the time – unit testing – functional testing – continuous integration • Short iterations, small releases – 2 month releases, 2 week iterations • Incremental planning (learning to drive) • Customer on-site as integral part of team • Do simplest thing that could possibly work What is XP Key Features • • • • 40-hour week Coding standards Refactoring and evolutionary design Metaphor to aid in understanding the architecture • Only highest priority tasks are worked • Collective ownership What is XP Cost of change y = axp Req Anal. Des. Impl. Test Prod Life cycle phase What is XP Cost of change XP purports to change the curve so that the cost to find and repair software problems does not rise dramatically over time Time When to Use XP • • • • • Small to medium sized teams Vague or rapidly changing requirements 2-10 programmers Responsible and motivated developers Not sharply constrained by existing computing environment • A reasonable job of executing tests can be done in a fraction of a day • Customer who understands and will get involved When Not to Use XP • Culture – Pointing the car – Big specification – Long hours • 20 or more programmers – though projects are emerging with up to 50 developers • More than 15 months’ duration • More than 50K source lines of code (SLOC) • Fixed price contracts • Technology barriers – Exponential cost curve – Long time needed to get feedback • Geographic separation • Architecture not well established • Developers are low quality and motivation RUP vs. XP Attribute RUP (“Heavyweight”) XP (“Lightweight”) Time and Effort Allocation 2 weeks-6 months 2 weeks - 2 months Architecture Stabilized during Elaboration phase Just enough to support functionality Scope of Activities and Artifacts Broad Narrow Omits: • Business modeling • Deployment Project size Small to Very Large Small to Medium Artifacts 25-30 in small project roadmap roughly 30 Roles ~ 30 (5 in small project 7 roadmap) Today’s agenda Topic Duration • Recap 15 minutes • Who reads methodology and why 30 minutes • Deployment, adoption, use 45 minutes • *** Break 10 minutes • Deployment, adoption, use (cont.) 45 minutes • Term Project 10 minutes • Quiz 40 minutes Who Reads Methodology and Why • Study of 1000 practitioners by Prof. Gezinus Hidding, Loyola University (mid-1990’s) • Practitioners seldom “read” the methodology • But when they do, it is to: – learn about something new (training) – look something up that they once knew or want to confirm (reference) • Different needs depending on role Who Reads Methodology and Why Methodology is used mostly by planners and mostly for reference purposes How Used Training Roles Reference Planning 8% 36% Selling 6% 20% Doing 6% 13% Managing 2% 9% Source: Gezinus Hidding, Loyola University Who Reads Methodology and Why Process descriptions and artifacts are the most valuable types of information Reference Process Artifact Guideline Concept Planning 43% 37% 14% 7% Selling 48% 35% 12% 5% Doing 40% 34% 16% 10% Managing 42% 34% 18% 6% Source: Gezinus Hidding, Loyola University Who Reads Methodology and Why • Information needs of planners (“crucial target”) – need for speed – summary overviews of processes and artifacts • Information needs of doers – artifact samples – guidelines Today’s agenda Topic Duration • Recap 15 minutes • Who reads methodology and why 30 minutes • Deployment, adoption, use 45 minutes • *** Break 10 minutes • Deployment, adoption, use (cont.) 45 minutes • Term Project 10 minutes • Quiz 40 minutes Overview Kruchten, Chapter 17 Configuration Implementation Hardest Part Configuration • Configure for organization/organizational unit • Configure for project Why is Implementation so hard? • Process change affects behavior • Target audience lacks time • Not a “sexy” topic Kruchten’s Implementation Steps Current process 1. Assess the current state 2. Set (or revise) goals 3. Identify risks 4. Plan the process implementation New process Completely Implemented 5. Execute the process implementation 6. Evaluate the process implementation Kruchten’s Implementation Steps Current process 1. Assess the current state 2. Set (or revise) goals 3. Identify risks 4. Plan the process implementation New process Completely Implemented 5. Execute the process implementation 6. Evaluate the process implementation 1. Assess the current state One approach to assessment: Look at assets, deployment of assets, and usage of assets Scorecard/Gap Analysis Assets Bus. Modeling Requirements Analysis & Design etc. Deployment Usage 1. Assess the current state • Assets: Do we have good stuff? • Deployment: Do people know about the assets? Do people know what to do with the assets? • Usage: Are people using the assets on projects? 1. Assess the current state The focus of SE 470 is the process component of software engineering SE 470 Process Technology People 1. Assess the current state Methodology introduces new capability into targeted units Process Technology People 1. Assess the current state People and Technology elements must be addressed also Process Technology People • Ownership/Sponsorship • Motivation • Rewards/Incentives • Training • Physical work environment • Roles, reporting relationships • Performance measurement 1. Assess the current state People and Technology elements must be addressed also Process Technology People • Tools • Standards • Reusable components • Alignment with other frameworks Kruchten’s Implementation Steps Current process 1. Assess the current state 2. Set (or revise) goals 3. Identify risks 4. Plan the process implementation New process Completely Implemented 5. Execute the process implementation 6. Evaluate the process implementation Kruchten’s Implementation Steps Current process 1. Assess the current state 2. Set (or revise) goals 3. Identify risks 4. Plan the process implementation New process Completely Implemented 5. Execute the process implementation 6. Evaluate the process implementation Elements of an Implementation Plan • • • • • • • Sponsorship Marketing & Communication Education & Training Coordination with other initiatives Rollout schedule Support Metrics Elements of an Implementation Plan • Sponsorship – Executive level – Visibility – Accountability Elements of an Implementation Plan • Marketing & Communication – Need to be aware of where target audience is: -- Misinformed -- Unaware -- Aware -- Understand -- Believe -- Action – Err on side over-communication – Relate to business performance objectives – Types of materials? (discuss) Elements of an Implementation Plan • Education & Training – Train-the-Trainer – Rollout training (one-time event) -- For the unwashed masses -- “Retread” training – Ongoing training curriculum – Levels to target -- User -- Developer -- Manager -- Executive Elements of an Implementation Plan • Coordination with other initiatives – Align vocabulary, practices – Examples: -- Performance evaluations -- IT strategy – Allow others to “invoke” methodology -- Analogous to Microsoft publishing API’s in a Software Developer Kit (SDK) Elements of an Implementation Plan • Rollout schedule – Incremental approach recommended – Pilot is usually a good idea -- Shake out -- Success story will help with takeup by others -- Especially critical if risks are great -- “the most effective way to introduce process and tools” Elements of an Implementation Plan • Support – Local experts – Central help desk – Need to capture feedback (“experience factory”) -- Fixes -- Enhancements -- Innovations Elements of an Implementation Plan • Metrics – Training – Awareness – Usage – Local experts time allocation – Help desk requests – Errors/Enhancements 4. Plan the process implementation Methodology introduces new capability into targeted units Process Technology People Kruchten’s Implementation Steps Current process 1. Assess the current state 2. Set (or revise) goals 3. Identify risks 4. Plan the process implementation New process Completely Implemented 5. Execute the process implementation 6. Evaluate the process implementation Kruchten’s Implementation Steps Current process 1. Assess the current state 2. Set (or revise) goals 3. Identify risks 4. Plan the process implementation New process Completely Implemented 5. Execute the process implementation 6. Evaluate the process implementation Kruchten’s Implementation Steps Implementing a process is a project Phase 1 Phase 2 Phase 3 Phase 4 The group of people working on implementing the process should be dedicated Implementation Key Success Factors • Involve systems developers in assessing current process • Implement appropriate tools – Software development tools – Methodology related tools configuration/customization browsing estimating project planning/management workflow management • Communicate, communicate, communicate • Executive support • Positive track record • Incremental/Iterative implementation of methodology – For XP, start with testing or planning Usual Causes of Implementation Failure • Lack of visible leadership/sponsorship • Lack of adequate training • Lack of effective communication • Death by 1000 initiatives • New/Changed roles not implemented • Fail to account for different information needs of “planners” and “doers” – Too detailed for planners – Not enough detail for doers Today’s agenda Topic Duration • Recap 15 minutes • Who reads methodology and why 30 minutes • Deployment, adoption, use 45 minutes • *** Break 10 minutes • Deployment, adoption, use (cont.) 45 minutes • Term Project 10 minutes • Quiz 40 minutes Term Paper Summary: A briefing on a significant, currently relevant software development methodology or process-related framework not covered in class Deliverables: Paper Presentation and Discussion (30 minutes) Topic Ideas: SCRUM Feature Driven Development Adaptive Software Development Crystal SEI Team Software Process SEI Personal Software Process Term Paper Paper Outline: 1. Abstract 2. Historical Background 3. Description • Philosophy/Principles • Components • Benefits 4. Usage Guidelines • When to use/avoid • Success factors/Challenges 5. Marketplace Analysis • Key Players/Products/Gurus • Market data/forecasts 6. References • Books, articles, web sites • Need to interview a practitioner and/or faculty member Today’s agenda Topic Duration • Recap 15 minutes • Who reads methodology and why 30 minutes • Deployment, adoption, use 45 minutes • *** Break 10 minutes • Deployment, adoption, use (cont.) 45 minutes • Term Project 10 minutes • Quiz 40 minutes Topics for May 12 • CMM • Assignment 3 Extra Slides Rational Unified Process