830 likes | 1.01k Views
IBM - Build and Release Best Practices. Jesse Tilly, IBM 5 September 2007. Objectives. Introduce a set of fundamental building blocks – best practices. Objectives. Introduce a set of fundamental building blocks – best practices Discuss the practices - focus on measurement. Objectives.
E N D
IBM - Build and Release Best Practices Jesse Tilly, IBM5 September 2007
Objectives • Introduce a set of fundamental building blocks – best practices
Objectives • Introduce a set of fundamental building blocks – best practices • Discuss the practices - focus on measurement
Objectives • Introduce a set of fundamental building blocks – best practices • Discuss the practices – focus on measurement • Provide some suggestions to apply the practices
Objectives • Free Food • Introduce a set of fundamental building blocks – best practices • Discuss the practices – focus on measurement • Provide some suggestions to apply practices
NFL Starts Tomorrow How to Measure Success
Roster Status Report • Draft Complete
Roster Status Report • Draft Complete • No Deadweight
Roster Status Report • Draft Complete • No Deadweight • Know the rules
Roster Status Report • Draft Complete • No Deadweight • Know the rules • Know key players
Roster Status Report • Draft Complete • No Deadweight • Know the rules • Know key players • Entertainment Purposes Only
Stop!! Take a Step Back!! • Are these good measures?
Take a Step Back My Business Objectives
Take a Step Back My Business Objectives • Score most points every week
Take a Step Back My Business Objectives • Score most points every week • Avoid bye-week gaps
Take a Step Back My Business Objectives • Score most points every week • Avoid bye-week gaps • Pick high-return/low-profile players
Take a Step Back My Business Objectives • Score most points every week • Avoid bye-week gaps • Pick high-return/low-profile players • Avoid injury risk
What’s NOT on this list Bad Business Objectives • Know every player (e.g. every backup QB) • Use only high-profile players • Use only rookie free-agents • Ignore obvious warnings
Blah? • BLAH BLAH BLAH? • Blah blah blah? • Blah blah blah?
Blah! • BLAH BLAH BLAH! • Blah blah blah! • Blah blah blah!
What are these “Best Practices”: 1) Measure performance against business objectives 2) Establish complete reproducibility 3) Centralized access & collaboration for all stakeholders 4) Build early and often 5) Link to deployment environments
What is it: 1) Measure performance against business objectives
What is it: 1) Measure performance against business objectives • Align tasks to business objectives
What is it: 1) Measure performance against business objectives • Align tasks to business objectives • Leverage data to measure objectives • Release frequency • Compliance • Quality • Aggregations • Communicate to the business • Uncover trends • Show value of software investment
1) Measure performance against business objectives Why It’s Important
1) Measure performance against business objectives • You cannot improve what you cannot measure Why It’s Important
1) Measure performance against business objectives • You cannot improve what you cannot measure • Process improvement requires good measurements • RUP, CMMI, ISO, ITIL, Six Sigma, etc. • Many organizations lack the ability • So do regulatory requirements • PCI, HIPPA, SOX • Global trend is to align business and IT • Efficiency of “built-in” vs. “ad-hoc” • Scrambling to assemble data is not scalable • High risk • Communicate the value of your organization to others Why It’s Important
1) Measure performance against business objectives What You Get
1) Measure performance against business objectives • Improved visibility • Better business decisions What You Get
1) Measure performance against business objectives • Improved visibility • Better business decisions • Establish baselines for comparisons • Forecast improvements • Justify software value • Number of on-time releases • Fixes per release • Shorter audit requests • Increase project volume • Continuous monitoring What You Get
Back to the List 1) Measure performance against business objectives 2) Establish complete reproducibility 3) Centralized access & collaboration for all stakeholders 4) Build early and often 5) Link build processes to deployment environments
What is it: 2) Establish Complete Reproducibility
What is it: 2) Establish Complete Reproducibility • The ability to recreate (or duplicate) a task or series of tasks so that future instances produce the same results (aka precision). * * Source: Wikipedia
What is it: 2) Establish Complete Reproducibility • Cause A -> Result A
What is it: 2) Establish Complete Reproducibility • Opposite of Insanity - the conviction that repeatable behavior will result in different outcomes
What is it: 2) Establish Complete Reproducibility • Opposite of Insanity - the conviction that identical behavior will result in different outcomes • Logically….if you don’t have complete reproducibility, you and/or your project is insane.
Why it’s important: 2) Establish Complete Reproducibility
Why it’s important: 2) Establish Complete Reproducibility • Takes too Long to Do it Again
Why it’s important: 2) Establish Complete Reproducibility • Takes too Long to Do it Again • Consider all the components (think release not builds) • Complexity grows with previous versions and multiple platforms • Regulations and legislation mandate reproducibility • “It often takes development teams twice as long to detect/reproduce a problem as it does to repair it.”-- Standish Group
What you get 2) Establish Complete Reproducibility
What you get 2) Establish Complete Reproducibility Short-Term • Troubleshooting speed • Reliable baselines • Audit and security Long-Term • Higher responsiveness (Releases, SLA’s) • Increased productivity • Critical for compliance
The Best Practices: 1) Measure performance against business objectives 2) Establish complete reproducibility 3) Centralized access & collaboration for all stakeholders 4) Build early and often 5) Link build processes to deployment environments
What is it: 3) Centralized access & collaboration for all stakeholders
What is it: 3) Centralized access & collaboration for all stakeholders • Share without chaos
What is it: 3) Centralized access & collaboration for all stakeholders • Share without chaos • Essential for any team-oriented software projects • Essential for disperse environments (e.g. across street, across ocean) • Global view, yet still able to enforce policies
3) Centralized access & collaboration for all stakeholders Why It’s Important
3) Centralized access & collaboration for all stakeholders • Centralization allows for consistent policies and processes Why It’s Important