Transcript Slide 1

Software Factory
– A Vision Implemented
Ger Malone
May 23rd/WW21.5
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
1
Engineering Services
Legal Notices
This presentation is for informational purposes only. INTEL MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
[BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Inside, Core Inside, i960, Intel, the Intel logo, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, the Intel Inside logo, Intel
NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel Sponsors of Tomorrow., the Intel Sponsors of Tomorrow. logo, Intel StrataFlash, Intel Viiv, Intel
vPro, Intel XScale, InTru, the InTru logo, InTru soundmark, Itanium, Itanium Inside, MCS, MMX, Pentium, Pentium Inside, skoool, the skoool logo, Sound Mark, The Journey Inside, vPro
Inside, VTune, Xeon, and Xeon Inside] are trademarks of Intel Corporation in the U.S. and other countries.
*Other names and brands may be claimed as the property of others.
Microsoft, Windows, and the Windows logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.
Java and all Java based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Bluetooth is a trademark owned by its proprietor and used by Intel Corporation under license.
Intel Corporation uses the Palm OS® Ready mark under license from Palm, Inc.
Copyright © 2014, Intel Corporation. All rights reserved.
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
2
Engineering Services
Agenda
•
•
•
•
•
Vision
ASD Software Factory
Continuous Build, Integration, Validation
Benefits
Q&A
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
3
Engineering Services
Vision
“Software Factory” =
Continuous
Build
Continuous
Integration
Continuous
Validation
Prepare for
Delivery
•
•
Architect and supply the
infrastructure to support the
agile development practises
of the Intel Automotive
Solutions Division
Software
Factory
A Software Factory, which is
automated from source
code check-in to a fully
tested customer ready
package
Run Automated
Validation Tests
Provision and Deploy
to Validation
Run Automated Smoke
Tests
Generate
Release
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
4
Engineering Services
Scope
Team
Responsibilities
Engineering
Computing
(Global Intel IT)
Hardware Installation/Physical
infrastructure install and
configuration
Engineering
Services
Software lifecycle infrastructure
(tools) design and installation.
Development
Team
Source code to ready for
integration into package
Technical Details:
•
Software for Intel’s first IA-based
system for the connected car
•
A large amount of active lines of
code per release/branch
•
Many Subsystems with many
components
•
tagged, code reviewed, built,
unit tested, code coverage,
code churn, static analysis,
coding standards checking,
legal compliance checking and
defect tracking
•
Automated Test cases run on the
release by the System test
Validation team
Integration Team Package creation and smoke test
System Test
Validation
Tested customer ready package
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
5
Engineering Services
ASD Software Factory
“Software Factory” =
Continuous
Build
Everyone commits to
the baseline every day
Pass
Name
audio
Fail (2/4)
(10/10)
Name
boot Pass (1/1) Pass (2/2)
Name
build_tools Pass (1/1) Pass (1/1)
Name
ce_device Pass (9/9) Warn (6/9)
2.1_Pre1Name
Release
consumerbus Pass (1/1) Pass (1/1)
core_libraries Pass (5/5) Pass (5/5)
Name
Name
diagnosis Pass (1/1) Pass (1/1)
early_application Pass (1/1) Pass (1/1)
Name
Name
inline_diagnosis Pass (1/1) Pass (1/1)
Maintain a code
repository
Every commit (to
baseline) is built
F
ProtexIP
Defects
Legal
Coding
Static
Klocwork
Stds
DScan
V C H M
L
100
82
UT Coverage
- Release - Subsystem Build Jenkins
GERRI
T
2
1972
Churn
Continuous
Integration
Week
0
0
5
0
233
287
57070
2782350
100
80
0
0
0
0
0
1
0
0
0
NA
NA
NA
NA
NA
0
1
2
0
0
0
8059
71
50
39
4660
0
0
4 22 13
0
7
78514
46
37
0
214
0
0
0
1
0
0
0
2754
70
58
2
100
80
1179
0
0
0
1
2
0
0
248
0
0
0
1
0
0
31
11
0
594
0
0
0
2
0
0
0
11094
100
93
0
2
0
0
1
7
1
0
126
0
220886
0
16909
3164
Metrics
Reporting
Test in a clone of the
production env.
ProtexIP
Defects
Legal
Coding
Static
Klocwork
Stds
DScan
V C H M
L
82
0
UT Coverage
- Release - Subsystem Build Jenkins
F
Pass
Fail (2/4) 100
(10/10)
Name
audio
Name
boot Pass (1/1) Pass (2/2)
Name
build_tools Pass (1/1) Pass (1/1)
Name
ce_device Pass (9/9) Warn (6/9)
2.1_Pre1Name
Release
consumerbus Pass (1/1) Pass (1/1)
core_libraries Pass (5/5) Pass (5/5)
Name
Name
diagnosis Pass (1/1) Pass (1/1)
early_application Pass (1/1) Pass (1/1)
Name
Name
inline_diagnosis Pass (1/1) Pass (1/1)
Automate the build
Software
Factory
Continuous
Validation
LOC
code
Day
0
Test Team
Industry
“Continuous
Integration”
Criteria
2
1972
0
0
0
5
Churn
LOC
Day
Week
233
code
287
57070
100
80
0
0
0
0
0
1
0
0
0
2782350
NA
NA
NA
NA
NA
0
1
2
0
0
0
8059
71
50
39
4660
0
0
4 22 13
0
7
78514
46
37
0
214
0
0
0
1
0
0
0
2754
70
58
2
1179
0
0
0
1
2
0
0
16909
100
80
0
248
0
0
0
1
0
0
0
3164
31
11
0
594
0
0
0
2
0
0
0
11094
100
93
0
2
0
0
1
7
1
0
126
220886
Metrics
Reporting
Keep the build fast
Make it easy to get the
latest deliverables
Make the build selftesting
Jenkins
Jenkins
Everyone can see
results of latest build
F
Legal
Coding
Static
Klocwork
Stds
DScan
V C H
M L
Day
Week
100
82
2
1972
0
0
0
5
0
233
287
57070
100
80
0
0
0
0
0
1
0
0
0
2782350
NA
NA
0
1
2
0
0
UT Coverage
Static Analysis
Code coverage
Legal compliance
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
- Release - Subsystem Build Jenkins
Pass
Name
audio
Fail (2/4)
(10/10)
Name
boot Pass (1/1) Pass (2/2)
Name
build_tools Pass (1/1) Pass (1/1)
Name
ce_device Pass (9/9) Warn (6/9)
2.1_Pre1Name
Release
consumerbus Pass (1/1) Pass (1/1)
core_libraries Pass (5/5) Pass (5/5)
Name
Name
diagnosis Pass (1/1) Pass (1/1)
early_application Pass (1/1) Pass (1/1)
Name
Name
inline_diagnosis Pass (1/1) Pass (1/1)
ProtexIP
Defects
Churn
Automate deployment
LOC
code
NA
NA
NA
0
8059
71
50
39
4660
0
0
4 22 13
0
7
78514
46
37
0
214
0
0
0
1
0
0
0
2754
16909
70
58
2
1179
0
0
0
1
2
0
0
100
80
0
248
0
0
0
1
0
0
0
3164
31
11
0
594
0
0
0
2
0
0
0
11094
100
93
0
2
0
0
1
7
1
0
126
220886
Metrics
Reporting
6
Engineering Services
Continuous Build
Continuous
Build
•
•
•
•
•
•
•
GERRI
T
Software
Factory
Auto build on code check in
Unit Testing
Code coverage
Static code analysis
Legal Compliance
Churn & LOC analysis
Daily dashboard morning email
and live website
UT Coverage
- Release - Subsystem
Jenkins
Name
audio
Static Analysis
Code coverage
Legal compliance
F
ProtexIP
Defects
Legal
Coding
Static
Klocwork
Stds
DScan
V C H M
L
Day
Week
100
82
2
1972
0
0
0
5
0
233
287
57070
100
80
0
0
0
0
0
1
0
0
0
2782350
NA
NA
NA
NA
NA
0
1
2
0
0
0
8059
71
50
39
4660
0
0
4 22 13
0
7
78514
46
37
0
214
0
0
0
1
0
0
0
2754
70
58
2
1179
0
0
0
1
2
0
0
16909
100
80
0
0
0
1
0
0
UT Coverage
- Release - Subsystem Build Jenkins
Pass
Name
audio
Fail (2/4)
(10/10)
Name
boot Pass (1/1) Pass (2/2)
Name
build_tools Pass (1/1) Pass (1/1)
Name
ce_device Pass (9/9) Warn (6/9)
2.1_Pre1Name
Release
consumerbus Pass (1/1) Pass (1/1)
core_libraries Pass (5/5) Pass (5/5)
Name
Name
diagnosis Pass (1/1) Pass (1/1)
early_application Pass (1/1) Pass (1/1)
Name
Name
inline_diagnosis Pass (1/1) Pass (1/1)
Churn
Release
2.1_Pre1
LOC
0
code
0
248
31
11
0
594
0
0
0
2
0
0
0
11094
100
93
0
2
0
0
1
7
1
0
126
220886
3164
Metrics
Reporting
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
Build
Pass
(10/10)
Static
Klocwork
Scan
Jenkins
F
D
Coding
Stds
Legal
ProtexIP
Defects
Churn
V
C
H
M
L
LOC
Day
Week
code
Fail (2/4)
100
82
2
1972
0
0
0
5
0
233
287
57070
Name
boot
Pass (1/1) Pass (2/2)
100
80
0
0
0
0
0
1
0
0
0
2782350
Name
build_tools
Pass (1/1) Pass (1/1)
NA
NA
NA
NA
NA
0
1
2
0
0
0
8059
Name
ce_device
Pass (9/9) Warn (6/9)
71
50
39
4660
0
0
4
22
13
0
7
78514
Name
consumerbus
Pass (1/1) Pass (1/1)
46
37
0
214
0
0
0
1
0
0
0
2754
Name
core_libraries
Pass (5/5) Pass (5/5)
70
58
2
1179
0
0
0
1
2
0
0
16909
Name
diagnosis
Pass (1/1) Pass (1/1)
100
80
0
248
0
0
0
1
0
0
0
3164
Name
early_application
Pass (1/1) Pass (1/1)
31
11
0
594
0
0
0
2
0
0
0
11094
Name
inline_diagnosis
100
93
0
2
0
0
1
7
1
0
126
220886
Pass (1/1) Pass (1/1)
*illustrative figures only
7
Engineering Services
Continuous Integration
Continuous
Integration
F
ProtexIP
Defects
Legal
Coding
Static
Klocwork
Stds
DScan
V C H M
L
100
82
UT Coverage
- Release - Subsystem Build Jenkins
Software
Factory
Pass
Name
audio
Fail (2/4)
(10/10)
Name
boot Pass (1/1) Pass (2/2)
Name
build_tools Pass (1/1) Pass (1/1)
Name
ce_device Pass (9/9) Warn (6/9)
2.1_Pre1Name
Release
consumerbus Pass (1/1) Pass (1/1)
core_libraries Pass (5/5) Pass (5/5)
Name
Name
diagnosis Pass (1/1) Pass (1/1)
early_application Pass (1/1) Pass (1/1)
Name
Name
inline_diagnosis Pass (1/1) Pass (1/1)
2
1972
Churn
LOC
code
Day
Week
0
0
0
5
0
233
287
57070
2782350
100
80
0
0
0
0
0
1
0
0
0
NA
NA
NA
NA
NA
0
1
2
0
0
0
8059
71
50
39
4660
0
0
4 22 13
0
7
78514
46
37
0
214
0
0
0
1
0
0
0
2754
70
58
2
1179
0
0
0
1
2
0
100
80
0
248
0
0
0
1
0
0
31
11
0
594
0
0
0
2
0
0
0
11094
100
93
0
2
0
0
1
7
1
0
126
0
220886
0
•
Daily & on demand release
package generation
•
Smoke tests run on VMs & HW
•
80% time saved on individual
release package generation
•
Daily metrics reporting with
access to details of smoke test
results
16909
3164
Metrics
Reporting
Jenkins
Pa cka g e
R e su l t
Smoke Test Name
SmokeTestsDailyKC2.1_PRE1Vm_KC2.1_PRE1
Te st Su m m a ry
Pa sse d
Fa i l e d
Bl o cke d
To ta l
URL
pass
45
0
0
45
Click Here
Smoke Test Name
SmokeTestsReleaseBuildsKC2.1_PRE1Vm_KC2.1_PRE1
pass
45
0
0
45
Click Here
Smoke Test Name
SmokeTestsReleaseBuildsKC2.1_PRE1Hw_KC2.1_PRE1
fail
0
0
0
0
Click Here
Smoke Test Name
SmokeTestsInternalBuildsKC2.1_PRE1Hw_KC2.1_PRE1
warn
600
60 0
00
1
0
600
610
Click Here
Smoke Test Name
SmokeTestsDailyKC2.1_PRE1Hw_KC2.1_PRE1
warn
600
60 0
00
1
0
600
610
Click Here
*illustrative figures only
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
8
Engineering Services
Continuous Validation
Continuous
Validation
• Automated release candidate
package transfer to STV
UT Coverage
- Release - Subsystem Build Jenkins
Klocwork
audio
D
2
Coding
Stds
1972
ProtexIP
Defects
LegalChurn
Static
Scan
V C H M L
0
0
0
5
0
Week
233
code
287
57070
boot
Pass (1/1) Name
Pass (2/2) 100 80
0
0
0
0
0
1
0
0
0
2782350
build_tools
Pass (1/1) Name
Pass (1/1) NA NA
NA
NA
NA
0
1
2
0
0
0
8059
ce_device
78514
Pass (9/9) Name
Warn (6/9) 71 50
39
4660
0
0
4 22 13
0
7
2.1_Pre1 consumerRelease
bus Pass (1/1)Name
Pass (1/1) 46 37
0
214
0
0
0
1
0
0
0
2754
core_libraries Pass (5/5)Name
Pass (5/5) 70 58
2
1179
0
0
0
1
2
0
0
16909
Pass (1/1) Name
Pass (1/1) 100 80
0
248
0
0
0
1
0
0
0
3164
early_application Pass (1/1) Name
Pass (1/1) 31 11
0
594
0
0
0
2
0
0
0
11094
inline_diagnosis Pass (1/1) Name
Pass (1/1) 100 93
0
2
0
0
1
7
1
0
126
220886
diagnosis
• Automated kick-off upon
package receipt
LOC
Day
Metrics
Reporting
Test Team
F
Pass
Name
Fail (2/4) 100 82
(10/10)
• Many automated test across a
number of targets
• Daily metrics reporting with
access to validation results
Software
Factory
Target Number
Target Number
Name
#
Target Number
Target Number
*illustrative figures only
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
9
Engineering Services
Benefit Summary
Improvement
Area
Prior to
Automation
Saved
Benefit
Validation
per Release
days
hours
95% time saving
<1 hour
0.5 days
STV transfer
10+ hours
time
Smoke Test
None
Many tests
Catch bugs earlier
Release
Generation
hours
mins
80% time saving
Jenkins Job
automation
days
mins
Quicker release
turnaround time
Benefits also include scalability and reduced overhead
In this project window:
• ASD has delivered many external releases to date
• Shift Left model of bug discovery
• Less than 24 hours from source code check-in to a
validated customer ready release package
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
10
Engineering Services
Key Learnings
• This was a cross team effort.
• Have key people with technical experience and decision
making powers as a representative to each team
• Follow the key principles of continuous integrations
• Investing time upfront in the infrastructure will save time in
the overall life of the project
• Be disciplined and maintain the infrastructure
• The infrastructure needs to be ever evolving to meet the needs
of the project but can only evolve if is maintained with
discipline.
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
11
Engineering Services
Future Enhancements
A Software Factory Web Portal
• Software Factory at its mature/maintenance stage is an end to
end solution from source code check-in to customer ready
package.
• During any software lifecycle there is initial setup, constant
churn of elements, packaging, tests cases etc.
• The Software Factory Portal is a single entry point into the full
Software factory to add/modify/delete elements of the
infrastructure.
• E.g. Add new component, activate unit tests once they have
been created, edit which components go into a release, add
new test cases etc.
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
12
Engineering Services
Vision -> Implementation
Software
Factory
Continuous Build
Continuous Integration
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
13
Continuous Validation
Engineering Services
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
14
Engineering Services
Back-up
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
15
Engineering Services
Principles of Continuous Integration
•
•
•
•
•
•
•
•
•
•
Maintain a code repository
Automate the build
Make the build self-testing
Everyone commits to the baseline every day
Every commit (to baseline) should be built
Keep the build fast
Test in a clone of the production environment
Make it easy to get the latest deliverables
Everyone can see the results of the latest build
Automate deployment
Intel
Agile
and Lean Development Conference - © 2014 Intel Corporation
Intel
Confidential
16
Engineering Services