1.1.14 - Describe strategies for managing releases and updates. Flashcards
Why are updates needed?
The software development lifecycle requires continuous monitoring, developing, bug fixing and re-development of the software. Therefore, multiple updates and releases are required.
What are the three levels of software updates?
1) Patches
2) Updates
3) Releases
What is a patch?
A patch is a software update consisting of code inserted (patched) into the code of an executable program. They’re often temporary fixes between full releases of a software package.
State 5 things that a patch can do.
1) Fix a software bug.
2) Install new drivers.
3) Address new security vulnerabilities.
4) Address software stability issues.
5) Upgrade the software.
What is an update?
An update is a software file that contains fixes for problems found by other users than the software developer. Installing an update fixes the code and prevents problems from happening on your computer. Because updates fix problems with a program, they are almost always free.
What is a release?
A product release is the process of launching a new product for a specific market or user base. In software development, a product release is sometimes done with a beta version so that core developers/users can assist with debugging and feedback prior to the release of the actual software.
What are the two ways of receiving updates? Describe each one.
1) Manually - updates are downloaded and installed by the user
2) Automatically - the software automatically contacts the developer, then downloads and installs any updates.
Give an advantage and disadvantage of manually installing updates.
The user has full control, however it is time consuming.
Give an advantage and disadvantage of having updates automatically installed.
The user doesn’t have to think or worry about updates, so their system will always be up to date. However, a bad (and irreversible) update could be automatically installed without user input.
What are the three types of release management?
1) Continuous delivery.
2) Agile software development.
3) Development operations (DevOps).
What is continuous delivery?
Continuous delivery is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time.
Why is continuous delivery used?
It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production.
What is agile software development?
Agile software development describes an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organising and cross-functional teams and their customers/end users.
Why is agile software development used?
It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change.
What is development operations (DevOps)?
DevOps is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops). The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management.