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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Continuous Delivery Workflow

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly