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