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

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

(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