SE 470 Software Development Processes James Nowotarski 05 May 2003
Course Map Overview. Introduction. History Content. Rational Unified Process. Extreme Programming Implementation. Tools, Training, Roles. CMM, Metrics. Selection & Evaluation Briefings (Term Papers) Assignments Quizzes Week Memorial Day
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 Objectives
Topic Duration Recap15 minutes Who reads methodology and why30 minutes Deployment, adoption, use45 minutes *** Break10 minutes Deployment, adoption, use (cont.)45 minutes Term Project10 minutes Quiz40 minutes Today’s agenda
Topic Duration Recap15 minutes Who reads methodology and why30 minutes Deployment, adoption, use45 minutes *** Break10 minutes Deployment, adoption, use (cont.)45 minutes Term Project10 minutes Quiz40 minutes Today’s agenda
ApproachReferences XPwww.extremeprogramming.org CrystalA. Cockburn, Agile Software Development, Addison-Wesley, 2001 SCRUMK. Schwaber and M. Beedle, Agile Software Development with Scrum, Prentice Hall, Adaptive Software Development J. Highsmith, Adaptive Software Development, Dorset House, FDDS. Palmer, A Practical Guide to Feature-Driven Development, Prentice Hall, Agile - Generalhttp:// Lightweight Methods
What is XP Rapid feedback Assume simplicity Incremental change Embrace change Quality work First Principles
What is XP 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 Key Features
What is XP 40-hour week Coding standards Refactoring and evolutionary design Metaphor to aid in understanding the architecture Only highest priority tasks are worked Collective ownership Key Features
What is XP Life cycle phase Cost of change Req Anal.Des. Impl.Test Prod y = ax p
What is XP Time 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
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 AttributeRUP (“Heavyweight”)XP (“Lightweight”) Time and Effort Allocation 2 weeks-6 months2 weeks - 2 months ArchitectureStabilized during Elaboration phase Just enough to support functionality Scope of Activities and Artifacts BroadNarrow Omits: Business modeling Deployment Project sizeSmall to Very LargeSmall to Medium Artifacts25-30 in small project roadmap roughly 30 Roles~ 30 (5 in small project roadmap) 7
Topic Duration Recap15 minutes Who reads methodology and why30 minutes Deployment, adoption, use45 minutes *** Break10 minutes Deployment, adoption, use (cont.)45 minutes Term Project10 minutes Quiz40 minutes Today’s agenda
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 TrainingReference Planning8%36% Selling6%20% Doing6%13% Managing2%9% Methodology is used mostly by planners and mostly for reference purposes Source: Gezinus Hidding, Loyola University Roles How Used
Who Reads Methodology and Why ProcessArtifactGuidelineConcept Planning43%37%14%7%7% Selling48%35%12%5% Doing40%34%16%10% Managing42%34%18%6% Process descriptions and artifacts are the most valuable types of information Source: Gezinus Hidding, Loyola University Reference
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
Topic Duration Recap15 minutes Who reads methodology and why30 minutes Deployment, adoption, use45 minutes *** Break10 minutes Deployment, adoption, use (cont.)45 minutes Term Project10 minutes Quiz40 minutes Today’s agenda
Overview Configuration Implementation Kruchten, Chapter 17 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 1.Assess the current state 2.Set (or revise) goals 3. Identify risks 4.Plan the process implementation 5.Execute the process implementation Current process New process Completely Implemented 6.Evaluate the process implementation
Kruchten’s Implementation Steps Current process New process Completely Implemented 1.Assess the current state 2.Set (or revise) goals 3. Identify risks 4.Plan the process implementation 5.Execute the process implementation 6.Evaluate the process implementation
1. Assess the current state AssetsDeploymentUsage Bus. Modeling Requirements Analysis & Design etc. One approach to assessment: Look at assets, deployment of assets, and usage of assets Scorecard/Gap Analysis
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?
Technology Process People 1. Assess the current state The focus of SE 470 is the process component of software engineering SE 470
Technology Process People 1. Assess the current state Methodology introduces new capability into targeted units
Technology Process People 1. Assess the current state People and Technology elements must be addressed also Ownership/Sponsorship Motivation Rewards/Incentives Training Physical work environment Roles, reporting relationships Performance measurement
Technology Process People 1. Assess the current state People and Technology elements must be addressed also Tools Standards Reusable components Alignment with other frameworks
Kruchten’s Implementation Steps Current process New process Completely Implemented 1.Assess the current state 2.Set (or revise) goals 3. Identify risks 4.Plan the process implementation 5.Execute the process implementation 6.Evaluate the process implementation
Kruchten’s Implementation Steps Current process New process Completely Implemented 1.Assess the current state 2.Set (or revise) goals 3. Identify risks 4.Plan the process implementation 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
Technology Process People 4. Plan the process implementation Methodology introduces new capability into targeted units
Kruchten’s Implementation Steps Current process New process Completely Implemented 1.Assess the current state 2.Set (or revise) goals 3. Identify risks 4.Plan the process implementation 5.Execute the process implementation 6.Evaluate the process implementation
Kruchten’s Implementation Steps Current process New process Completely Implemented 1.Assess the current state 2.Set (or revise) goals 3. Identify risks 4.Plan the process implementation 5.Execute the process implementation 6.Evaluate the process implementation
Kruchten’s Implementation Steps Phase 1 Phase 2Phase 3Phase 4 Implementing a process is a project 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
Topic Duration Recap15 minutes Who reads methodology and why30 minutes Deployment, adoption, use45 minutes *** Break10 minutes Deployment, adoption, use (cont.)45 minutes Term Project10 minutes Quiz40 minutes Today’s agenda
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
Topic Duration Recap15 minutes Who reads methodology and why30 minutes Deployment, adoption, use45 minutes *** Break10 minutes Deployment, adoption, use (cont.)45 minutes Term Project10 minutes Quiz40 minutes Today’s agenda
CMM Assignment 3 Topics for May 12
Extra Slides
Rational Unified Process