Quality Assurance at CN Group

Quality assurance at CN Group

Getting familiar with the term quality assurance

Quality assurance

Quality is defined as "degree of fulfilling customer requirements using set of inherent factors" :-) These factors could be e.g. number of defects or minimal delay. So definition of quality always depends on a customer.

Quality assurance is a set of activities that help to assure the quality. Simple :-)

QA is big business and there are lots of standards that we either must or we want to keep (e.g. because of marketing visibility). 

Being adherent to some standard or a system means that you have higher probability to keep the quality (e.g. you are able to detect a defect earlier). Real quality is always dependent on people (you).

Basic element for all QA methodologies is a process. Process has tons of definitions, we can say that it defines WHAT has to be done by WHOM and WITH what result.

Does quality assurance guarantee that project will run smoothly?

  • Yes, absolutely. Good QA = good project.
  • Absolutely not. Good QA can increase the probability to observe defects and discrepancies.
  • Yes, but one has to pay attention to keep the adherence to standards.

Understanding QMS (Quality Management System)

Quality Management System

Quality management system (QMS) is a tool. It is a library of items that should help to manage and control projects smoothly. It consists of processes, guidelines, templates, instructions or tools. Our QMS is certified against ISO 9001, ISO 13 485 (medical domain) and ISO 27001 (information security), but it contains also lots of items from methodologies Prince 2 and CMMI. 

There are basically two systems for development, waterfall and agile. In waterfall model, all stages follow each other and there are only limited possibilities to get back in the flow. Time-to-market (time to reach the final customer with a product) could be extremely slow.

For agile development model, see section Agile development.

QMS consists of these two models + one additional for projects in medical domain + one section for support processes see image below.

Each part consists of processes and templates. Processes show what to do, when to do and what should be the main outputs. Templates are recommended forms of outputs from processes. Each process has defined responsibility and working instructions.

E.g. process Test execution from waterfall part has one mandatory output (STR, System Test Report) and it contains (after clicking on the process rectangle) working instructions. Working instructions are guideline what to follow, but they could vary in a project. TE is an abbreviation for test engineer and it defines the responsibility.

Medical projects are based on the standard ISO 13485 and it is the extension of waterfall projects methodology. You must pass a special training to work in such a project.

Agile projects are based on methodology SCRUM. For more explanation, see the section Agile development.

Last part, support processes contain mainly administration, HR and QA processes focused on non-project activities.

What stands for QMS?

  • Quality Management System.
  • Quality Management Substring.
  • Query Monetary String.

What is the methodology that is a base for agile oriented part of QMS?

  • ISO 13485
  • ISO 9001
  • SCRUM

Our QMS is certified against:

  • ISO 9001
  • ISO 13485
  • CMMI
  • SCRUM
  • ISO 27001

Understanding configuration management

Configuration management

Configuration management is a supporting discipline that should help assuring integrity of project items. It consists of:
  • naming
  • versions
  • locations
  • configuration management (CM) system (aka versioning systems)
  • baselines

Naming

You should name project documents using specific formula:

<ProjectAbbr>_<TYPE>_[LANG]_<Version>_[REVIEW_MARK].ext

Examples:

  • CLX_EBanking_USM_4_1_0.docx (user manual for project CLX_EBanking, version 4.1.0).
  • Vibe_ICR_SR_working.xls (working version of the status report in project Vibe_ICR).

Other rules:

  • Never use Czech or other diacritical characters.
  • Never use spaces, commas and other special characters.

  • Separator is the underscore ("_") character.

  • File and directory names should not be unnecessarily long.

  • Use subdirectory _Archive for obsolete and archive versions.

Locations

All sensitive and formal project information should be saved only in defined locations, see below the explanation:

TYPE2 has following meaning:

Versions and versioning systems

We do not define exact form of versioning, just keep in mind that you should be able to distinguish between different versions of items. Possible forms are:

  • by a timestamp in ISO format (e.g. 20120207)
  • by a version number (e.g. v1_0_0 or simply 4_1_2)
  • key word “working” for actual version

Versioning of source code in different systems (e.g. Subversion, TFS) should follow technology standards.

Baselines

Baseline is an approved snapshot of a system (most frequently release) in a defined time. The baselined system consists of configuration items (e.g. binaries, documents, etc.). 

Rules:

  • never change baseline once it is sent or approved by a customer
  • keep the rules for versioning

What is the general formula for naming of project documentation?

  • DOC_<ProjectAbbr>_<TYPE>_[LANG]_<Version>_[REVIEW_MARK].ext
  • <ProjectAbbr>_<TYPE>_[LANG]_<Version>_[REVIEW_MARK].ext
  • <ProjectAbbr>_<TYPE>_<Version>.ext

Being familiar with agile development

Agile development

Agile development model (web, spiral, iterative) is based on iterations. Within these iterations, all project activities (requirements development, designing, coding, testing, delivery) have to be performed to be able to demonstrate working increment of the product to a final stakeholder (e.g. customer).  Time-to-market is very short.

As written above, agile projects at CN Group are based on methodology SCRUM, but with lots of elements from other methodologies:

  • XP (eXtreme Programming)
  • Kanban
  • agile modeling

  • lean development

  • agile data

Project effort is based on iterations. Iteration is a time unit that is always fixed. Typical length is from 2 to 5 weeks. 

During initial pre-development phase (sometimes called as inception or iteration 0), only high-level requirements are defined in a form of Product Backlog as a set of user stories. User story is the lightweight form of a requirement. Each iteration starts with detailed analysis and development of WBS (work-breakdown-structure) for one or more items from Product Backlog. The results of this analysis is called BACKLOG (or STACK) and it consists of specific tasks that each member of the team signs on. During the iteration, all tasks from stack should be finished.

SCRUM defines three types of meetings:

  1. Iteration planning (or spring meeting or grooming)
  2. Daily stand-up meeting (or coordination meeting or scrum meeting)
  3. Retrospective

Iteration planning is usually performed at the beginning of iteration and it is focused e.g. on:

  • user stories discussion and development
  • breaking down the items from backlog
  • definition of acceptance criteria

Daily stand-up meeting is usually performed every day and its aim is to meet and communicate progress, NOT to solve problems. Each team member should answer three basic questions:

  1. What have I done since last meeting?
  2. What am I going to do till next meeting?
  3. What problems or risks do I see?

Retrospective is usually performed at the end of iteration and its aim is to improve the team. Each team member should answer three basic questions:

  1. What should be stopped?
  2. What should be started?
  3. What should we keep doing?

Except regular team members, there are specific roles in SCRUM teams:

  1. SCRUM master
    1. responsible for adherence to processes

    2. protects team

    3. provides visibility outside the project

  2. Product owner PO
    1. represents voice of a stakeholder (customer)
    2. interface to customer
    3. defines priorities
  3. Architecture owner AO (in some projects)
    1. responsible for the holding process of architecture creation and update
    2. final decision maker in a case of dispute issues
  4. Tester QA
    1. approves Done status
    2. performs system testings
    3. responsible for the holding process of automated testing

Note that AO and QA are responsible for activities, but they do not need to be the only persons that perform them.

Time-to-market in agile driven project is:

  • Short
  • Long

SCRUM specific roles are:

  • SCRUM master
  • Product Owner
  • Analyst
  • Data protection officer

What questions should be answered during daily stand-up meeting?

  • What have I done since last meeting? What am I going to do till next meeting? What problems or risks do I see?
  • What have I done since last meeting? What am I going to do till next meeting? What are my plans for evening?
  • What should be stopped? What should be started? What should we keep doing?

What questions should be answered during retrospective meeting?

  • What have I done since last meeting? What am I going to do till next meeting? What problems or risks do I see?
  • What should be stopped? What should be started? What we should keep doing?
  • Who team members should stop doing? What is my favourite item? What we should keep doing?

An iteration should be always the same length.

  • True
  • False