Download presentation
Presentation is loading. Please wait.
Published byBrittany Walsh Modified over 9 years ago
1
THE CONTINUOUS DELIVERY ZONE Craig Berntson Chief Software Gardener Mojo Software Worx
2
Ego stuff Conference speaker INETA Community Speaker ComponentOne Speaker Bureau Author Microsoft C# MVP
3
Have you heard these? It works on my machine When will you be done The database changed Stop shipping! We found a bug! Give me what you have so we can test Customer won’t accept – lots of bugs Code duplication
4
Waterfall Customer InputBusiness AnalysisDevelopmentManual TestingRelease
5
Software Gardening Agile methodologies Continuous Delivery Developer skills Refactoring Design Patterns Test-Driven Development SOLID OOD Software Craftsmanship Dependency Injection
6
Agile methodologies Individuals and interactions Working software Customer collaboration Responding to change
7
Continuous Delivery Continuous Integration Automated Acceptance Testing Automated Capacity Testing Manual Testing Automated Deployment Software Delivery Pipeline Fail Fast (Learn Early) Delivery Team = Development + QA + Operations DevOps
8
Why Continuous Delivery Reduce risk Increase quality Enable better project visibility Establish greater product confidence Reduce repetitive/manual processes
9
Continuous Integration Also called Commit Stage
10
CI Defined Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. – Martin Fowler http://www.martinfowler.com/articles/continuousIntegration.html
11
CI Defined CI is the embodiment of tactics that gives us, as software developers, the ability to make changes in our code, knowing that if we break software, we’ll receive immediate feedback...[It is] the centerpiece of software development, as it ensures the health of software through running a build with every change. – Paul Duvall Continuous Integration
12
CI Defined An automated process that builds, tests, analyzes and deploys an application to help ensure it functions correctly, follows best practices, and is deployable. This process runs with each source code change and provides immediate feedback to the development team. - Continuous Integration in.NET
13
Definitions tell us Integrate frequently Automated build & test Centerpiece of development Ensures health Automated build, test, analyze, deploy Functions correctly Follows best practices Runs with each code change Immediate feedback
14
Manual process Check outCheck in
15
CI process Get latestCheck in
16
Continuous Integration Process Version Control System Developers Feedback Mechanism Build Script CI Server Stake Holders
17
Version Control System (VCS) Check in often, several times per day Do not branch – Always work on trunk Everything goes into VCS Tools: TFS, Subversion, Git, Mercurial
18
Project Organization Each developer: Uses the same folder structure Uses the same tools Uses the same 3 rd party components, placed in project folders Check everything out from VCS and build
19
Continuous Integration Servers Manage the CI process Check out source Compile Run tests Give feedback Tools: TFS, Jenkins, Team City, Cruise Control
20
Build management Handles actual build from source Gets called from CI Server Tools: MSBuild, Ant, Nant, Rake, PSake
21
Testing
22
Unit tests Integration tests
23
Unit/Integration testing Test After Development Test Driven Development Unit Test Frameworks JUnit, NUnit, MSTest, xUnit, rbUnit
24
Artifacts Potential release candidate Build & test results Components for next steps or subsequent builds Tools: Maven, Npanday, Octopus
25
Feedback Build reports Test results Web, system tray, text, twitter, sound large monitors, lights, Ambient Orb Build Radiator
26
Build Radiator Multiple projects Multiple statistics Can be whiteboard, colored Post-It notes, web page
27
Build Radiator Examples Michael Brunton-Spall – guardian.co.uk
28
Build Radiator Examples Phil Collins
29
Build Radiator Examples Phil Collins
30
Continuous Integration Demo Developer process CI server configuration Feedback mechanism Build radiator
31
Best Practices Commit code frequently Don’t commit broken code Fix broken builds immediately Write automated developer tests All tests and inspections must pass Run private builds (each developer runs tests on their own code) Avoid getting broken code (don’t check out broken code)
32
Continuous Delivery Continuous Integration Automated Acceptance Testing Automated Capacity Testing Manual Testing Automated Deployment
33
Automated Testing Processes Artifact Storage Test System CI Server Feedback Mechanism
34
Automated Acceptance Testing Validates software from the user perspective Does the functionality work the way the customer expects? Given … When … Then … Test system should resemble production system Tools: FitNesse, Cucumber, Jbehave, Concordion, Twist
35
Automated Acceptance Testing Loose coupling UI Design Patterns MVVM, MVC, MVP Separation of concerns
36
Automated Capacity Testing Non-functional requirements Scalability, Longevity, Throughput, Load Tools: Jmeter, Marathon, Bench, Ants
37
What happened to QA staff? Role changes Write automated test scripts Analyze test results Manual testing
38
Manual Testing Process Artifact Storage Feedback Mechanism Test System QA staff
39
Manual Testing Exploratory, Usability, Showcases Look and feel Worst-case
40
Automated Deployment Process should be identical to testing deployment Sets up systems and configuration Don’t forget about rollback (and test this too) Tools: Puppet, Octopus, System Center
41
Testing Integration Functional Acceptance System Stability Scalability Performance Load Unit Code Analysis Test coverage Dependency Refactoring Code review Static analysis Database Schema Stored proc Test database Unit testing Deployment Install script QA Production Extending Continuous Deployment
42
Review Continuous Integration Automated Acceptance Testing Automated Capacity Testing Manual Testing Automated Deployment
43
Questions Email: craig@mojosoftwareworx.com Twitter: @craigber www.speakerrate.com/craigber
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.