590 likes | 996 Views
Release Management – Ship It!. Phyllis Kaiden Release Infrastructure Manager The Cobalt Group, Inc. Outline. What is Release Management? Why does it matter? How does it work? Would you ship it? What did we learn?. What is Release Management?. Release Management Definition
E N D
Release Management – Ship It! Phyllis Kaiden Release Infrastructure Manager The Cobalt Group, Inc.
Outline • What is Release Management? • Why does it matter? • How does it work? • Would you ship it? • What did we learn?
What is Release Management? Release Management Definition Release Management Responsibilities What is Configuration Management? Product and Project Management
Release Management Definition The process by which a product is made ready for distribution to customers. Release management is the coordination of all the activities leading to and including product release to customers. The purpose of release management is to ensure products are ready when promised. Focus on software release management but basics apply to all product releases.
It’s Like Baking Recipe – the set of activities in order Ingredients – quality components Variations – Icing? Nuts? Mixing – executing the recipe steps Baking time – varies based on desired outcome Is it done? – knowing when it’s just right Final product – presentation, consumption
Baking & Releasing Recipe – the set of activities in order (the plan) Ingredients – quality components (content, schedule, resources) Variations – Icing? Nuts? (special considerations) Mixing – executing the recipe steps (do the plan) Baking time – varies based on desired outcome (priority of time to market, features, quality) Is it done? – knowing when it’s just right (assess readiness against measurable criteria) Final product – presentation, consumption (packaging and distribution)
What is a release? Delivery of a “system” from a supplier to a customer. The “system” consists of a set of authorized and integrated components. The supplier is usually the development organization. The customer is the internal or external recipient of the system.
Key Practices • Release Planning: Manage and publish release schedule • Define deliverablesincluded in a release • Build and Version the integrated release package • Manage dependenciesacross components • Coordinate activities across company • Control changes that would impact the release schedule • Establish release criteria • Assess release readiness
Key Principle: Define “Done” • Deliverables • Dependencies • Avoid scope creep but allow change • Release criteria • Objective • Quantifiable • Cross-functional
Components of a release • Golden Build (software): CD-ROM, files • Documentation and Help • Training materials • Marketing collateral • Internal documents • Customer Notification • Release Notes
Types of Products • Consumer: shrink-wrapped, commercial off-the-shelf (COTS), e.g. MS Word • Open-source: download as needed, e.g. MySQL • Hosted: Application Service Provider (ASP), e.g. Yahoo mail • Corporate: Enterprise Resource Planning (ERP), e.g. Oracle Financials • Corporate desktop: enterprise distribution of desktop applications, e.g. MS Office • Operating system: core tools for IT, e.g. Sun Solaris
What is Configuration Management? The process of building the product, tracking its components, and managing change. The purpose of configuration management is to guarantee reproducibility of the product and traceability of all changes. Release Management and Configuration Management are often the same group.
Common Responsibilities of CM • Source Code and Version Control • Reproducible – components of the release • Traceable – what changed in this release • Definitive Software Library: Baseline + delta baseline delta delta Version 1.0 1.1 1.2 branch baseline merge Version 2.0
Product and Project Management “ABCs of Release Management” by Mario Moreira. CM Crossroads, Aug 17 2004. http://www.cmcrossroads.com/ubbthreads/showflat.php?Cat=&Number=31323&Main=31323#Post31323
Why does Release Management matter? Common Release Problems Benefits of Release Management Who Cares?
A Story – Timeliness, Quality Three companies decide independently to develop appointment scheduling software. They all have the knowledge and funding to create a good product. Company A releases on time with 100 known issues and is a success. Company B releases on time with 50 known issues and fails. Company C releases late with 10 known issues but fails because Company A had already captured the market.
Common Release Problems • Take too long – impacts revenue • Unpredictable – impacts dependent plans • Poor quality – impacts support • Not useful – impacts revenue • Contents unplanned – impacts integrity • Contents uncontrolled – impacts reliability • Overlooked distribution/installation – impacts support Cowham, Robert. “Release Management – Making it Lean and Agile” CM Crossroads, Aug 16, 2004 http://www.cmcrossroads.com/ubbthreads/showflat.php?Cat=&Number=31243
The Challenge Time to Market vs Features vs Quality • Only one top priority • Balance – don’t ignore the other two • Release criteria reflect priorities • Product development methodology supports priorities: concurrent engineering, test-first development, prototyping Time to Market Features Quality
Benefits of Release Management • More successful releases • Consistent release process • Predictability • Integration • Completeness • Quality • Communication
Commitments to Customers, Stockholders, Employees Legal Considerations Return on Investment Worth installing? Installable Usable Supported Budget Timing Ready to sell? Demo updated Trained sales force Pricing Order Fulfillment Contracts ready Documentation ready Training materials Trained support staff Release Notes Known Problems FAQ, Knowledge Base Implementation impact Dependencies managed Meets requirements Minimize merging No “death march” Next project Well-defined scope Resources to support Predictable schedule Sufficient test time Meets requirements Dependable Installation Resources to support Predictable schedule Configuration Options Technical Documentation Stability, Scalability, Reliability Product Management Market position Product Roadmap Project Management Project delivery on-time Program Management Program meets expectations
How does it work? Types of Releases Software Development Life Cycle Release Process
Types of Releases • Major = significant new features, product launch, planned, pull, annual • Minor = small new features, backwards compatible, planned, pull, semi-annual • Patch = collection of bug fixes, planned, pull, quarterly • Emergency = Urgent bug fix, harmful if not fixed, unplanned, push, as needed
Activity Distribution Release activities account for 10% of effort and 15% of schedule. McConnell, Steve. Software Project Survival Guide. Microsoft Press, 1998.
Release Process • Define Content • Assign Version • Plan Release • Build • Package • Deploy • Test • Control Change • Assess Readiness • Release Iterate
1. Define Content • Golden Build (software) • Documentation • Training materials • Marketing collateral • Internal documents • Customer Notification • Release Notes
2. Assign version Version is a unique identifier for the product state as of a certain point in time. Not all versions are released. Versions are sequential. Versioning Schemes relate to release types, product management, and configuration management: • Major.Minor.Patch.Fix, e.g. 1.0, 1.1, 1.1.2, 1.1.2.1 • Major.Feature.Patch, e.g. 1.0, 1.1, 1.1.2 • Major.Feature.Patch.Build, e.g. 1.0.0.301
3. Plan Release • Dependencies • Customer commitments • Revenue recognition • Resource availability: people, environments • Introducing too much change at once • Stabilizing between releases • Organizational capability
4. Build Appleton, Brad. “Agile Build Promotion: Navigating the Ocean of Promotion Notions”, CM Crossroads, September 2004. http://www.cmcrossroads.com/ubbthreads/showflat.php?Cat=&Number=32900
5. Package • Create the release package containing all release deliverables • File: tar, .zip, .exe, .ear • Medium: CD-ROM, tape, file server • Bill of Materials lists what’s in the package • Final release package is “golden build”
6. Deploy • Deployment Plan • Install Team • Deployment Plan Review • Mock Deploy • Mock Rollback • Contact List
7. Test • Plan ahead for test environments • Execute Test Plan • Functional test: does it function as required? • Regression test: did old bugs reappear? • Performance test: does it perform within acceptable limits? • Reliability test: does it function consistently over time? • Stress test: does it function consistently under volume?
8. Control Change • Baseline scope, requirements, design • Accommodate controlled change • Avoid scope creep • Allow change, it’s reality • Change requests • Change request decision (approve, reject, defer) • Change Control Board (CCB) • Cross-functional representation • Impact analysis • Business drivers
9. Assess Readiness • Release Criteria define “done” • Defined Deliverables • Features: Must Have vs Nice to Have • Quality: test results, metrics • Schedule: time-to-market criteria • Objective, quantifiable criteria preferred • Organizational Readiness • Support, Training, Marketing, Sales • Acceptable Risk
Assess Readiness: Metrics Common metrics: fix rate, find rate, defect density, rate of change Example: find rate vs fix rate Stability reached at week 35 of testing, when defects fixed exceeds defects opened.
9. Assess Readiness: Go/No-Go • Release Readiness Assessment • Are all release criteria equal? • Can any criteria be waived? • Go/No-Go • Formal sign-off by stakeholders • Meeting, email vote • Recommendation by Release Manager • Go with Punch List • Executive Approval
10. Release • Formal release by Configuration Mgmt • Deploy to Production or Distribute to Customer
10. Release Programs • Alpha = test by in-house department • Beta = test by small group of customers • Pilot • Early Adopters • General Availability (GA) = all customers
Would you ship it? Situations Is it ready? Would you ship it?
Situation #1: Class registration • Criteria • Zero priority-one defects • Ready in time for class registration on April 1 • Data • One priority-one defect affecting 100 music majors out of 3,000 students. • Fix estimate is 3 days. • Today is March 15. • Ship it? More data?
Situation #1: Other Factors • Cost: Penalty for late delivery? • Confidence: accurate estimate? Complexity? • Quality: Danger of breaking something else? How much testing is needed? • Schedule: Holidays? Vacation? Customer availability? Hard deadline? • Relationship: Unhappy customer? Reference site? • Workaround: Manual? Send staff on site?
Situation #2: Java web search tool • Criteria • Acceptable performance: + 10% current • Backwards compatibility • Data • Performance on page load is 5% better • Performance on search is 20% worse • Fix will require customer to download new Java Virtual Machine (JVM) • Ship it? More data?
Situation #2: Other Factors • Quantify: How much loss? < second? • Accuracy: performance test environment? • Alternatives: Optional download? Automatic download? • Support: Ease of download? Increased support load? • Competition: Market leader? Slipping? • Usability: lose customers if slow?