Exercise 8: Continuous Delivery & Release Management Flashcards
1
Q
Motivation
A
How it is often done: Delivery only after the implementation was finished
- Rare releases during development
- Little feedback from clients and users during development
- Target Environment != Development Environment
2
Q
Definitions RElease Management - Continuous Delivery
A
- Release management is the process of managing software releases from development stage to software release
- A release manager has different responsibilities:
- Facilitator: serves as a liaison between varying business units to promote smooth and timely delivery of software products or updates
- Coordinator: utilized to coordinate disparate source trees, projects, teams and components
- Continuous Delivery is an approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.
- It is used in software development to automate and improve the process of software delivery
3
Q
“DevOps”
A
- “DevOps” (Development + Operations) is a software development method that emphasizes communication, collaboration, integration, automation, and measurement of cooperation between software developers and other IT professionals (e.g. operations)
- Code Quality Manager
- Release Manager
- Product Quality Manager
4
Q
Continuous Delivery: Benefits and Challenges
A
- Benefits
- Accelerated time to market
- Building the right product: improved product quality and customer satisfaction
- Improved productivity and efficiency
- Reduced risk of a release failure
- Challenges
- Organizational: Varying interests in different departments of an organization
- Process: Traditional processes hinder continuous delivery
- Technical: Maintainability of the source code & tailorable delivery workflows for heterogeneous project environments
5
Q
Continuous Delivery Workflow
A
6
Q
Continuous Integration Server
A
- Regularly checks for changes published to the version control server (pull) or is notified when changes are available (push)
- Builds the SW:
- Compiles the source code
- Execute test cases (regression testing)
- Packages the software
- Code signs the software
- Notifies developers about build status
- Automatically detects multiple branches and creates a build plan for each branch (Bamboo)
7
Q
Continuous Delivery Server
A
- Distributes software to customers and users (a.k.a. Enterprise AppStore)
- Obtains user feedback about the usage of the software
- Collects crash reports
- Stores feedback and crash reports in an issue tracker (e.g. JIRA)
8
Q
Management Issues: Continuous Integration
A
- How long does the integration and execution of test cases take?
- Can you only execute the test cases related to the change? (Research issue)
- How often should you do it? (continuously, nightly, weekly)?
- Do you buy a build server (e.g. Bamboo), do you use an open source version (e.g. Jenkins) or do you build in the cloud (e.g. Travis CI)?
- How many build agents do you provide? (e.g. in POM we started with 3 and now we have 10. Is that enough?)
- ➡ A project manager needs to answer these questions
9
Q
Management Issues: Continuous Delivery
A
- How often do you deliver your application? (every change?)
- What process changes do you have to implement to make customers aware of multiple releases during development?
- How do you handle customers that do not react to releases?
- How many releases can a customer / user handle?
- How do you handle feedback within the Sprint?
- What needs to be done to implement continuous integration and delivery from scratch? (e.g. big bang, CI —> CD, CI —> CD —> feedback)
- How can you tailor the workflow to specific project needs?
10
Q
Best Practices
A
- The process for releasing/deploying software MUST be repeatable and reliable
- If somethings difficult or painful, do it more often.
- Automate everything
- ➡ Write test cases
- Integrate your changes early and often
- Release early and often to obtain feedback
- Release internally first
- Test it thoroughly
- Then promote the release to your users
- React to crashes and user feedback
- Improve continuously
11
Q
A