Agile is the fastest growing process framework used by software development organizations.  There are inherent challenges in utilizing offshore resources for testing especially when adapting offshore teams to Agile practices.  It is important to ensure the best practices utilized by the on-shore team are being replicated elsewhere.  

Aligning software quality around the globe is one of the keys to delivering Enterprise class quality software.  Although we’re discussing implementing an offshore quality assessment framework, it is equally applicable to teams inside the “four walls” of an organization.  The more distributed an R&D team is, the more important consistent practices become.  

The idea behind a Quality Audit is to perform a systematic examination of the practices a team uses to build and validate software.  This is important as issues of quality are represented across the software development continuum.  The objective of the audit is not to uncover software defects but to understand how well a team understands and executes defined quality practices.  

The Quality Audit can be used to assess if a process is working and if things are being done the way they are supposed to be done.  The audit is also an excellent way of measuring the effectiveness of implemented procedures. Management can use audit results as a tool to identify weaknesses, risks and areas of improvement.

The audit is as much about people as it is about the procedures in place.  If team members understand their roles and how that relates to quality, the more likely the team will understand and adhere to defined practices.  The ultimate objective, of course, is to both deliver high quality software and foster collaboration within and across teams.   To this end, the importance of a common lexicon cannot be over stated.

Quality audits are typically performed at regular intervals   The initial audit develops a quality baseline that helps determine areas that need remediation.  Subsequent audits are monitoring oriented to help teams identify and address gaps in the people, process and tools being used.  Remediation involves articulating effective actions that address deficiencies in the day to day carrying out of quality practices.

A Quality Audit can be aided through the use of software tools but, as stated above, it’s as much about people mentoring and teaching as anything else.  Any team, offshore or otherwise, will best respond to an approach that focuses on helping individuals meet expectations and improvement.  A key goal is to help teams be as transparent as possible so they can work together to continuously improve.

The audit consists of 5 phases.

1.Pre-assessment planning- This phase includes setting expectations, the timeline and getting executive sponsorship for the project audit.  The deliverable for this phase is agreement and buy-in of the audit process and a follow-up commitment for improvement.  Typically this is capped by a meeting with the audit sponsor and key stakeholders on the audit process and objectives.
2.Data Gathering- This phase involves developing ‘interview’ questions, topic guidelines and surveys as well as gathering all relevant documentation (bug reports, test cases, tools in use, team structures, skill levels, …) prior to the ‘interview’ process. Determining what metrics make the most sense and will provide the most visibility is also a part of this phase.  Teams are different as are the problems they’re solving and the technology involved so a one size fits all approach is not recommended.
3.Assessment- The assessment phase involves building relationships, conducting the interviews and developing preliminary findings.  It is important to ensure appropriate  confidentiality so that team members feel comfortable opening up and speaking frankly.    A meeting explaining the process, goals and objectives should be held with the entire team with follow-ups as necessary.
4.Post Audit- After reviewing documents and interview notes, the analyzed information is synthesized into a list of findings and prioritized remediation steps.
5.Presentation of findings with sponsor and team- Findings are presented and agreement is reached on highest improvement areas.
Note: There are several approaches to running the audit.  The term interview is used generically and is only one possible approach.  Facilitated retrospectives are another and the more recommended method.  Conducted in an open, non-threatening environment, team members can discuss what works, what doesn’t work and the type of changes that should be considered moving forward.  A blended approach of interviews and retrospectives can also be helpful.
The next installment will dig into the particulars of each of these phases in turn.

Agile is the fastest growing process framework used by software development organizations.  There are inherent challenges in utilizing offshore resources for testing especially when adapting offshore teams to Agile practices.  It is important to ensure the best practices utilized by the on-shore team are being replicated elsewhere.  

Aligning software quality around the globe is one of the keys to delivering Enterprise class quality software.  Although we’re discussing implementing an offshore quality assessment framework, it is equally applicable to teams inside the “four walls” of an organization.  The more distributed an R&D team is, the more important consistent practices become.  

The idea behind a Quality Audit is to perform a systematic examination of the practices a team uses to build and validate software.  This is important as issues of quality are represented across the software development continuum.  The objective of the audit is not to uncover software defects but to understand how well a team understands and executes defined quality practices.  

The Quality Audit can be used to assess if a process is working and if things are being done the way they are supposed to be done.  The audit is also an excellent way of measuring the effectiveness of implemented procedures. Management can use audit results as a tool to identify weaknesses, risks and areas of improvement.

The audit is as much about people as it is about the procedures in place.  If team members understand their roles and how that relates to quality, the more likely the team will understand and adhere to defined practices.  The ultimate objective, of course, is to both deliver high quality software and foster collaboration within and across teams.   To this end, the importance of a common lexicon cannot be over stated.

Quality audits are typically performed at regular intervals   The initial audit develops a quality baseline that helps determine areas that need remediation.  Subsequent audits are monitoring oriented to help teams identify and address gaps in the people, process and tools being used.  Remediation involves articulating effective actions that address deficiencies in the day to day carrying out of quality practices.

A Quality Audit can be aided through the use of software tools but, as stated above, it’s as much about people mentoring and teaching as anything else.  Any team, offshore or otherwise, will best respond to an approach that focuses on helping individuals meet expectations and improvement.  A key goal is to help teams be as transparent as possible so they can work together to continuously improve.

The audit consists of 5 phases.

  1. Pre-assessment planning- This phase includes setting expectations, the timeline and getting executive sponsorship for the project audit.  The deliverable for this phase is agreement and buy-in of the audit process and a follow-up commitment for improvement.  Typically this is capped by a meeting with the audit sponsor and key stakeholders on the audit process and objectives.
  2. Data Gathering- This phase involves developing ‘interview’ questions, topic guidelines and surveys as well as gathering all relevant documentation (bug reports, test cases, tools in use, team structures, skill levels, …) prior to the ‘interview’ process. Determining what metrics make the most sense and will provide the most visibility is also a part of this phase.  Teams are different as are the problems they’re solving and the technology involved so a one size fits all approach is not recommended.  
  3. Assessment- The assessment phase involves building relationships, conducting the interviews and developing preliminary findings.  It is important to ensure appropriate  confidentiality so that team members feel comfortable opening up and speaking frankly.    A meeting explaining the process, goals and objectives should be held with the entire team with follow-ups as necessary.
  4. Post Audit- After reviewing documents and interview notes, the analyzed information is synthesized into a list of findings and prioritized remediation steps.
  5. Presentation of findings with sponsor and team- Findings are presented and agreement is reached on highest improvement areas. 

Note: There are several approaches to running the audit.  The term interview is used generically and is only one possible approach.  Facilitated retrospectives are another and the more recommended method.  Conducted in an open, non-threatening environment, team members can discuss what works, what doesn’t work and the type of changes that should be considered moving forward.  A blended approach of interviews and retrospectives can also be helpful.

The next installment will dig into the particulars of each of these phases in turn.