BDB650

Classical PM

Risk and Quality Assurance

Summary

Risk Management

Risk Management Activities

Quality Assurance

Testing

Risk Management

Risk Management

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

Risk Management

There are four basic ways to handle risk:

Avoid

Mitigate

Transfer

Accept

Risk Management

Risk Management Activities

Risk Management Activities

Identification

Evaluation

Mitigation

Contigency Plans

Risk Identification

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.

Risk Evaluation

Understanding the potential impact of the risk

Assessing how likely it is to happen

large impact × great likelihood = trouble

Risk Evaluation

Risk Mitigation

Risk Avoidance: alternative strategy

Risk Sharing: partnering up

Risk Reduction: investing in safegards

Risk Transfer: insurance and outsourcing

Contigency Plan

"Alternative method for accomplishing a project goal"

Switching technologies, duplicated infrastructure, extra personnel, etc.

Contigency funds

Risk Management & Scrum

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

What is QA

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

What is QA

QA Principles

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)

Implementing QA

1. Define Standards

2. Plan QA Activities

3. Conduct Reviews

4. Perform Testing

5. Monitor and Measure

6. Improve Continuously

QA in Scrum

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

Testing

Testing

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

Smoke Testing

Check if basic functionality works

Quick, easy, and cheap

Useful to prevent running expensive tests early on

Unit Testing

Check if a single component works properly

Considered a white-box testing

Very narrow scope

jest

Integration Testing

Verify that components work well together

Falls under both both white-box and black-box testing

Normally done after unit testing each components

Functional Testing

Tests particular requirements of the system

Similar to integration testing, but with an specific purpose

Considered a black-box testing

End to End Testing - E2E

Similar to functional testing, but including end-user inputs and outputs

puppetter

Performance Testing

Tests the system under a heavy load

Assesses reliability, stability, and availability

Normally costly and complex to run

Reading Material

Project Management (Chapter 10 - Blackboard - until Project Risk by Phases)

Quality Assurance in Software Development

Testing