Modern Release Engineering in a Nutshell - Why Researchers should Care!
-
Upload
bram-adams -
Category
Engineering
-
view
273 -
download
3
Transcript of Modern Release Engineering in a Nutshell - Why Researchers should Care!
![Page 1: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/1.jpg)
Modern Release Engineering in a Nutshell
Why Researchers should Care
Bram Adams Shane McIntosh,MC IS
![Page 2: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/2.jpg)
Back in 2009 …
![Page 3: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/3.jpg)
![Page 4: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/4.jpg)
On average, we release new code fifty
times a day.
![Page 5: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/5.jpg)
Release engineering aims to …
4
![Page 6: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/6.jpg)
Release engineering aims to …
4
codechange
![Page 7: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/7.jpg)
Release engineering aims to …
4
codechange
![Page 8: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/8.jpg)
Release engineering aims to …
4
codechange
![Page 9: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/9.jpg)
Release engineering aims to …
4
codechange
FAST
![Page 10: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/10.jpg)
Release Engineering
![Page 11: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/11.jpg)
Release Engineering
![Page 12: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/12.jpg)
Release Engineering
integrating code changes
![Page 13: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/13.jpg)
Release Engineering
integrating code changes building/testing (CI)
![Page 14: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/14.jpg)
Release Engineering
integrating code changes building/testing (CI)
deploying a new release
![Page 15: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/15.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
![Page 16: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/16.jpg)
Nowadays …
![Page 17: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/17.jpg)
Time-boxed releases
7
![Page 18: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/18.jpg)
Time-boxed releases
6 months
7
![Page 19: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/19.jpg)
Time-boxed releases
6 weeks
6 months
7
![Page 20: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/20.jpg)
Time-boxed releases
2 weeks (mobile)
6 weeks
6 months
7
![Page 21: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/21.jpg)
Time-boxed releases
twice/day (web)
2 weeks (mobile)
6 weeks
6 months
7
![Page 22: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/22.jpg)
Time-boxed releases
twice/day (web)
daily
2 weeks (mobile)
6 weeks
6 months
7
![Page 23: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/23.jpg)
http://www.informit.com/articles/article.aspx?p=1833567
Jez Humble
![Page 24: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/24.jpg)
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk of releasing software
if it hurts, do it more frequently, and
bring the pain forward
Jez Humble
![Page 25: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/25.jpg)
• How quickly can we ship a chemspill release?
• 4-6 weeks 11 hours
• How long to ship a “new feature” release?
• 12-18 months 6 weeks
• How many active code lines?
• 1 1/2 42
• How many checkins per day?
• ~15 per day 325 per day
Before & After
Thursday, June 6, 13
http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
![Page 26: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/26.jpg)
• How quickly can we ship a chemspill release?
• 4-6 weeks 11 hours
• How long to ship a “new feature” release?
• 12-18 months 6 weeks
• How many active code lines?
• 1 1/2 42
• How many checkins per day?
• ~15 per day 325 per day
Before & After
Thursday, June 6, 13
http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
![Page 27: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/27.jpg)
• How quickly can we ship a chemspill release?
• 4-6 weeks 11 hours
• How long to ship a “new feature” release?
• 12-18 months 6 weeks
• How many active code lines?
• 1 1/2 42
• How many checkins per day?
• ~15 per day 325 per day
Before & After
Thursday, June 6, 13
http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
![Page 28: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/28.jpg)
https://xebialabs.com/periodic-table-of-devops-tools/ & https://xebialabs.com/the-ultimate-devops-tool-chest/
![Page 29: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/29.jpg)
11
industry Release engineering innovation
led by industry!
![Page 30: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/30.jpg)
11
industry
academia
Release engineering innovation
led by industry!
![Page 31: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/31.jpg)
12
What can you do for release engineering?
![Page 32: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/32.jpg)
RELENG: International Workshop on Release Engineering
13
![Page 33: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/33.jpg)
RELENG: International Workshop on Release Engineering
13
230 participants3 editions
dozens of industry
& academic talks
![Page 34: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/34.jpg)
RELENG: International Workshop on Release Engineering
13
230 participants3 editions
dozens of industry
& academic talks
![Page 35: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/35.jpg)
RELENG: International Workshop on Release Engineering
13
230 participants3 editions
next RELENG: in Fall 2016
http://releng.polymtl.ca
dozens of industry
& academic talks
![Page 36: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/36.jpg)
How to predict integration effort?
14
![Page 37: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/37.jpg)
How to predict integration effort?
14
git repo
![Page 38: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/38.jpg)
How to predict integration effort?
14
git repo
myapp v.1
![Page 39: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/39.jpg)
How to predict integration effort?
14
git repo
myapp v.1
?
![Page 40: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/40.jpg)
How to predict integration effort?
14
git repo
myapp v.1
![Page 41: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/41.jpg)
How to predict integration effort?
14
feature branch 1git repo
myapp v.1
![Page 42: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/42.jpg)
How to predict integration effort?
14
feature branch 1git repo
myapp v.1
![Page 43: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/43.jpg)
How to predict integration effort?
14
feature branch 1git repo
myapp v.1
![Page 44: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/44.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
myapp v.1
![Page 45: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/45.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
MERGE
myapp v.1
![Page 46: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/46.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
MERGE
myapp v.1
![Page 47: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/47.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
MERGE
myapp v.1
![Page 48: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/48.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
release branch
MERGE
myapp v.1
![Page 49: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/49.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
release branch
MERGE
myapp v.1
![Page 50: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/50.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
release branch
MERGE
myapp v.1
feature branch 2
![Page 51: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/51.jpg)
master branch
How to predict integration effort?
14
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2
![Page 52: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/52.jpg)
master branch
How to predict integration effort?
14
3rd party dependency
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2
![Page 53: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/53.jpg)
master branch
How to predict integration effort?
14
3rd party dependency
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2
![Page 54: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/54.jpg)
master branch
How to predict integration effort?
14
3rd party dependency
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2sy
nc
![Page 55: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/55.jpg)
15
https://xkcd.com/303/
![Page 56: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/56.jpg)
user acceptance/system testsperformance tests
(selection of) unit tests
all unit testsintegration tests
time to run (hours)
full compilation
incremental compilation
`
Why do CI builds take so long?
16
![Page 57: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/57.jpg)
user acceptance/system testsperformance tests
(selection of) unit tests
all unit testsintegration tests
time to run (hours)
full compilation
incremental compilation
`
local developer build
Why do CI builds take so long?
16
![Page 58: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/58.jpg)
user acceptance/system testsperformance tests
(selection of) unit tests
all unit testsintegration tests
time to run (hours)
full compilation
incremental compilation
`
local developer build
Why do CI builds take so long?
16
![Page 59: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/59.jpg)
user acceptance/system testsperformance tests
(selection of) unit tests
all unit testsintegration tests
time to run (hours)
full compilation
incremental compilation
` CI build of merged change
local developer build
Why do CI builds take so long?
16
![Page 60: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/60.jpg)
user acceptance/system testsperformance tests
(selection of) unit tests
all unit testsintegration tests
time to run (hours)
full compilation
incremental compilation
CI build of merged change
local developer build
Why do CI builds take so long?
16
![Page 61: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/61.jpg)
user acceptance/system testsperformance tests
(selection of) unit tests
all unit testsintegration tests
time to run (hours)
full compilation
incremental compilation
closer to release
CI build of merged change
local developer build
Why do CI builds take so long?
16
![Page 62: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/62.jpg)
user acceptance/system testsperformance tests
(selection of) unit tests
all unit testsintegration tests
time to run (hours)
full compilation
incremental compilation
closer to release
CI build of merged change
local developer build
Why do CI builds take so long?
16
![Page 63: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/63.jpg)
Even worse …
17
![Page 64: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/64.jpg)
Even worse …
17
build machinery run
on each commit!
![Page 65: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/65.jpg)
Even worse …
17
build machinery run
on each commit!
![Page 66: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/66.jpg)
Even worse …
17
build machinery run
on each commit!different feature configurations
![Page 67: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/67.jpg)
Even worse …
17
build machinery run
on each commit!
not just build and test, also code quality builds, nightly builds, etc.
different feature configurations
![Page 68: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/68.jpg)
Even worse …
17
build machinery run
on each commit!
not just build and test, also code quality builds, nightly builds, etc.
not all builds succeed
different feature configurations
![Page 69: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/69.jpg)
What are deployment best practices?
18
![Page 70: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/70.jpg)
What are deployment best practices?
18
v.1 v.1v.1
![Page 71: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/71.jpg)
What are deployment best practices?
18
v.1v.2 v.1
![Page 72: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/72.jpg)
What are deployment best practices?
18
v.2 v.1v.2
![Page 73: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/73.jpg)
What are deployment best practices?
18
v.2 v.1v.1
![Page 74: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/74.jpg)
What are deployment best practices?
18
v.1v.1v.1
![Page 75: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/75.jpg)
Infrastructure code
19
![Page 76: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/76.jpg)
# Install PostgreSQL server and client include_recipe "postgresql::server" include_recipe "postgresql::client"
# Make postgresql_database resource available include_recipe "database::postgresql"
# Create database for Rails app db = node["practicingruby"]["database"] postgresql_database db["name"] do connection( :host => db["host"], :port => node["postgresql"]["config"]["port"], :username => db["username"], :password => db["password"], ) end
Infrastructure code
19
![Page 77: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/77.jpg)
# Install PostgreSQL server and client include_recipe "postgresql::server" include_recipe "postgresql::client"
# Make postgresql_database resource available include_recipe "database::postgresql"
# Create database for Rails app db = node["practicingruby"]["database"] postgresql_database db["name"] do connection( :host => db["host"], :port => node["postgresql"]["config"]["port"], :username => db["username"], :password => db["password"], ) end
Infrastructure code
19
![Page 78: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/78.jpg)
# Install PostgreSQL server and client include_recipe "postgresql::server" include_recipe "postgresql::client"
# Make postgresql_database resource available include_recipe "database::postgresql"
# Create database for Rails app db = node["practicingruby"]["database"] postgresql_database db["name"] do connection( :host => db["host"], :port => node["postgresql"]["config"]["port"], :username => db["username"], :password => db["password"], ) end
Infrastructure code smells?
19
![Page 79: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/79.jpg)
![Page 80: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/80.jpg)
Is the release in good
shape?
![Page 81: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/81.jpg)
Was the release a success?
Is the release in good
shape?
![Page 82: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/82.jpg)
Was the release a success?
Is the release in good
shape?
The release is botched, how can we
roll back?
![Page 83: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/83.jpg)
Was the release a success?
What’s the optimal cycle time for us?
Is the release in good
shape?
The release is botched, how can we
roll back?
![Page 84: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/84.jpg)
Chuck Rossi
21
![Page 85: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/85.jpg)
Continuous delivery for mobile apps is a serious
challenge!
Chuck Rossi
21
![Page 86: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/86.jpg)
What can you do for release engineering?
22
![Page 87: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/87.jpg)
What can you do for release engineering?
22
What can release
engineering do for you?
![Page 88: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/88.jpg)
When noble intentions meet reality
23
![Page 89: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/89.jpg)
Harmful assumptions about release pipelines that can impact predictive modelling
24
![Page 90: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/90.jpg)
Harmful assumptions about release pipelines that can impact predictive modelling
1. All releases are equal
24
![Page 91: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/91.jpg)
25
![Page 92: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/92.jpg)
Look at Project X! It had a crazy number of
bugs in the typical six-month post-release window!
25
![Page 93: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/93.jpg)
Look at Project X! It had a crazy number of
bugs in the typical six-month post-release window!
Well, Project X releases every 6 weeks, so
you’re counting several releases…
25
![Page 94: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/94.jpg)
Release cycles vary amongpopular studied systems
Fig. 3: Integration delay is computed by counting the re-leases that occur between when an issue status changes toRESOLVED-FIXED and the the date of the release note thatlists that issue.
Fig. 4: Delays in days between releases of ArgoUML, Eclipse,and Firefox. The number shown over each boxplot is themedian interval
project. For example, Figure 4, shows that Firefox releasesconsistently every 42 days (six weeks), whereas the timesbetween ArgoUML releases vary from 50 to 220 days. Theconsistency of Firefox releases may lead to more delayedissues, since they rigidly adhere to a six-week release scheduledespite accumulating issues that could not be integrated.
34% to 60% of addressed issues in the traditionalrelease cycle systems were delayed by one or more releases.Figure 2 shows that 98% of the addressed issues in Firefoxare delayed by one or more releases. Firefox is expected tohave delayed issues due its rapid release cycles. However,98% is still a considerably large percentage. Furthermore, evenfor the systems that adopt a more traditional release cycle,34% (ArgoUML) to 60% (Eclipse) of the addressed issues aredelayed by one or more releases. This result indicates that eventhough an issue is addressed, integration could be delayed byone or more releases.
Many delayed issues were addressed well before releasesfrom which they were omitted. Addressed issues could bedelayed from integration because they were addressed latein the release cycle, e.g., one day or one week before theupcoming release date. In order to compare the rapid andtraditional release cycles regarding whether delayed issuesare addressed late in the release schedule, we computed the
Fig. 5: Distribution of days between when an issue wasaddressed and the next missed release divided by the releasewindow time.
Addressing Stage metric (AS) for each issue. The AS metricis calculated using the following equation: days to next release
release window
,where days to next release is the number of days when an issueis addressed before the next release (e.g., the time between t3to t4 in Figure 3), and the release window is the time in daysbetween the next upcoming release and the respective previousrelease (e.g., t4 to t2). An AS value close to 1 means that anissue was addressed too close to the next release, whereas avalue close to 0 means that an issue was addressed at thebeginning of a release cycle. Figure 5 shows the distributionof the AS metric for each project. The smallest AS medianis observed for Eclipse, which is 0.45. For ArgoUML andFirefox, the median is 0.52 and 0.53, respectively. The ASmedians are roughly in the middle of the release. Moreover,the boxes extend to cover between 0.25 and 0.75. The resultsuggests that, in the studied projects, delayed issues are usuallyaddressed 1
4 to 34 of the way through a release. Hence, it is
unlikely that most addressed issues miss the next release solelybecause they were addressed too close to an upcoming releasedate.
The integration of 34% to 60% of the addressed issuesin the traditionally releasing systems and 98% in therapidly releasing system were delayed by one or morereleases. Furthermore, we find that many delayed issueswere addressed well before releases from which they wereomitted from.
RQ2: Can we accurately predict when an addressed issuewill be integrated?Motivation. Several studies proposed approaches to inves-tigate the time required to address an issue [2–7]. Thesestudies could help to estimate when an issue will be addressed.However, we find that integration delays when an addressedissue will be delivered to users. Even though several issues areaddressed well before the next release date, their integration isdelayed. For users and contributors, however, knowing the re-lease in which an addressed issue will be integrated is of great
Day
s be
twee
n re
leas
es
An Empirical Study of Delays in the Integration of Addressed IssuesD. A. da Costa et al.
[ICSME 2014]
![Page 95: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/95.jpg)
Release cycles can evenvary within systems!
1.02.02.53.03.54.05.06.07.08.09.0
10.00 200 400 600 800
Fire
fox
rele
ase
Days since prior release 27
![Page 96: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/96.jpg)
The rapid release cycle of modern software systems
28
![Page 97: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/97.jpg)
The rapid release cycle of modern software systems
Often release several timesin one day!
28
![Page 98: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/98.jpg)
1. All releases are equal
Harmful assumptions about release pipelines that can impact predictive modelling
29
![Page 99: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/99.jpg)
1. All releases are equal2. All branches are equal
Harmful assumptions about release pipelines that can impact predictive modelling
29
![Page 100: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/100.jpg)
30
![Page 101: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/101.jpg)
Weird… The size of this project fluctuates between
50k and 45k lines!
30
![Page 102: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/102.jpg)
Weird… The size of this project fluctuates between
50k and 45k lines!
Hmm, did you select the relevant branch? Several
are developed in parallel!
30
![Page 103: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/103.jpg)
An example of defect prediction
Feature developmentDefect repairingMerge
Commit types
31
![Page 104: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/104.jpg)
An example of defect prediction
Feature developmentDefect repairingMerge
Commit types
31
![Page 105: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/105.jpg)
An example of defect prediction
v1.0
Feature developmentDefect repairingMerge
Commit types
31
![Page 106: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/106.jpg)
An example of defect prediction
v1.0
Feature developmentDefect repairingMerge
Commit types
Pre-release
31
![Page 107: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/107.jpg)
An example of defect prediction
v1.0
Feature developmentDefect repairingMerge
Commit types
Pre-release
Post-release
31
![Page 108: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/108.jpg)
An example of defect prediction
v1.0
Feature developmentDefect repairingMerge
Commit types
Pre-release
Post-release
31
![Page 109: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/109.jpg)
Handling the intricacies of a multi-branch release pipeline
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 110: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/110.jpg)
Handling the intricacies of a multi-branch release pipeline
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 111: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/111.jpg)
Handling the intricacies of a multi-branch release pipeline
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 112: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/112.jpg)
Handling the intricacies of a multi-branch release pipeline
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 113: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/113.jpg)
Handling the intricacies of a multi-branch release pipeline
v1.0
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 114: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/114.jpg)
Handling the intricacies of a multi-branch release pipeline
v1.0
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 115: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/115.jpg)
Handling the intricacies of a multi-branch release pipeline
v1.0
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 116: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/116.jpg)
Handling the intricacies of a multi-branch release pipeline
v1.0
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 117: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/117.jpg)
Handling the intricacies of a multi-branch release pipeline
v1.0
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 118: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/118.jpg)
Handling the intricacies of a multi-branch release pipeline
v1.0
Dev
Stable
Feature developmentDefect repairingMerge
Commit types
32
![Page 119: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/119.jpg)
Branching can get really complex…
33
![Page 120: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/120.jpg)
1. All releases are equal2. All branches are equal
Harmful assumptions about release pipelines that can impact predictive modelling
34
![Page 121: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/121.jpg)
1. All releases are equal2. All branches are equal
3. All files are equal
Harmful assumptions about release pipelines that can impact predictive modelling
34
![Page 122: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/122.jpg)
35
![Page 123: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/123.jpg)
This popular web browser has an enormous codebase!
>30M lines!
35
![Page 124: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/124.jpg)
This popular web browser has an enormous codebase!
>30M lines!
Yes, but the codebase contains several systems! The build configuration
decides which one is produced!
35
![Page 125: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/125.jpg)
36
Many files are conditionally included in deliverables
Tracing Software Build Processes to Uncover License Compliance
InconsistenciesS. van der Berg et al.
[ASE 2014]
Aterm
Opkg
Bash
CUPS
Xalan
OpenSSL
FFmpeg
% Excluded Files
0% 20% 40% 60% 80%
![Page 126: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/126.jpg)
36
Many files are conditionally included in deliverables
Fixes in these files may have a smaller impact (if any) on customers
Tracing Software Build Processes to Uncover License Compliance
InconsistenciesS. van der Berg et al.
[ASE 2014]
Aterm
Opkg
Bash
CUPS
Xalan
OpenSSL
FFmpeg
% Excluded Files
0% 20% 40% 60% 80%
![Page 127: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/127.jpg)
Understanding conditionally included files using the build system
Design recovery and maintenance of build systemsB. Adams et al.
[ICSM 2007]
37
![Page 128: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/128.jpg)
1. All releases are equal,2. All branches are equal,
Harmful assumptions about release pipelines that can impact predictive modelling
3. All files are equal
38
![Page 129: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/129.jpg)
but some are more equal than others
1. All releases are equal,2. All branches are equal,
Harmful assumptions about release pipelines that can impact predictive modelling
3. All files are equal
38
![Page 130: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/130.jpg)
My nightmare
Amassing and indexing a large sample of version control systems
Audris Mockus [MSR 2009]
Boa: a language and infrastructure for analyzing ultra-large-scale software repositories
R. Dyer et al. [ICSE 2013]
The GHTorrent Dataset and Tool Suite
G. Gousios [MSR 2013]
![Page 131: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/131.jpg)
My nightmare
Amassing and indexing a large sample of version control systems
Audris Mockus [MSR 2009]
Boa: a language and infrastructure for analyzing ultra-large-scale software repositories
R. Dyer et al. [ICSE 2013]
The GHTorrent Dataset and Tool Suite
G. Gousios [MSR 2013]
We collect all of the data in the world, but it’s meaningless without context!
![Page 132: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/132.jpg)
![Page 133: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/133.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
![Page 134: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/134.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
![Page 135: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/135.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk of releasing software
if it hurts, do it more frequently, and
bring the pain forward
Jez Humble
![Page 136: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/136.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new releasehttp://www.informit.com/articles/article.aspx?p=1833567
reduce the risk of releasing software
if it hurts, do it more frequently, and
bring the pain forward
Jez Humble
![Page 137: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/137.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new releasehttp://www.informit.com/articles/article.aspx?p=1833567
reduce the risk of releasing software
if it hurts, do it more frequently, and
bring the pain forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party dependency
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2sy
nc
![Page 138: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/138.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new releasehttp://www.informit.com/articles/article.aspx?p=1833567
reduce the risk of releasing software
if it hurts, do it more frequently, and
bring the pain forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party dependency
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2
sync
![Page 139: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/139.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new releasehttp://www.informit.com/articles/article.aspx?p=1833567
reduce the risk of releasing software
if it hurts, do it more frequently, and
bring the pain forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party dependency
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2
syncbut some are more equal than others
1. All releases are equal,2. All branches are equal,
Harmful assumptions about release pipelines that can impact predictive modelling
3. All files are equal
![Page 140: Modern Release Engineering in a Nutshell - Why Researchers should Care!](https://reader034.fdocuments.net/reader034/viewer/2022042907/587670e51a28abd0018b6191/html5/thumbnails/140.jpg)
Release Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new releasehttp://www.informit.com/articles/article.aspx?p=1833567
reduce the risk of releasing software
if it hurts, do it more frequently, and
bring the pain forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party dependency
feature branch 1git repo
release branch
MERGE CONFLICT?
myapp v.1
feature branch 2
sync
but some are more equal than others
1. All releases are equal,2. All branches are equal,
Harmful assumptions about release pipelines that can impact predictive modelling
3. All files are equal