SE423 · Annotated SlidesChapter 7 — Quality
Chapter 7 · Annotated slides

Quality

Quality, QA vs. QC, what makes projects succeed or fail, and software metrics. No past paper asked about this deck directly, but QA vs. QC, success factors and the metric categories make easy MCQ and true/false questions.

Slide text Instructor’s marks (from the original PDF) Study notes Highlight: key words Tips, tricks & traps Seen again elsewhere How it can come up

Quality

SE423: Software Project Management
1
Exam weight Low
  1. Quality → QA → QC → project success → metrics.

Outline

  • Software Quality
  • Quality Assurance
  • Quality Control
  • Project Success
  • Measurement and Metrics
2
Exam weight Low
  1. QA vs QC is the most testable distinction in this deck.

Software Quality

3

Software Quality

  • A definition of quality should emphasize three important points:
  1. Software requirements are the foundation from which quality is measured. Lack of conformance to requirement is lack of quality.①
  2. Specified standards define a set of development criteria that guide the manner in which software is engineered. If the criteria are not followed, lack of quality will almost surely result.
  3. There is a set of implicit requirements that often goes unmentioned (e.g. good maintainability). If software conforms to its explicit requirements but fails to meet implicit requirements, software quality is suspect.②
4
Exam weight Medium
  1. Quality = conformance to requirements, following standards, AND meeting implicit requirements (e.g., maintainability).
  2. Meeting only explicit requirements isn’t enough.
🎯 How this can come up · 1 question
True / False

Software that meets all explicit requirements but is hard to maintain is still of suspect quality.

Software Testing

  • The purpose of software testing is to assess and evaluate the quality of work performed at each step of the software development process.
  • Although it sometimes seems that way, the purpose of testing is NOT to use up all the remaining budget or schedule resources at the end of a development effort.
  • The goal of testing is to ensure that the software performs as intended, and to improve software quality, reliability and maintainability.① Software testing is a full-life-cycle assessment of quality
5
Exam weight Low
  1. Testing assesses quality at every step, not just at the end with leftover budget.

Quality and Testing

  • A good development process, tools, methods, and people go far in providing quality products
  • Testing is one aspect of assuring software quality
    • It is a measure of quality, it does not deliver quality①
  • “Quality cannot be tested into a product”
  • Software Quality Assurance includes
    • Software engineering process improvement
      • Prevent the insertion of defects
    • Fault tolerant software design
      • Tolerate the existence of defects
    • All aspects of software verification and validation
      • Including testing②
6
Exam weight Medium
  1. Testing MEASURES quality; it doesn’t create it.
  2. SQA = process improvement (prevent), fault tolerance (tolerate), V&V (detect).
Exam trap“Testing improves quality by itself” ✗. Quality is built in by process, design and people.
🎯 How this can come up · 1 question
MCQ

“Quality cannot be tested into a product” means:

Quality Assurance

7

Goal of Quality Assurance

  • Quality assurance (QA) activities strive to ensure:
    • Few, if any, defects remain in the software system when it is delivered
    • Remaining defects will cause minimal disruptions or damages①
8
Exam weight Low
  1. QA goal: few defects remain, and those that remain cause minimal damage.

Planning Quality

  • The following need to be considered: Scope, Stakeholders, Risks, Internal and External Environmental Factors, Process
  • Project-specific standards and procedures are created
    • Based on quality standards for each deliverable
    • Includes how PM activities themselves should be done
    • Plans/Project must comply with external standards (CISG, ISO 9000, OSHA, etc)
    • Plans/Project must comply with organizational standards
    • Plans/Project must meet the customer’s quality standards
    • Tracking / Proof may be needed (metrics, measurements, etc.)①
9
Exam weight Low
  1. Quality planning sets project standards from deliverable, external (ISO 9000), organizational and customer standards.

Quality Control

10

Perform quality control

Perform quality control is concerned with monitoring specific project results for compliance with quality standards①

  • Performed throughout project
  • May also include taking control actions to correct causes of quality problems

Perform quality assurance is the process that provides the framework of activities and standards for performing quality control②

11
Exam weight High
  1. QC = check the PRODUCT/results against standards (inspection, testing).
  2. QA = the PROCESS framework and standards that make QC possible.
Memory trickQA = Assure the process. QC = Check the product.
🎯 How this can come up · 2 questions
MCQ

Monitoring specific project results for compliance with quality standards is:

MCQ

Which provides the framework of activities and standards for performing quality control?

Software Quality Assurance Group

  • The group should prepare an SQA plan for a project.
  • The plan identifies
    • evaluations to be performed
    • audits and reviews to be performed
    • standards that are applicable to the project
    • procedures for error reporting and tracking
    • procedures for change management
    • documents to be produced by the SQA group
    • amount of feedback provided to the software project team①
12
Exam weight Low
  1. The SQA group writes the SQA plan: evaluations, audits, standards, error tracking, change management, documents.

Software Quality Assurance Group

  • Participates in the development of the project’s software process description
  • Reviews software engineering activities to verify compliance with the defined software process.
  • Audits designated software work products to verify compliance with those defined as part of the software process.
  • Ensures that deviations in software work and work products are documented and handled according to a documented procedure.
  • Records any noncompliance and reports to senior management.①
13
Exam weight Low
  1. SQA audits for compliance with the defined process and escalates noncompliance to senior management.

Project Success

14

Think Small

  • Keep requirements tight & focused
  • One milestone at a time
  • Smaller, incremental chunks
  • As simple as possible but no simpler①
15
Exam weight Low
  1. Think small: tight requirements, one milestone at a time, increments.

Process Spectrum

Process spectrum from chaos to bureaucracy; balance is crucial
16
Exam weight Low
  1. Too little process = chaos; too much = bureaucracy. Balance (tailoring again).

Miscellaneous

Be Disciplined and Professional

  • Learn to say “No”
    • Be polite but firm
  • The Value of Versions
    • “We will put that in phase 2”
  • An Ounce of Prevention

Paralysis

  • Analysis Paralysis
    • Over-process
    • Nothing gets finished
    • 65% of software professionals have experienced this
  • Paralysis Paranoia
    • Fear of over-process = process avoidance①
17
Exam weight Low
  1. Say no politely (“phase 2”).
  2. Analysis paralysis = over-process; paralysis paranoia = avoiding process out of fear.

Miscellaneous

  • MBWA – Management by Walk About
    • Shows you’re actually involved day-to-day
    • Recognizes individuals may say more 1-on-1
    • Allows spontaneity
    • Finds personnel problems sooner
  • Delegate
    • Don’t be a “Control Freak”
    • You need to be the “hub” but not everything
  • Project Home Page
    • Give your project an intranet page
    • Central repository for project status, documents and other resources①
18
Exam weight Low
  1. MBWA = management by walking around: be present, hear people 1-on-1. Delegate; keep a project home page.

Success Metrics

  1. On schedule
    • Requires good: plan; estimation; control
  2. Within budget
    • Again: planning, estimation & control
  3. According to requirements
    • Importance of good requirements
    • Perception & negotiation critical
  4. High quality. May or may not be same as item 3

Only real measure:

Is the customer happy? Customer satisfaction!!①

19
Exam weight Medium
  1. Success: on schedule, within budget, meets requirements, high quality, but the real measure is customer satisfaction.
🎯 How this can come up · 1 question
MCQ

According to the slide, the only real measure of project success is:

Why Do Projects Succeed?

  • How to identify a project’s success potential
    • What metrics could you look at?
      • Project size
      • Project duration
      • Project team size①
20
Exam weight Low
  1. Success potential: size, duration, team size. Smaller tends to succeed more.

Why Do Projects Succeed?

  • Executive support
  • User involvement
  • Experienced project manager
  • Clear business objectives
  • Minimized scope
  • Standard software infrastructure
  • Firm basic requirements
  • Formal methodology
  • Reliable estimates①
21
Exam weight Medium
  1. Top success factor: EXECUTIVE SUPPORT, then user involvement, experienced PM, clear objectives, minimized scope…
🎯 How this can come up · 1 question
MCQ

Which success factor is listed first and emphasized?

Why Executive Support?

  • Top management can help to:
    • Secure adequate resources
    • Get approval for unique project needs in a timely manner
    • Receive cooperation from people throughout the organization
    • Provide leadership guidance①
22
Exam weight Low
  1. Executives secure resources, approvals, cooperation and guidance.

State of the Practice in Software Management

  • Factors that may influence the success or failure of the software projects could be:
  1. Social Factors
  2. Technology①
23
Exam weight Low
  1. Two kinds of factors: social and technology.

State of the Practice in Software Management

Technologies on Unsuccessful Projects

Technologies on Successful Projects

  • No historical software measurement data
    • Accurate software measurement
  • Failure to use automated estimating tool
    • Early use of estimating tools
  • Failure to use automated planning tool
    • Continuous use of planning tool
  • Failure to monitor progress or milestones
    • Formal progress reporting
  • Failure to use effective architecture
    • Formal architecture planning
  • Failure to use effective development methods
    • Formal development methods
  • Failure to use design reviews
    • Formal design reviews
    • Formal code inspections
  • Failure to use code inspections
  • Failure to include formal risk management
    • Formal risk management
  • Informal, inadequate testing
    • Formal testing methods
  • Manual design and specification
    • Automated design and specification
  • More than 30% creep in user requirements
    • Automated configuration control
    • Less than 10% creep in requirements①
24
Exam weight Low
  1. Failure: no measurement, no tools, no reviews or inspections, informal testing, >30% requirement creep. Success: the formal opposites, <10% creep.

State of the Practice in Software Management

Social Factors on Unsuccessful Projects

Social factors on Successful Projects

  • Excessive schedule pressure
    • Realistic schedule pressure
  • Executive rejection of estimates
    • Executive understanding of estimates
  • Severe friction with clients
    • Cooperation with clients
  • Divisive corporate politics
    • Congruent management goals
  • Poor team communications
    • Excellent team communications
  • Naïve senior executives
    • Experienced senior executives
  • Project management malpractice
    • Capable Project management
  • Unqualified technical staff
    • Capable technical staff
  • Generalists used for critical tasks: quality
    • Specialists used for critical tasks: quality

assurance, testing, planning, estimating①

assurance, testing, planning, estimating

25
Exam weight Low
  1. Social failure factors: schedule pressure, executives rejecting estimates, client friction, politics, poor communication.

How to ensure a project fails

  • Do the same things you did on the last project. Over and over and over.
  • Don't listen to your experts. After all the last project worked out okay (mostly)
  • Don't measure progress with metrics. The only thing that counts is "did you meet the delivery date?".
  • Set delivery dates with the customer but not with the developers. Developers can meet any schedule we ask for.
  • Don't use new tools. Keep using the ones we used ten, twenty years ago.
  • Spend your time making sure people do it your way.
  • Office politics and vendettas are more important than the project.①
26
Exam weight Low
  1. Sarcastic list: the opposite of each line is good practice.

Measurement and Metrics

27

Measurement and Metrics

  • “Not everything that can be counted counts, and not everything that counts can be counted.” - Albert Einstein①
28
Exam weight Low
  1. Measure what matters, not just what is easy to count.

Why Measurement and Metrics?

  • Software measurement is concerned with deriving a quantitative (numeric) value for an attribute of a software product or process (largely qualitative)
  • This allows for objective comparisons between techniques and processes
  • Although some companies have introduced measurement programs, the systematic use of measurement is still uncommon
  • There are few standards in this area①
29
Exam weight Low
  1. Measurement turns qualitative attributes into numbers for objective comparison.

Definitions

  • Measure
    • provides a quantitative indication of the size of some product or process attribute
  • Measurement
    • the act of obtaining a measure
  • Metric
    • a quantitative measure of the degree to which a system, component, or process possesses a given attribute①
30
Exam weight Medium
  1. Measure = a quantity. Measurement = the act of obtaining it. Metric = a measure of the degree to which something has an attribute.
🎯 How this can come up · 1 question
MCQ

“The act of obtaining a measure” is:

Software Metric

  • Any type of measurement which relates to a software system, process or related documentation
    • Lines of code in a program, number of person-days required to develop a component
  • Allow the software and the software process to be quantified
  • Measures of the software process or product
  • May be used to predict product attributes or to control the software process①
31
Exam weight Low
  1. Software metric: any measurement about the system, process or docs (LOC, person-days).

Categories

  • Product
    • Assess the quality of the design and construction of the software product being built.
  • Process & Project
    • Quantitative measures that enable software engineers to gain insight into the efficiency of the software process and the projects conducted using the process framework①
32
Exam weight Low
  1. Product metrics → quality of the product. Process & project metrics → efficiency of the process.

Process Metrics

  • Private process metrics (e.g., defect rates by individual or module) are only known to by the individual or team concerned.
  • Public process metrics enable organizations to make strategic changes to improve the software process.
  • Metrics should not be used to evaluate the performance of individuals.①
  • Statistical software process improvement helps and organization to discover where they are strong and where they are weak
33
Exam weight Medium
  1. Never use metrics to judge individuals; people will game them.
🎯 How this can come up · 1 question
True / False

Process metrics should be used to evaluate individual developers’ performance.

Product Metrics

  • A quality metric should be a predictor of product quality
  • Classes of product metric
    • Dynamic metrics which are collected by measurements made of a program in execution
    • Static metrics which are collected by measurements made of the system representations
    • Dynamic metrics help assess efficiency and reliability; Static metrics help assess complexity, understandability and maintainability①
34
Exam weight Medium
  1. Dynamic = measured while running → efficiency, reliability. Static = from code/design → complexity, maintainability.
🎯 How this can come up · 1 question
MCQ

Cyclomatic complexity measured from source code is a:

Project Metrics

  • A software team can use software project metrics to adapt project workflow and technical activities
  • Project metrics are used to avoid development schedule delays, to mitigate potential risks, and to assess product quality on an on-going basis
  • Every project should measure its inputs (resources), outputs (deliverables), and results (effectiveness of deliverables)①
35
Exam weight Low
  1. Project metrics: inputs, outputs, results. Used to avoid delays and manage risk.

Metrics Assumptions

  • A software property can be measured
  • The relationship exists between what we can measure and what we want to know
  • This relationship has been formalized and validated
  • It may be difficult to relate what can be measured to desirable quality attributes①
36
Exam weight Low
  1. Assumes what we measure relates to what we want to know, which isn’t always easy.

Integrating Metrics with Process

  • Many software developers do not collect measures.
  • Without measurement it is impossible to determine whether a process is improving or not
  • Baseline metrics data should be collected from a large, representative sampling of past software projects
  • Getting this historic project data is very difficult, if the previous developers did not collect data in an on-going manner①
37
Exam weight Low
  1. No baseline data = no way to know if you’re improving.

Software Measurement

  • Direct measures of a software engineering process include cost and effort
  • Direct measures of the product include lines of code (LOC), execution speed, memory size, defects reported over some time period
  • Indirect product measures examine the quality of the software product itself (e.g., functionality, complexity, efficiency, reliability, maintainability)①
Measurement of process and product yields process, project and product metrics
38
Exam weight Medium
  1. Direct: cost, effort, LOC, speed, defects. Indirect: functionality, complexity, reliability, maintainability.
🎯 How this can come up · 1 question
MCQ

Which is an INDIRECT product measure?

The Measurement Process

  • A software measurement process may be part of a quality control process
  • Data collected during this process should be maintained as an organizational resource
  • Once a measurement database has been established, comparisons across projects become possible①
39
Exam weight Low
  1. Keep measurement data as an organizational asset for cross-project comparisons.

Product Measurement Process

Choose measurements → select components → measure → identify anomalies → analyse anomalous components
40
Exam weight Low
  1. Choose → select → measure → find anomalies → analyse them.

Data Collection

  • A metrics program should be based on a set of product and process data
  • Data should be collected immediately (not in retrospect) and, if possible, automatically
  • Three types of automatic data collection
    • Static product analysis
    • Dynamic product analysis
    • Process data collation①
41
Exam weight Low
  1. Collect data immediately and automatically (static, dynamic, process).

Data Accuracy

  • Don’t collect unnecessary data
    • The questions to be answered should be decided in advance and the required data identified
  • Tell people why the data is being collected
    • It should not be part of personnel evaluation
  • Don’t rely on memory
    • Collect data when it is generated not after a project has finished①
42
Exam weight Low
  1. Collect only needed data, explain why, don’t rely on memory.

What Are Metrics For?

Software process and product feed control and predictor measurements, which feed management decisions
43
Exam weight Low
  1. Metrics exist to support management decisions: control (process) and prediction (product).

Analysis

  • It is not always obvious what data means
    • Analyzing collected data is very difficult
  • Professional statisticians should be consulted if available
  • Data analysis must take local circumstances into account①
44
Exam weight Low
  1. Interpreting data is hard; use statisticians and local context.

Metric Types with Examples

  • Size-oriented metrics
    • Defects, human effort, Line of Code LOC
  • Function-oriented metrics
    • Function points
  • Web Engineering
    • Number of static Web pages (Nsp), Number of dynamic Web pages (Ndp), Customization index: C = Nsp / (Ndp + Nsp)
  • Product metrics
    • Cyclomatic complexity, Fan in/Fan-out①
45
Exam weight Medium
  1. Size (LOC, defects), function (FP), web (C = Nsp / (Ndp + Nsp)), product (cyclomatic complexity, fan-in/out).
🎯 How this can come up · 1 question
MCQ

A site has 30 static and 10 dynamic pages. Customization index C = Nsp/(Ndp+Nsp)?