Continuous integration in large programs
-
Upload
naveen-kumar-singh -
Category
Software
-
view
104 -
download
0
Transcript of Continuous integration in large programs
Continuous Integration in Large Programs
Naveen Kumar Singh@naveenhome
Let’s define large
What are the challenges?
One challenge per sticky note 10
Mins
Arrange in below order
Technical Problem People Problem Process Problem
5 Mins
Everything Boil Down to…….
I don’t know Why to do We can’t do
Time to Produce and Design?
Let’s look at things differently
Lean Product Development – Highly
Uncertain, High Variability and not repeatable
Design
Development
Testing?
Lean Manufacturing – Predictable, Low Variability, Mechanistic, shorter lead
time and near Zero defects.
Deployment
Information Security
Support (L1, Apps)
Why Continuous Integration
Let’s play a game to understand why Continuous Integration?
Simulation will cover below:-
• Cost of Delay• Cost of Production• Continuous Integration Principles
Define your Delivery Pipeline
Build Test Release
Deploy to test
Pre-Prod Prod
Manual or Automated
Time spend on each phase
20 Mins
Typical waste in software development
Defects Overhead processes Waiting
Not-realizing people's potential
Task switching Inventory Motion Extra features
What is Continuous Integration
A software development practice where members of the integrate their work frequently, usually each person integrates at least daily- leading to multiple integrations per day. Each integration is verified by an automated build to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. – Martin Fowler
Continuous Integration PrinciplesEveryone commits to the mainlineEvery commit should be builtAutomate the buildMake the build self-testingKeep the build fastEveryone can see the results of the latest build
Continuous Integration For…….
Better• Quality
Faster• Feedback
Cheaper• Automat
ed
Our challenges……
Distributed Team
• India• Philippines• USA• Middle-East
Sub-Products
• Investment• Pension• Health• Wealth
Others• Different Skills• Manual Test• Wrong Metrics
Continuous Testing is Must
Build a fast and reliable automated validation test suite
Ensure test run quickly
Write our automated tests before we write the code
Automate as many of our manual tests as possible
Integrate NFR testing into our test suite
Rules for Team
Commit Early, Commit OftenCode may not be complete but should not be brokenUse feature togglingFix broken build is first priorityWork on TrunkAutomate, automate and automate…..Punishment for breaking team rules
What team was doing
Make constraint visible
Team brainstorm and identify
solutionFail fast to learn
better way
Focus on built-In quality not verification
Practice Test First Continuously review “DONE” criteria
What we achieved
– One click deploy in production– Single Branch– More than 120 people team– Nightly build– Code always in deployable state– Very less failed build– Reduced cycle time– Rarely rollback
Thank You!
Wanted to know more about Agile, Scrum, CI/CD and DevOps etc?
Write to me [email protected]
Call me +91 9810547500
Follow me on Twitter @naveenhome