Class 8 - DevOps, Metrics, and Testing Tools Flashcards
What are the development team’s primary goals?
- Usability (debugging and UX)
- Test suite effectiveness
- Cycle time (sprint time/velocity)
- …
What are the operations team’s primary goals
- Uptime (availability)
- Response time (speed)
- Data integrity (backups)
- …
Before DevOps was used, how did the development team work with the operations team on a project?
Developers did not care about Operation’s goals and Operations did not care about Developer’s goal. Essentially, the development team and operations team disregarded goals that were not their own
DevOps
A set of software-development practices that combines a software development mentality with other functions in the organization (e.g. operations)
True or False: DevOps is about the tools used in the codebase
False. DevOps is not about tools, but about how teams work together. It focuses on people first, then process, and finally tools (only after people and process have been addressed)
What are the 4 pillars of DevOps?
Recall CAMS:
- Culture
- Automation
- Metrics
- Sharing
Culture (DevOps)
The norms by which your team operates by. Includes communication patterns and team structures.
True or False: Most problems are people problems, not technology problems
True
Automation (DevOps)
Freeing human capital from mundane tasks that can be done by a computer
Metrics (DevOps)
The way you tell whether or not something is working. Simple absence of errors is not sufficient
Goodhart’s Law
When a measure becomes a target, it ceases to be a good measure
Given an example of Goodhart’s Law in software engineering
Using lines of code as a metric for software quality. Result: Codebase become bloated with unnecessary lines of code
What are the qualities of a good metric?
- Simple and computable
- Intuitively persuasive
- Objective (not subjective)
- Consistent in the use of units and dimensions
- Programming language-independent
- Improves software quality
Give an example of a good metric
Number of defects per week:
- It is simple to calculate
- Intuitively persuasive (defects are clearly negative)
- Not based on someone’s opinion
- Consistent across units and programming languages
- Effective mechanism for improvement
Availability (Software Quality Attribute)
The extent to which the system’s services are available when and where they are needed