Risk Management
Risk Management Activities
Quality Assurance
Testing
A risk is any uncertain event or condition that might affect your project
In other words: risk is anything that might change the outcome of a project activity
Risks are uncertain, they may or may not happen
There are four basic ways to handle risk:
→ Avoid
→ Mitigate
→ Transfer
→ Accept
→ Identification
→ Evaluation
→ Mitigation
→ Contigency Plans
Identify all risks that could impact the project
Previous experience counts a lot
Checklists and categorization also help
Types of risk: financial, business, technical, legal, schedule, etc.
Understanding the potential impact of the risk
Assessing how likely it is to happen
large impact × great likelihood = trouble
Risk Avoidance: alternative strategy
Risk Sharing: partnering up
Risk Reduction: investing in safegards
Risk Transfer: insurance and outsourcing
"Alternative method for accomplishing a project goal"
Switching technologies, duplicated infrastructure, extra personnel, etc.
Contigency funds
It is a fallacy that Scrum does not handle risk
Risk Management is embedded in Scrum's very core
Interesting articles: RM in Scrum and RM in Agile Scrum
Quality Assurance: Set of processes and practices that aim to ensure high product quality
Quality Control: Set of processes that aim to ensure that the desired quality standards have been met
Testing: Specific set of processes done as part of Quality Control
Defect prevention: Identify and address potential issues early
Continuous improvement: Consistently monitor and improve the quality of the product
Stakeholder involvement: Collaboration and communication between the involved parties
Risk-based approach: Identify and address the most significant risks (prioritization)
1. Define Standards
2. Plan QA Activities
3. Conduct Reviews
4. Perform Testing
5. Monitor and Measure
6. Improve Continuously
QA is an activity inside the dev team
It is an integral part of a Sprint
The whole team is accountable
Even if a specific person handles it
A crucial aspect of QA is testing
There are multiple types of tests:
→ Smoke Testing
→ Unit Testing
→ Integration Testing
→ Functional Testing
→ End to End Testing
→ Performance Testing
Check if basic functionality works
Quick, easy, and cheap
Useful to prevent running expensive tests early on
Check if a single component works properly
Considered a white-box testing
Very narrow scope
Verify that components work well together
Falls under both both white-box and black-box testing
Normally done after unit testing each components
Tests particular requirements of the system
Similar to integration testing, but with an specific purpose
Considered a black-box testing
Similar to functional testing, but including end-user inputs and outputs
Tests the system under a heavy load
Assesses reliability, stability, and availability
Normally costly and complex to run
Project Management (Chapter 10 - Blackboard - until Project Risk by Phases)