Professional Scrum Developer Glossary Flashcards
What is A/B Testing?
A/B Testing extends the idea of hypothesis driven development by evaluating two or more different implementations to find out which one works best.
It usually involves routing a part of users to each implementation to measure user behavior.
Define Acceptance Test-Driven Development (ATDD).
ATDD is a test-first software development practice where acceptance criteria for new functionality are created as automated tests.
Failing tests are constructed to pass as development proceeds.
What does Application Lifecycle Management (ALM) refer to?
ALM is a holistic view on the management of software applications and systems, accounting for all stages of a software product’s existence.
What is Application Telemetry?
Application Telemetry provides insights into product usage, showing usage statistics, performance parameters, user workflows, and other relevant information.
Explain Behavior-Driven Development (BDD).
BDD is an agile software development practice that adds the description of desired functional behavior to Test-Driven Development (TDD).
What is a Blameless Postmortem?
A Blameless Postmortem aims to understand systemic factors leading to an outage and identify learnings to prevent future failures.
What is Blue-Green Deployment?
Blue-Green Deployment is a practice that reduces downtime during upgrades by using two identical environments: one handling production and the other for updates.
Define Branching in version control.
Branching is creating a logical or physical copy of code within a version control system to change it in isolation.
What characterizes Clean Code?
Clean Code is well-expressed, correctly formatted, and organized for later coders to understand, emphasizing clarity over cleverness.
What does Code Coverage measure?
Code Coverage measures the amount of product code that is exercised by tests.
Differentiate between Cohesion and Coupling.
Cohesion refers to how related the functions within a single module are, while Coupling refers to interdependencies between modules.
What is Collective Code Ownership?
Collective Code Ownership is a principle where all contributors to a codebase are jointly responsible for the entirety of the code.
Define Continuous Delivery.
Continuous Delivery is a software delivery practice that requires human action to promote changes into a subsequent environment.
What is Continuous Deployment?
Continuous Deployment is a practice where the release process is fully automated, promoting changes to production without human intervention.
Explain Continuous Integration (CI).
CI is an agile software development practice where newly checked-in code is built, integrated, and tested frequently, often multiple times a day.
What is Continuous Testing?
Continuous Testing integrates testing as an ongoing part of development to identify and fix issues earlier, lowering risk significantly.
Define Cycle Time.
Cycle Time is the duration between starting work on an item and its completion, usually delivered to end-users.
What is Cyclomatic Complexity?
Cyclomatic Complexity is a measure of code complexity based on the number of independent logical branches in a codebase.
What does Cross-functional mean in a team context?
Cross-functional refers to a team having all the skills required to produce a releasable Increment within a Sprint.
What is the Definition of Done?
The Definition of Done is a shared understanding of expectations that software must meet to be releasable into production.
Who is considered a Developer in Scrum?
A Developer is any member of a Scrum Team committed to creating any aspect of a usable Increment each Sprint.
What is DevOps?
DevOps is an organizational concept that bridges the gap between development and operations, focusing on skills, mindset, and practices.
Define Dev & Ops collaboration.
Dev & Ops collaboration is the key principle of DevOps, emphasizing joint responsibility for development and operations.
What does DRY stand for in software development?
DRY stands for ‘Don’t Repeat Yourself,’ a principle to avoid repetition of information in a system.