Continuous Integration
Getting your department to drink the Kool-Aid
Manual QA Manual Build No Unit Testing Resistance to Agile in the office 2 weeks to 1 month deployment times
Where we started
1. Identify your support team2. Develop a Proof of Concept3. Use leaders to evangelize4. Make a single success into a best practice
Strategy for success
You must have support from management.
Start with those from your peer community first
Choose leaders from other peer communities and see if you can solve any problems they struggle with.
Support Team?
Ask for permission and time to implement something new on your existing project, actively collaborate
Ask for permission to work on a “side project”, show it to a developer once it’s half done
Don’t ask and implement the POC on your own time, integrate it once proven
Getting Permission : Strategies
Get buy-in by showing value Regression Testing was a nightmare Scenario and Role Testing were time
consuming Training non-technical QA personnel
Listen for barriers to adoption and remove them
Get the Testers working as a team Meet them where they are at
Encourage all positive feedback Be flexible in the adoption of automation Use whatever help is offered
Implementing Test Automation
Would these things save you time?
All unit tests had to pass for deploy to Test/Dev environment Deployment of changes was a single click operation that you had access to You could roll-back (reset) the database to some static data set without
developer intervention Regression tests were 75% automated and did not require human intervention. Automated regression tests could be run on both your machine (while under
development) and multiple versions of FF/IE/Chrome/Safari on both a PC and Mac (when complete) without any additional effort on your part.
Automated regression tests could be run on mobile versions of FF/Chrome/Safari on both Android/IPAD without any additional effort on your part.
You could inherit someone elses testing and expect a certain standard of documentation and regression test set that protected existing business logic.
Testers inheriting your code could ramp up to 80% of where you left off without your help.
Example: Showing Value
Reducing deployment times Begin with the end in mind Identical Prod/Test/Dev environment Minimal environment configuration You build it, you deploy it
How to help other teams Adopting a POC Bringing first hand experience will give you
credibility Lead by example: Have a successful project or
product to point to.
Duplicating Your Success
Platforms For Distributing Kool Aid: Team
Product Owner Center of Excellence/Improvement Community Multi-team Initiatives Organization
Evangelizing Agile
Continuous Integration occurs during the sprint Planned for at Release Level
Entire team should be committed to and focused on scope of release Divergences could break master and limit
ability to release Release Early & Often
Ensures Minimal Risk/Hassle
Release Planning
Educate Early! During an onboarding process, if possible.
Stress the Benefits! Faster Product Delivery Reduced Risk Lower Technical Debt
Do they understand technical debt? Maintain Transparency!
Product Owners
Get The Whole Team Involved Evaluate Emergent Processes Revamp Definition of Done Shared Ownership
Be Prepared for Failures Celebrate Successes
Team Collaboration
Minimize expectations Regardless of member experience level
Take adequate time for a process reset Work toward Continuous Integration
But strive toward confident code first
Teams Splitting
Continue to evangelize Agile Treat each cycle of work like an experiment
Encourage your team to be the Proof of Concept
At The End Of The Day
All teams using selenium webdriver or protractor for regression scenarios
Unit Testing adopted by 3/5 teams Builds are automated using Jenkins Deployment times have been reduced (1day to
1 week) Scrum/Kanban mix depending on team.
Where we are now
Jen Knight Jen Knight
@JenKnightLIFE jenniferelizabethjenkins
Mike @mrbenning
michaelbenning
Contact