SlideShare a Scribd company logo
1 of 30
Proprietary Material Provided for Training Purposes Only
© 2012 Excella Consulting, Inc.
Richard Cheng
◊ Agile trainer & coach
◊ Excella Agile Center of Excellence Lead
◊ Member of PMI, Scrum Alliance, Agile
Alliance, Agile Leadership Network
◊ CST, PMP, CSM, CSPO, CSP, PMI-ACP
◊ Founder & executive committee
member of Agile Defense Adoption
Proponents Team (ADAPT), the Agile
DoD Task Force
◊ Deep expertise in Federal and
commercial Agile transformations
◊ Building Quality into the process
– Real time identification of quality issues
• Automation
– Using the right tools and techniques
21st Century Engineering Practices
Benefits*
Assuming 100 defects in
10,000 lines of code
1. Traditional testing finds
a defect in about 10
hours
2. Manual code inspections
find a defect in 1 hour
3. Automated testing finds
a defect every 6 minutes
þ 36% reduction in defect rate
when integration/regression testing at each code check-in
þ 90% reduction in bugs reaching QA
Major municipal gas utility
þ
þ
þ
þ
þ
95% cut in cost of bugs
Large retail web site
90% cut in defect remediation cost
Global supplier of healthcare equipment
Faster time-to-market
More features and higher quality
Agility in the marketplace
Added new functionality 2 weeks before ship
Confidence in the process
“Oozing Confidence”
*Sources:
• Grant, T. (2005). Continuous integration using cruise control. Northern Virginia Java Users Group (Novajug), Reston, Virginia, USA.
• Fredrick, J. (2008). Accelerate software delivery with continuous integration and testing. Japanese Symposium on Software Testing, Tokyo,
Japan.
• Rico, D. F. (2012). The Cost of Quality (CoQ) for Agile vs. Traditional Project Management. Fairfax, VA: Gantthead.Com.
Technology Stacks
◊ .Net
◊ Java
◊ Python
◊ Ruby
◊ JavaScript
◊ Others….
Don’t Do It All At Once
Do This First
1. Version
Control
2. Build
Automation
3. Automated
Unit Testing
4. Continuous
Integration
Next Do This
5. Static Code
Analysis
6. Dependency
Management
Then Do This
7. Automated
Integration
Testing
8. Automated
Acceptance
Testing
9. Deployment
Automation
First Do This
1. Version Control
– What: Repository to persist and track version of code and
artifacts
– Effort: Low
– Sample Tools:
• Traditional – TFS (MS), Subversion
• Distributed Version Control (branching and merging) - Git,
Mercurial
First Do This
2. Build Automation
– What: One click or one command launch of build process
– Effort: Low
– Sample Tools:
• Microsoft – MSBuild, Powershell
• Java/Others – Ant, Gradle, Maven
First Do This
3. Automated Unit Testing
– What: An automated stand alone test that test a single
unit of the code.
– Effort: Medium
– Sample Tools:
• Unit test tools: JUnit (Java), NUnit (MS), MS Test (MS)
• Advanced tools: Moq, Fluent Assertions
First Do This
4. Continuous Integration
– What: Provides frequent verification and notification of
changes to the code and application
– Effort: Medium
– Sample Tools: Jenkins, Hudson, TFS (MS), TeamCity
Continuous Integration
Build #1
compile
unit test
integration test
package
deploy/run
acceptance test
analyze code
Build
Report
Version
Control
change
#1
change
#2
Build
Server
Build #2
compile
unit test
integration test
package
deploy/run
acceptance test
analyze code
Build
ReportEmail
Failed Build
Continuous Integration
◊ CI involves:
– Frequent code check-ins
– Regularly scheduled, automated builds
– Automated tests
– Immediate feedback to developers detailing any build
errors or failed tests
◊ Benefit:
– Developers know immediately upon check-in if their code
works and if any other application features were broken as
a result
CI Effect on Schedule
Code Phase QA Phase Code Phase QA Phase
Code Phase Code Phase
Code + Test Phase Code + Test Phase
Schedule
Release 1 Release 2
Original Plan
Reality
With CI
Benefits of Continuous Integration
◊ Avoids last-minute chaos at release dates
◊ Early warnings of broken code
◊ Early warning of conflicting changes
◊ Immediate testing of all changes
◊ High availability of a "current" build for testing,
demo, or release purposes
Don’t Do It All At Once
Do This First
1. Version Control
2. Build
Automation
3. Automated
Unit Testing
4. Continuous
Integration
Next Do This
5. Static Code
Analysis
6. Dependency
Management
Then Do This
7. Automated
Integration
Testing
8. Automated
Acceptance
Testing
9. Deployment
Automation
Next Do This
5) Static Code Analysis
– What: Checks for coding standards and code quality
– Effort: Low
– Sample Tools: Visual Studio Code Analysis, FindBugs
(Java), PMD, Cobertura, Sonar, CheckStyle
Code Quality
Next Do This
6) Dependency Management
– What: Manages 3rd party components and ensure we have
the latest / correct version these components
– Effort: Low
– Sample Tools: Gradle, NuGet
Don’t Do It All At Once
Do This First
1. Version Control
2. Build
Automation
3. Automated
Unit Testing
4. Continuous
Integration
Next Do This
5. Static Code
Analysis
6. Dependency
Management
Then Do This
7. Automated
Integration
Testing
8. Automated
Acceptance
Testing
9. Deployment
Automation
Then Do This
7. Automated Integration Testing
– What: Testing interaction between multiple components to
ensure our component dependencies don’t break
– Effort: Medium to High
– Sample Tools: DBUnit (Java), NDBUnit (MS)
Then Do This
8. Automated Acceptance Testing
– What: Automated testing to ensure the systems meets
business needs
– Effort: High
– Sample Tools: SpecFlow, Cucumber, FitNess
– For Browser Testing: Selenium, WatiN
Automated Tests
◊ Automated tests involves:
– Unit tests: Testing of smallest possible piece of code that can
operate in isolation
– Integration tests: Testing interaction between multiple
components
– Acceptance tests: Testing complete segments of a system to
ensure it meets the business needs
◊ Benefits
– Enables rapid discovery of root cause
– Reduces defect rate
– Saves time in system test
– Ensures testing starts early in cycle
– Provides for a free regression testing suite
Testing Quadrant
Functional Tests
Acceptance Tests
Unit Tests
Component Tests
System Tests
Showcases
Exploratory Tests
Usability Tests
Performance Tests
Security Tests
TheTeam
TheProduct
Functionality
The Systemfrom Brian Marick
Then Do This
8. Automated Deployment
– What: Push button deployment capabilities
– Effort: High
– Sample Tools: FluentMigrator, Puppet, Octopus
Automated Deployments
Sandbox
Production
Version
Control
CI
Server
DB
Web ServerWeb Server
DB
Test
DB
Web ServerWeb Server
DB
DB
Web Server
Automated Nightly
Deployments
Push Button
Deployments
Managed
Deployments
Benefits of Automated Deployments
◊ Reduces complexity by using standardized script
◊ Reduces risk by re-running same script
◊ Reduces cost by speeding up deployment
◊ Frees up resources to focus on new features
One More Thing - Developers
Developer’s Bill of Rights
1. Every programmer shall have two monitors
2. Every programmer shall have a fast PC
3. Every programmer shall have their choice of mouse
and keyboard
4. Every programmer shall have a comfortable chair
5. Every programmer shall have a fast internet
connection
6. Every programmer shall have {effective} working
conditions
Posted by Jeff Atwood , http://www.codinghorror.com/blog/2006/08/the-
programmers-bill-of-rights.html
Useful References
◊ Stephen Ritchie, Pro .NET Best Practices, Apress,
2011.
◊ Paul Duvall, Steve Matyas, and Andrew Glover,
Continuous Integration: Improving Software Quality
and Reducing Risk, Addison-Wesley, 2007.
◊ Jez Humble, Continuous Delivery: Reliable Software
Releases through Build, Test, and Deployment
Automation, Addison-Wesley, 2010
Excella Consulting
Experience and Expertise in Agile Solutions
– Coaching
– Training
– Assessments
– Agile Adoption
– Agile Development Teams
– Agile PMO
Training Courses
– Certified ScrumMaster (CSM)
– Certified Scrum Product Owner (CSPO): The Agile Business Analyst
– Advanced Certified Scrum Product Owner (CSPO)
– Certified Scrum Developer (CSD)
– Agile Testing
– Agile Business Intelligence and Data Warehousing
See http://www.excella.com/services/agile-training-services.aspx for more
information
Contact Information
Richard K Cheng
richard.cheng@excella.com
703-967-8620
http://www.excella.com
Twitter: @RichardKCheng

More Related Content

What's hot

Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Groupsuwalki24.pl
 
ISTQB agile tester exam - Conclusions about Certification
ISTQB agile tester exam - Conclusions about CertificationISTQB agile tester exam - Conclusions about Certification
ISTQB agile tester exam - Conclusions about CertificationMichał Dudziak
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing MethodologyGaya1985
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projectssriks7
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process Arslan Ali
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsdpaulmerrill
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentJoseph Beale
 
Shift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceShift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceZbyszek Mockun
 
Agile testing presentation
Agile testing presentationAgile testing presentation
Agile testing presentationKomal Garg
 
Agile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsAgile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsVipul Gupta
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinDirecti Group
 
Product QA - A test engineering perspective
Product QA - A test engineering perspectiveProduct QA - A test engineering perspective
Product QA - A test engineering perspectiveImaginea
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Kaizenko
 
Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?Original Software
 
Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?Alexander Tarlinder
 

What's hot (20)

Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
 
Presentation on Agile Testing
Presentation on Agile TestingPresentation on Agile Testing
Presentation on Agile Testing
 
ISTQB agile tester exam - Conclusions about Certification
ISTQB agile tester exam - Conclusions about CertificationISTQB agile tester exam - Conclusions about Certification
ISTQB agile tester exam - Conclusions about Certification
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOps
 
Guide to Agile testing
Guide to Agile testingGuide to Agile testing
Guide to Agile testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile Environment
 
Shift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceShift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality Assurance
 
Agile testing presentation
Agile testing presentationAgile testing presentation
Agile testing presentation
 
Agile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsAgile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroids
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa Crispin
 
Product QA - A test engineering perspective
Product QA - A test engineering perspectiveProduct QA - A test engineering perspective
Product QA - A test engineering perspective
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
 
What is Agile Testing?
What is Agile Testing? What is Agile Testing?
What is Agile Testing?
 
Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?
 
Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?Agile Testing – Is it for me and how are others doing it?
Agile Testing – Is it for me and how are others doing it?
 

Similar to (Agile) engineering best practices - What every project manager should know

Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Stephen Ritchie
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengExcella
 
Continuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityContinuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityFabricio Epaminondas
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices Marcelo Freire
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overviewAlex Pop
 
Neev Independent Testing Services
Neev Independent Testing ServicesNeev Independent Testing Services
Neev Independent Testing ServicesNeev Technologies
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & DeploymentsShinu Suresh
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsQuontra Solutions
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
Automation Tool Overview
Automation Tool OverviewAutomation Tool Overview
Automation Tool OverviewANKUR-BA
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools OverviewSachin-QA
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing ProcessSynerzip
 
Diving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the TechnologiesDiving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the TechnologiesQASymphony
 

Similar to (Agile) engineering best practices - What every project manager should know (20)

Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard Cheng
 
Continuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityContinuous integration practices to improve the software quality
Continuous integration practices to improve the software quality
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices
 
Neev QA Offering
Neev QA OfferingNeev QA Offering
Neev QA Offering
 
Testing concepts
Testing conceptsTesting concepts
Testing concepts
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
 
Neev Independent Testing Services
Neev Independent Testing ServicesNeev Independent Testing Services
Neev Independent Testing Services
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & Deployments
 
Upstream testing.
Upstream testing.Upstream testing.
Upstream testing.
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Automation Tool Overview
Automation Tool OverviewAutomation Tool Overview
Automation Tool Overview
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools Overview
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
 
Diving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the TechnologiesDiving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the Technologies
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Why Automate
Why AutomateWhy Automate
Why Automate
 
Future of QA
Future of QAFuture of QA
Future of QA
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
 

More from Richard Cheng

Ted Lasso Retro EasyAgile.pdf
Ted Lasso Retro EasyAgile.pdfTed Lasso Retro EasyAgile.pdf
Ted Lasso Retro EasyAgile.pdfRichard Cheng
 
No more carrots, no more sticks … how to really use story points and velocity…
No more carrots, no more sticks … how to really use story points and velocity…No more carrots, no more sticks … how to really use story points and velocity…
No more carrots, no more sticks … how to really use story points and velocity…Richard Cheng
 
Ted Lasso Retro.pptx
Ted Lasso Retro.pptxTed Lasso Retro.pptx
Ted Lasso Retro.pptxRichard Cheng
 
Situational Retrospectives
Situational RetrospectivesSituational Retrospectives
Situational RetrospectivesRichard Cheng
 
The Perfect Product Owner
The Perfect Product OwnerThe Perfect Product Owner
The Perfect Product OwnerRichard Cheng
 
Business Agility - Pivot or Perish v1.5
Business Agility - Pivot or Perish v1.5Business Agility - Pivot or Perish v1.5
Business Agility - Pivot or Perish v1.5Richard Cheng
 
The Perfect Product Owner
The Perfect Product OwnerThe Perfect Product Owner
The Perfect Product OwnerRichard Cheng
 
Agile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedAgile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedRichard Cheng
 
The Perfect Product Owner
The Perfect Product OwnerThe Perfect Product Owner
The Perfect Product OwnerRichard Cheng
 
What to Look for in a ScrumMaster
What to Look for in a ScrumMasterWhat to Look for in a ScrumMaster
What to Look for in a ScrumMasterRichard Cheng
 
Agile in the Federal Government
Agile in the Federal Government Agile in the Federal Government
Agile in the Federal Government Richard Cheng
 
The Right Product Owner
The Right Product OwnerThe Right Product Owner
The Right Product OwnerRichard Cheng
 
Getting started right
Getting started rightGetting started right
Getting started rightRichard Cheng
 
Group hug - Implementing Agile Across Multiple Teams
Group hug - Implementing Agile Across Multiple TeamsGroup hug - Implementing Agile Across Multiple Teams
Group hug - Implementing Agile Across Multiple TeamsRichard Cheng
 
Super Product Ownership - Product Ownership at USAStaffing
Super Product Ownership - Product Ownership at USAStaffingSuper Product Ownership - Product Ownership at USAStaffing
Super Product Ownership - Product Ownership at USAStaffingRichard Cheng
 
Are We Really Being Agile? (w/ Portuguese)
Are We Really Being Agile? (w/ Portuguese)Are We Really Being Agile? (w/ Portuguese)
Are We Really Being Agile? (w/ Portuguese)Richard Cheng
 
Agile @ OPM: Stakeholder Collaboration and Individual Interactions
Agile @ OPM: Stakeholder Collaboration and Individual InteractionsAgile @ OPM: Stakeholder Collaboration and Individual Interactions
Agile @ OPM: Stakeholder Collaboration and Individual InteractionsRichard Cheng
 

More from Richard Cheng (20)

Ted Lasso Retro EasyAgile.pdf
Ted Lasso Retro EasyAgile.pdfTed Lasso Retro EasyAgile.pdf
Ted Lasso Retro EasyAgile.pdf
 
No more carrots, no more sticks … how to really use story points and velocity…
No more carrots, no more sticks … how to really use story points and velocity…No more carrots, no more sticks … how to really use story points and velocity…
No more carrots, no more sticks … how to really use story points and velocity…
 
Ted Lasso Retro.pptx
Ted Lasso Retro.pptxTed Lasso Retro.pptx
Ted Lasso Retro.pptx
 
Ready, Set, Done!
Ready, Set, Done!Ready, Set, Done!
Ready, Set, Done!
 
Situational Retrospectives
Situational RetrospectivesSituational Retrospectives
Situational Retrospectives
 
The Perfect Product Owner
The Perfect Product OwnerThe Perfect Product Owner
The Perfect Product Owner
 
Business Agility - Pivot or Perish v1.5
Business Agility - Pivot or Perish v1.5Business Agility - Pivot or Perish v1.5
Business Agility - Pivot or Perish v1.5
 
The Perfect Product Owner
The Perfect Product OwnerThe Perfect Product Owner
The Perfect Product Owner
 
Agile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedAgile Truths and Misconceptions Exposed
Agile Truths and Misconceptions Exposed
 
The Perfect Product Owner
The Perfect Product OwnerThe Perfect Product Owner
The Perfect Product Owner
 
What to Look for in a ScrumMaster
What to Look for in a ScrumMasterWhat to Look for in a ScrumMaster
What to Look for in a ScrumMaster
 
Agile in the Federal Government
Agile in the Federal Government Agile in the Federal Government
Agile in the Federal Government
 
The Right Product Owner
The Right Product OwnerThe Right Product Owner
The Right Product Owner
 
Getting started right
Getting started rightGetting started right
Getting started right
 
Group hug - Implementing Agile Across Multiple Teams
Group hug - Implementing Agile Across Multiple TeamsGroup hug - Implementing Agile Across Multiple Teams
Group hug - Implementing Agile Across Multiple Teams
 
Super Product Ownership - Product Ownership at USAStaffing
Super Product Ownership - Product Ownership at USAStaffingSuper Product Ownership - Product Ownership at USAStaffing
Super Product Ownership - Product Ownership at USAStaffing
 
About Excella
About ExcellaAbout Excella
About Excella
 
Are We Really Being Agile? (w/ Portuguese)
Are We Really Being Agile? (w/ Portuguese)Are We Really Being Agile? (w/ Portuguese)
Are We Really Being Agile? (w/ Portuguese)
 
Agile @ OPM: Stakeholder Collaboration and Individual Interactions
Agile @ OPM: Stakeholder Collaboration and Individual InteractionsAgile @ OPM: Stakeholder Collaboration and Individual Interactions
Agile @ OPM: Stakeholder Collaboration and Individual Interactions
 
Are we done yet?
Are we done yet?Are we done yet?
Are we done yet?
 

Recently uploaded

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Recently uploaded (20)

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

(Agile) engineering best practices - What every project manager should know

  • 1. Proprietary Material Provided for Training Purposes Only © 2012 Excella Consulting, Inc.
  • 2. Richard Cheng ◊ Agile trainer & coach ◊ Excella Agile Center of Excellence Lead ◊ Member of PMI, Scrum Alliance, Agile Alliance, Agile Leadership Network ◊ CST, PMP, CSM, CSPO, CSP, PMI-ACP ◊ Founder & executive committee member of Agile Defense Adoption Proponents Team (ADAPT), the Agile DoD Task Force ◊ Deep expertise in Federal and commercial Agile transformations
  • 3. ◊ Building Quality into the process – Real time identification of quality issues • Automation – Using the right tools and techniques 21st Century Engineering Practices
  • 4. Benefits* Assuming 100 defects in 10,000 lines of code 1. Traditional testing finds a defect in about 10 hours 2. Manual code inspections find a defect in 1 hour 3. Automated testing finds a defect every 6 minutes þ 36% reduction in defect rate when integration/regression testing at each code check-in þ 90% reduction in bugs reaching QA Major municipal gas utility þ þ þ þ þ 95% cut in cost of bugs Large retail web site 90% cut in defect remediation cost Global supplier of healthcare equipment Faster time-to-market More features and higher quality Agility in the marketplace Added new functionality 2 weeks before ship Confidence in the process “Oozing Confidence” *Sources: • Grant, T. (2005). Continuous integration using cruise control. Northern Virginia Java Users Group (Novajug), Reston, Virginia, USA. • Fredrick, J. (2008). Accelerate software delivery with continuous integration and testing. Japanese Symposium on Software Testing, Tokyo, Japan. • Rico, D. F. (2012). The Cost of Quality (CoQ) for Agile vs. Traditional Project Management. Fairfax, VA: Gantthead.Com.
  • 5. Technology Stacks ◊ .Net ◊ Java ◊ Python ◊ Ruby ◊ JavaScript ◊ Others….
  • 6. Don’t Do It All At Once Do This First 1. Version Control 2. Build Automation 3. Automated Unit Testing 4. Continuous Integration Next Do This 5. Static Code Analysis 6. Dependency Management Then Do This 7. Automated Integration Testing 8. Automated Acceptance Testing 9. Deployment Automation
  • 7. First Do This 1. Version Control – What: Repository to persist and track version of code and artifacts – Effort: Low – Sample Tools: • Traditional – TFS (MS), Subversion • Distributed Version Control (branching and merging) - Git, Mercurial
  • 8. First Do This 2. Build Automation – What: One click or one command launch of build process – Effort: Low – Sample Tools: • Microsoft – MSBuild, Powershell • Java/Others – Ant, Gradle, Maven
  • 9. First Do This 3. Automated Unit Testing – What: An automated stand alone test that test a single unit of the code. – Effort: Medium – Sample Tools: • Unit test tools: JUnit (Java), NUnit (MS), MS Test (MS) • Advanced tools: Moq, Fluent Assertions
  • 10. First Do This 4. Continuous Integration – What: Provides frequent verification and notification of changes to the code and application – Effort: Medium – Sample Tools: Jenkins, Hudson, TFS (MS), TeamCity
  • 11. Continuous Integration Build #1 compile unit test integration test package deploy/run acceptance test analyze code Build Report Version Control change #1 change #2 Build Server Build #2 compile unit test integration test package deploy/run acceptance test analyze code Build ReportEmail Failed Build
  • 12. Continuous Integration ◊ CI involves: – Frequent code check-ins – Regularly scheduled, automated builds – Automated tests – Immediate feedback to developers detailing any build errors or failed tests ◊ Benefit: – Developers know immediately upon check-in if their code works and if any other application features were broken as a result
  • 13. CI Effect on Schedule Code Phase QA Phase Code Phase QA Phase Code Phase Code Phase Code + Test Phase Code + Test Phase Schedule Release 1 Release 2 Original Plan Reality With CI
  • 14. Benefits of Continuous Integration ◊ Avoids last-minute chaos at release dates ◊ Early warnings of broken code ◊ Early warning of conflicting changes ◊ Immediate testing of all changes ◊ High availability of a "current" build for testing, demo, or release purposes
  • 15. Don’t Do It All At Once Do This First 1. Version Control 2. Build Automation 3. Automated Unit Testing 4. Continuous Integration Next Do This 5. Static Code Analysis 6. Dependency Management Then Do This 7. Automated Integration Testing 8. Automated Acceptance Testing 9. Deployment Automation
  • 16. Next Do This 5) Static Code Analysis – What: Checks for coding standards and code quality – Effort: Low – Sample Tools: Visual Studio Code Analysis, FindBugs (Java), PMD, Cobertura, Sonar, CheckStyle
  • 18. Next Do This 6) Dependency Management – What: Manages 3rd party components and ensure we have the latest / correct version these components – Effort: Low – Sample Tools: Gradle, NuGet
  • 19. Don’t Do It All At Once Do This First 1. Version Control 2. Build Automation 3. Automated Unit Testing 4. Continuous Integration Next Do This 5. Static Code Analysis 6. Dependency Management Then Do This 7. Automated Integration Testing 8. Automated Acceptance Testing 9. Deployment Automation
  • 20. Then Do This 7. Automated Integration Testing – What: Testing interaction between multiple components to ensure our component dependencies don’t break – Effort: Medium to High – Sample Tools: DBUnit (Java), NDBUnit (MS)
  • 21. Then Do This 8. Automated Acceptance Testing – What: Automated testing to ensure the systems meets business needs – Effort: High – Sample Tools: SpecFlow, Cucumber, FitNess – For Browser Testing: Selenium, WatiN
  • 22. Automated Tests ◊ Automated tests involves: – Unit tests: Testing of smallest possible piece of code that can operate in isolation – Integration tests: Testing interaction between multiple components – Acceptance tests: Testing complete segments of a system to ensure it meets the business needs ◊ Benefits – Enables rapid discovery of root cause – Reduces defect rate – Saves time in system test – Ensures testing starts early in cycle – Provides for a free regression testing suite
  • 23. Testing Quadrant Functional Tests Acceptance Tests Unit Tests Component Tests System Tests Showcases Exploratory Tests Usability Tests Performance Tests Security Tests TheTeam TheProduct Functionality The Systemfrom Brian Marick
  • 24. Then Do This 8. Automated Deployment – What: Push button deployment capabilities – Effort: High – Sample Tools: FluentMigrator, Puppet, Octopus
  • 25. Automated Deployments Sandbox Production Version Control CI Server DB Web ServerWeb Server DB Test DB Web ServerWeb Server DB DB Web Server Automated Nightly Deployments Push Button Deployments Managed Deployments
  • 26. Benefits of Automated Deployments ◊ Reduces complexity by using standardized script ◊ Reduces risk by re-running same script ◊ Reduces cost by speeding up deployment ◊ Frees up resources to focus on new features
  • 27. One More Thing - Developers Developer’s Bill of Rights 1. Every programmer shall have two monitors 2. Every programmer shall have a fast PC 3. Every programmer shall have their choice of mouse and keyboard 4. Every programmer shall have a comfortable chair 5. Every programmer shall have a fast internet connection 6. Every programmer shall have {effective} working conditions Posted by Jeff Atwood , http://www.codinghorror.com/blog/2006/08/the- programmers-bill-of-rights.html
  • 28. Useful References ◊ Stephen Ritchie, Pro .NET Best Practices, Apress, 2011. ◊ Paul Duvall, Steve Matyas, and Andrew Glover, Continuous Integration: Improving Software Quality and Reducing Risk, Addison-Wesley, 2007. ◊ Jez Humble, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, Addison-Wesley, 2010
  • 29. Excella Consulting Experience and Expertise in Agile Solutions – Coaching – Training – Assessments – Agile Adoption – Agile Development Teams – Agile PMO Training Courses – Certified ScrumMaster (CSM) – Certified Scrum Product Owner (CSPO): The Agile Business Analyst – Advanced Certified Scrum Product Owner (CSPO) – Certified Scrum Developer (CSD) – Agile Testing – Agile Business Intelligence and Data Warehousing See http://www.excella.com/services/agile-training-services.aspx for more information
  • 30. Contact Information Richard K Cheng richard.cheng@excella.com 703-967-8620 http://www.excella.com Twitter: @RichardKCheng

Editor's Notes

  1. Best teams and best products where everyone is responsible for processQuality is not just a phaseIts more then just building quality into the processIt’s a shared responsibility for everyone
  2. Whatever technology stack you use, this works inAreas outside Sharepoint, ETL/BI, BizTalk
  3. thousands of committers around the world, spoke and hub models will not workTraditional is more command and control, distributed more peer to peer (collaborative) and spreads the load of administration
  4. First list are test runners, they run testsSecond list, isolation facilities, for test isolation – create testFluent makes tests more readableRequires less coaching and more workshoppingSomeone to help coach you through the initial sets, the CSD is helpful for this
  5. Maintence is lightstanding it up is easy if you have done it, tougher if you have not
  6. FindBugs – potentially buggy codeCheckStyle – potential out of coding standardsPMD – shows a little bit of both
  7. FindBugs – potentially buggy codeCheckStyle – potential out of coding standardsPMD – shows a little bit of bothCoverage report, shows how much of this code is being tested Shows how much code is being covered
  8. ORM against DB as the exampleBiggest challenge revolves around the data and databaseHigh if integrating the components can be expensive OPM – background investigation is expensive because of massive infrastructure
  9. Make the problem statement firstprolonged sprints or need for more testersvelocity is limited by number of testers