+ All Categories
Home > Software > Continuous integration in large programs

Continuous integration in large programs

Date post: 14-Apr-2017
Category:
Upload: naveen-kumar-singh
View: 104 times
Download: 0 times
Share this document with a friend
19
Continuous Integration in Large Programs Naveen Kumar Singh @naveenhome
Transcript
Page 1: Continuous integration in large programs

Continuous Integration in Large Programs

Naveen Kumar Singh@naveenhome

Page 2: Continuous integration in large programs

Let’s define large

Page 3: Continuous integration in large programs

What are the challenges?

One challenge per sticky note 10

Mins

Page 4: Continuous integration in large programs

Arrange in below order

Technical Problem People Problem Process Problem

5 Mins

Page 5: Continuous integration in large programs

Everything Boil Down to…….

I don’t know Why to do We can’t do

Page 6: Continuous integration in large programs

Time to Produce and Design?

Page 7: Continuous integration in large programs

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)

Page 8: Continuous integration in large programs

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

Page 9: Continuous integration in large programs

Define your Delivery Pipeline

Build Test Release

Deploy to test

Pre-Prod Prod

Manual or Automated

Time spend on each phase

20 Mins

Page 10: Continuous integration in large programs

Typical waste in software development

Defects Overhead processes Waiting

Not-realizing people's potential

Task switching Inventory Motion Extra features

Page 11: Continuous integration in large programs

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

Page 12: Continuous integration in large programs

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

Page 13: Continuous integration in large programs

Continuous Integration For…….

Better• Quality

Faster• Feedback

Cheaper• Automat

ed

Page 14: Continuous integration in large programs

Our challenges……

Distributed Team

• India• Philippines• USA• Middle-East

Sub-Products

• Investment• Pension• Health• Wealth

Others• Different Skills• Manual Test• Wrong Metrics

Page 15: Continuous integration in large programs

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

Page 16: Continuous integration in large programs

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

Page 17: Continuous integration in large programs

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

Page 18: Continuous integration in large programs

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

Page 19: Continuous integration in large programs

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


Recommended