Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps...
Transcript of Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps...
![Page 1: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/1.jpg)
www.electric-cloud.com
Agile Software Production?
Andrew Patterson
Electric Cloud Europe
![Page 2: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/2.jpg)
AgendaAgenda
Its not (just) about Agile Development
The real issues in the Software Development Lifecycle
What are they?What is important?
Software Production : Tool OptionsBuy or Build?How do you decide?
![Page 3: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/3.jpg)
The Ideal?The Ideal?
Source Tree Build
01010
10101
01010
10101
Test Deploy
Agile Build, Test and Deployment
High Degree of Automation
![Page 4: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/4.jpg)
Slide 4
Software Creation
Software Production
LifeCycleLifeCycle Tool InvestmentTool Investment
BUILDCODE TEST DEPLOY
SCM $2 B
Dev ToolsMulti-Billion
Test Creation$1.5 B
?
![Page 5: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/5.jpg)
Agile
Global teams
Virtual environments
Slower time to market
Lower quality
Lack of compliance
Roadblock to modern development techniques
Slide 5
SPM ProblemsSPM Problems
Slow
Not Standard
BrittleNot
accessible to engineers
Not Repeatable
Resource intensive to maintain
Lost Productivity
![Page 6: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/6.jpg)
Software Production ChecklistSoftware Production Checklist
Increasingly common
Have distributed teams sharing common build and test processes
Manual work todayNeed visibility/metrics on build and test progress
Don’t know what can be parallelised
Project releases would be earlier if multiple platform build and test run in parallel
Developers switch projects while waiting
Developers lose time waiting for overnight builds, test results
Can be a serial, slow process
Need to build on multiple platforms
High-riskHave problems managing and maintaining build scripts / single person has knowledge
Help with time-to-market, code quality
Need Continuous Integration
Time consumingSlow, manual steps from SCM->Build->Test
Multiplies up with variants, localisation
Build times > 30 minutes
CommentResponseTopic
![Page 7: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/7.jpg)
Production Time ExampleProduction Time Example
1 SmartPhoneGround-Up Build time 37 hours
4 Hardware Platforms
22 Localisation builds for target languages
135 days total…
Incremental builds and links can lead to dependency issues
One file change / bug fix and start-over
![Page 8: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/8.jpg)
Project TradeProject Trade--off.off.
You may only have three of these :
Good (Quality)
Fast (Time to Market)
Cheap (Cost Effective)
Done (Project Completed)
But, You can optimise the mix
![Page 9: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/9.jpg)
www.electric-cloud.com
What is the Enterprise Requirement?
![Page 10: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/10.jpg)
Slide 10
Linking Distributed TeamsLinking Distributed Teams
Specific Access and Permissions Based on RoleAnywhere in the World
SW DEVELOPERS
Copenhagen
ENGINEERING MGR
Boston
BUILD TEAM
San Francisco
OUTSOURCED
QA
Bangalore
SW DEVELOPERS
Bulgaria
![Page 11: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/11.jpg)
Slide 11
Managing ResourcesManaging Resources
Test ServersBuild Servers Production Servers Virtual Servers
SW DEVELOPERS
ENGINEERING MGR
BUILD TEAM
OUTSOURCED
QA
SW DEVELOPERS
VMware Lab Manager
VMware Lab Manager
VMware Lab Manager
Dynamic Provisioning
![Page 12: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/12.jpg)
Unit Tests
Deployment ToolsSCM Tools
Build Tools
Test ServersBuild Servers Production Servers Virtual Servers
SW DEVELOPERS ENGINEERING MGR BUILD TEAM OUTSOURCED
QA
SW DEVELOPERS Build ToolsSCM ToolsUnit TestsDeployment Tools
Integrate Tools and ProcessesIntegrate Tools and Processes
![Page 13: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/13.jpg)
Slide 13
Tie it all TogetherTie it all Together
SCM Tools
Unit Tests
Deployment Tools
Build Tools
Test ServersBuild Servers Production Servers Virtual Servers
SW DEVELOPERS ENGINEERING MGR BUILD TEAM OUTSOURCED
QA
SW DEVELOPERS
![Page 14: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/14.jpg)
Slide 14
Blue Sky SolutionBlue Sky Solution
Schedule/Trigger
When to run a procedure
Resources
Pool
Process to run automatically
Records results of running a procedureLinux serverLinux server Linux server
Test harness
Windows server
Job
Step
Step
Step
Step
Step
Job
Step
Step
Step
Step
Step
Job
Step
Step
Step
Step
Step
Job
Step
Step
Step
Step
Step
Procedure
Step
Step
Step
Step
Step
CheckinCode
Set Up Java Build
Compile
Unit Test
Report
Container for processes and
results
Project
Command or script
![Page 15: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/15.jpg)
Managing Build and Test DataManaging Build and Test Data
Job
Step
Step
Step
Step
processid
resourceto use
servername
password
repositorylocation
directory
branch
targets
“Fixed” Product-specific Job-specificConfigurationInputs
WorkingData
success/failureerrorcount
warningmessage
JobResults
QAstatuspromotionlevel
problemnotes
Post-CompletionInfo
last green build
counter for build ids
Cross-Build Info
![Page 16: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/16.jpg)
Slide 16
Visibility: Management ReportsVisibility: Management Reports
![Page 17: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/17.jpg)
www.electric-cloud.com
Methodology :Continuous Integration and Pre-Flight Builds
![Page 18: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/18.jpg)
Continuous IntegrationContinuous Integration
Integration Build
Build Failure
Build Success
QADeveloper runs local build and unit tests
Developer checks tested code into SCM system
Integration build at frequent intervals or upon check-in
SCMSCMSystemSystem
Check-In
Automated Workflow
Production Servers
![Page 19: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/19.jpg)
Frequent Problem: Continuously Broken BuildsFrequent Problem: Continuously Broken Builds
Build Failure
Developer builds/tests on local system, checks in code
Integration build started, breaks (“it worked on my machine”)
Team impacted while check-in is backed out or build fixed
SCMSCMSystemSystem
Check-In
XXXXWait
XXXX
Wait
Back Out
Integration Build
Automated Workflow
Production Servers
![Page 20: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/20.jpg)
Solution: PreSolution: Pre--Flight Builds and TestsFlight Builds and Tests
Developers
SCMSCMSystemSystem
Automated Workflow
Build or Test Failure
Success
Test Servers Production Servers
Developers build and test across all targets/platforms
Ensures successful integration build
Developers can check in changes with confidence
Broken builds less likely to affect the entire team
![Page 21: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/21.jpg)
What Actually Happens What Actually Happens
GetSource
BuildWindows TestInstall
BuildLinux TestInstall
SystemTests
Report/Notify
Wait For Results Release
![Page 22: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/22.jpg)
![Page 23: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/23.jpg)
The MVPThe MVP
Who are the engineering team MVPs?Managers?Developers?QA?
The MVP is the build manager supporting the script
Why?
![Page 24: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/24.jpg)
Who Else?Who Else?
The build manager actually builds the product that’s shipped
Sure, developers write the features and bugs
Sure, QA tests that the product works
Sure, managers do something valuable
But the build manager…… that guy actually built the thing your company ships… that guy probably stayed up until 3am to make it happen
So why does that guy get no decent tools?
![Page 25: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/25.jpg)
The Rise and Rise of the MVP Build ManagerThe Rise and Rise of the MVP Build Manager
In the old days..TBM didn’t exist, being TBM was a role taken on by a developer
Developers hated to be the ‘build guy’ for the day
The software grew; the build grew
TBM role is formalized, but developers still looked down on him
TodayThe Manager invites TBM to join his weekly staff meeting; TBM matters now
Developers, QA and Management harass him about broken builds
MVPMVPMVPMVP
![Page 26: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/26.jpg)
www.electric-cloud.com
Quick Win :Accelerating the
Software Production Process
![Page 27: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/27.jpg)
Slide 27
A typical Software Production processA typical Software Production process
BUILD Cpp UNIT Doxygen C-Depend CoverageStatic
AnalysisLint Package Deploy
1 Hour and Growing10 min 6 min 20 min
![Page 28: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/28.jpg)
Slide 28
AccelerationAcceleration
BUILD Cpp UNIT Doxygen C-Depend CoverageStatic
AnalysisLint Package Deploy
90 Minute Process
![Page 29: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/29.jpg)
Slide 29
AccelerationAcceleration
15 min 6 min 10 min
90 Minute Process
BUILD Cpp UNIT Doxygen C-Depend CoverageStatic
AnalysisLint Package DeployDeploy
![Page 30: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/30.jpg)
Slide 30
AccelerationAcceleration
BUILD
Cpp UNIT
Doxygen
C-Depend
Coverage
Static Analysis
Lint
Package
Deploy
Deploy
15 min 6 min 10 min
3x Gain
Coarse Grain Parallelism
31 Minutes
![Page 31: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/31.jpg)
Slide 31
Builds GrowBuilds Grow
BUILD
Cpp UNIT
Doxygen
C-Depend
Coverage
Static Analysis
Lint
Package
Deploy
Deploy
15 min 6 min 10 min
![Page 32: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/32.jpg)
Slide 32
Builds GrowBuilds Grow
BUILD
Cpp UNIT
Coverage
Doxygen
C-Depend
Static Analysis
Lint
Package
Deploy
Deploy
15 min 6 min 10 min3 Hours
![Page 33: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/33.jpg)
Slide 33
Builds GrowBuilds Grow
BUILD
Cpp UNIT
Doxygen
C-Depend
Coverage
Static Analysis
Lint
Package
Deploy
Deploy
15 min 6 min 10 min3 Hours
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
![Page 34: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/34.jpg)
Slide 34
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
The Problem: DependenciesThe Problem: Dependencies
BUILD
Cpp UNIT
Doxygen
C-Depend
Coverage
Static Analysis
Lint
Package
Deploy
Deploy
15 min 6 min 10 min3 Hours
Dependencies (Hidden and/or Expressed)
Distributing the Build can solve this
problem
![Page 35: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/35.jpg)
Slide 35
The Problem: DependenciesThe Problem: Dependencies
BUILD
Cpp UNIT
Doxygen
C-Depend
Coverage
Static Analysis
Lint
Package
Deploy
Deploy
15 min 6 min 10 min3 Hours
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
Dependencies (Hidden and/or Expressed)
![Page 36: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/36.jpg)
Slide 36
Cpp UNIT
Doxygen
C-Depend
Coverage
Static Analysis
Lint
Package
Deploy
Deploy
010101
010101
010101010101
010101
010101010101
010101
010101010101
010101
010101
15 min
BUILD
010101
010101
010101010101
010101
010101010101
010101
010101010101
010101
010101
010101
010101
010101010101
010101
010101010101
010101
010101010101
010101
010101
010101
010101
010101010101
010101
010101010101
010101
010101010101
010101
010101
BUILD
Cpp UNIT
Doxygen
C-Depend
Coverage
Static Analysis
Lint
Package
Deploy
Deploy
15 min 6 min 10 min3 Hours
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
010101
Fine Grain Parallelism on BuildsFine Grain Parallelism on Builds
![Page 37: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/37.jpg)
Getting There: DIYGetting There: DIY
Fast buildsBuy lots of SMP hardware and try out GNU Make parallelism or manually parallelize the build.
Scheduled buildsUse cron for that
On demand buildsBuild an intranet page, integrate it yourself with the current build and source code management system
Stimuli buildsBuild ad-hoc script attached to source code management system
![Page 38: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/38.jpg)
DIYDIY
You could try that
Before you do think about…How much time do you have to write all that code?How you are going to manage 200+ builds per day?What build time acceleration is needed?How are you going to manage hardware failure in your build system?
Who will manage and maintain the solution
What is the long-term cost and risk
![Page 39: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/39.jpg)
Build Your Own?Build Your Own?
Features
Inve
stm
ent
Trigger builds after check-ins
Automated build and test for one build tool, one
machine
Scheduled jobs
Seems pretty straightforward…
![Page 40: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/40.jpg)
Build Your Own?Build Your Own?
Features
Inve
stm
ent
Trigger builds after check-ins
Database of build results
Automated build and test for one build tool, one
machine
Notifications via e-mail/RSS
Scheduled jobs
Web-based access to results
Just a few finishing touches
CruiseControlgives you this for Java/Ant
![Page 41: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/41.jpg)
Build Your Own?Build Your Own?
Features
Inve
stm
ent
Automated build and test for one build tool, one
machine
Scheduled jobs
Trigger builds after check-ins
Web-based access to
results
Notifications via e-mail/RSS
Database of build results
Single job can use multiple resources
Run job steps in parallel
Multiple jobs run on one resource simultaneously
Run multiple builds
simultaneously
Resource pooling, load
balancing
Multiple servers, remote invocation
Resource selection criteria
Multiple servers, concurrency
![Page 42: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/42.jpg)
Features
Build Your Own?Build Your Own?In
vest
men
t
Automated build and test for one build tool, one
machine
Scheduled jobs
Trigger builds after check-ins
Web-based access to
results
Notifications via e-mail/RSS
Database of build results
Single job can use multiple resources
Run job steps in parallel
Multiple jobs run on one resource simultaneously
Run multiple builds
simultaneously
Resource pooling, load
balancing
Multiple servers, remote invocation
Resource selection criteria
Cancel jobs
View partial results of builds in progress
Monitor system status
On-demand job invocation via
Web
Better monitoring and control
![Page 43: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/43.jpg)
Features
Build Your Own?Build Your Own?In
vest
men
t
Automated build and test for one build tool, one
machine
Scheduled jobs
Trigger builds after check-ins
Web-based access to
results
Notifications via e-mail/RSS
Database of build results
Single job can use multiple resources
Run job steps in parallel
Multiple jobs run on one resource simultaneously
Run multiple builds
simultaneously
Resource pooling, load
balancing
Multiple servers, remote invocation
Resource selection criteria
Cancel jobs
View partial results of builds in progress
Monitor system status
On-demand job invocation via
Web
Tools for extracting
data from logs
Trend reports
Cross-product reports
Resource utilization
reports
Annotate builds after completion
Customizable reports
Better reporting
![Page 44: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/44.jpg)
Features
Build Your Own?Build Your Own?In
vest
men
t
Automated build and test for one build tool, one
machine
Scheduled jobs
Trigger builds after check-ins
Web-based access to
results
Notifications via e-mail/RSS
Database of build results
Single job can use multiple resources
Run job steps in parallel
Multiple jobs run on one resource simultaneously
Run multiple builds
simultaneously
Resource pooling, load
balancing
Multiple servers, remote invocation
Resource selection criteria
Cancel jobs
View partial results of builds in progress
Monitor system status
On-demand job invocation via
Web
Tools for extracting
data from logs
Trend reports
Cross-product reports
Resource utilization
reports
Annotate builds after completion
Customizable reports
Logging and error reporting
Retry steps after errors/ failures
Timeouts for runaway job
steps
Detect resource failures
Better error handling
![Page 45: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/45.jpg)
Features
Build Your Own?Build Your Own?In
vest
men
t
Automated build and test for one build tool, one
machine
Scheduled jobs
Trigger builds after check-ins
Web-based access to
results
Notifications via e-mail/RSS
Database of build results
Single job can use multiple resources
Run job steps in parallel
Multiple jobs run on one resource simultaneously
Run multiple builds
simultaneously
Resource pooling, load
balancing
Multiple servers, remote invocation
Resource selection criteria
Cancel jobs
View partial results of builds in progress
Monitor system status
On-demand job invocation via
Web
Tools for extracting
data from logs
Trend reports
Cross-product reports
Resource utilization
reports
Annotate builds after completion
Customizable reports
Logging and error reporting
Retry steps after errors/ failures
Timeouts for runaway job
steps
Detect resource failures
Developer access to production
builds
LDAP authentication
Role-based access control
Shared access by multiple teams
User impersonation,
password management
Priorities
Handle multiple independent groups
![Page 46: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/46.jpg)
Features
Build Your Own?Build Your Own?In
vest
men
t
Automated build and test for one build tool, one
machine
Scheduled jobs
Trigger builds after check-ins
Web-based access to
results
Notifications via e-mail/RSS
Database of build results
Single job can use multiple resources
Run job steps in parallel
Multiple jobs run on one resource simultaneously
Run multiple builds
simultaneously
Resource pooling, load
balancing
Multiple servers, remote invocation
Resource selection criteria
Cancel jobs
View partial results of builds in progress
Monitor system status
On-demand job invocation via
Web
Tools for extracting
data from logs
Trend reports
Cross-product reports
Resource utilization
reports
Annotate builds after completion
Customizable reports
Logging and error reporting
Retry steps after errors/ failures
Timeouts for runaway job
steps
Detect resource failures
Developer access to production
builds
LDAP authentication
Role-based access control
Shared access by multiple teams
User impersonation,
password management
Priorities
Conditional steps
Modular, composable
process stepsExtensibility
Parameters Control environment
for jobs
More programming features
![Page 47: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/47.jpg)
Features
Build Your Own? It Never EndsBuild Your Own? It Never EndsIn
vest
men
t
Automated build and test for one build tool, one
machine
Scheduled jobs
Trigger builds after check-ins
Web-based access to
results
Notifications via e-mail/RSS
Database of build results
Single job can use multiple resources
Run job steps in parallel
Multiple jobs run on one resource simultaneously
Run multiple builds
simultaneously
Resource pooling, load
balancing
Multiple servers, remote invocation
Resource selection criteria
Cancel jobs
View partial results of builds in progress
Monitor system status
On-demand job invocation via
Web
Tools for extracting
data from logs
Trend reports
Cross-product reports
Resource utilization
reports
Annotate builds after completion
Customizable reports
Logging and error reporting
Retry steps after errors/ failures
Timeouts for runaway job
steps
Detect resource failures
Developer access to production
builds
LDAP authentication
Role-based access control
Shared access by multiple teams
User impersonation,
password management
Priorities
Conditional steps
Modular, composable
process stepsExtensibility
Parameters Control environment
for jobs
Portable across hardware/OS
platforms
SCM integration, bill of materials
Support multiple languages and
build tools
Web interface for editing processes
Command-line interface
![Page 48: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/48.jpg)
![Page 49: Agile Software Production?jaoo.dk/dl/jaoo-aarhus-2008/slides/AndrewPatterson...Slow, manual steps from SCM->Build->Test Time consuming Multiplies up with variants, localisation Build](https://reader034.fdocuments.us/reader034/viewer/2022052013/6029b955f9226954d7006a7f/html5/thumbnails/49.jpg)
Q&AQ&A
Please ask, or email [email protected]
For more information:Visit our website: www.electric-cloud.comE-mail: [email protected]