Google
 

Friday, March 28, 2008

Rework effort in SELC

Rework is an ongoing problem in software development. As per SEI (Software Engineering Institute) report it has been indicated that 60-80% of the cost of software development is rework effort. This effort is used to correct defects associated with base-lined work-products. Unfortunately, the reason is a gap between the state of the art and the state of the practice of software engineering.

In SELC (Software Engineering Life Cycle) all out put is treated as work-product. E.g. Project Plan Document, Requirement Specification Document, Source Code, Test Specification, Test Report, Release Note etc. And when a work-product is approved or validated by the relevant stakeholders for using next level users than it called base-lining.

Common causes of re-works in SELC:

  1. Requirement Analysis Gap (main root case of rework)
  2. Wrong Software design (e.g. performance issue not considered in the design)
  3. Poor Code development (e.g. features not developed as is software design)
  4. Inadequate Test Case development (e.g. insufficient test cases for each requirement)

Despite successes in reducing rework, it is generally accepted that rework cannot be eliminated entirely. However, rework effort can be reduced by taking process improvement. For example:

  • Introduce or improve the formal review process in requirement, design and coding phases. [If formal review is implemented then defect will be identified from the earlier stage of SELC, it will reduce rework significantly.]
  • Integrate test cases with requirements [if each test case is mapped with requirements then it will be easier to measure that sufficient test cases is developed/not to test that requirement]
  • Conduct Inspection [periodical inspection on work-products and processes implementation helps to identify defects as well as increase the consciousness of project team members to develop quality work-products and follow the processes]

Therefore, to reduce the rework effort it is required the use of disciplined engineering practices by skilled software engineers.

Thursday, March 27, 2008

CSQA Examination Overview

The four and a half hour examination consists of four written parts, including multiple-choice and essay questions. A typical CSQA examination is comprised of two parts for Quality Assurance Theory and two parts for Quality Assurance Practice:

Quality Assurance Theory
Part 1 Approximately 50 multiple-choice questions Complete within 45 minutes
Part 2 Approximately 10 essay questions Complete within 1 hour, 15 minutes

Quality assurance theory evaluates your understanding of quality principles, practices, vocabulary and concepts. In other words, do you have a solid foundation in quality basics? For example, can you differentiate between quality assurance and quality control?

Quality Assurance Practice
Part 3 Approximately 50 multiple-choice questions Complete within 45 minutes
Part 4 Approximately 10 essay questions Complete within 1 hour, 15 minutes

Quality assurance practice evaluates whether you can apply quality basics to real-world situations. For example, a question may be: “What methods of quality control would you use to reduce defects for a software system under development? During which phase of development would you use those methods?”


This certification requires candidates to demonstrate skills in the following Categories:

  1. Quality Principles and Concepts

  2. Quality Leadership

  3. Quality Baselines (Assessments and Models

  4. Quality Assurance

  5. Quality Planning

  6. Define, Build, Implement and Improve Work Processes

  7. Quality Control Practices

  8. Metrics and Measurement

  9. Internal Control and Security

  10. Outsourcing, COTS and Contracting Quality

For a detailed explanation of each category, please click here

Monday, March 24, 2008

Requirement Quality Measurement

Requirements engineering deal with elicitation, analysis, communication and validation of the requirements. As early as errors are identified it is easy to fix them compared to later identification of errors. It is obvious that the cost of fixing these errors in initial stages is lower than fixing them in later stages of software development. In order to eliminate errors there should be some measurement. Metrics provide a quantitative measurement of certain attributes.

We know the main quality parameters of requirements are: Understandability, Completeness, Testability and Volatility. Metrics of these parameters can give us a quantitative measurement of requirement's quality:

1. Understandability: % of requirements is readable or understandable by the reviewers or next level users. Metrics is (Number of understood requirements) / (Total number of requirements). E.g. if total number of requirement is 40 and 30 requirements are understandable by the stakeholders then understandability of those requirement is 75%.

2. Completeness: % of requirements is complete (no item left to the requirement specification). Metrics is (Number of complete requirements) / (Total number of requirements). E.g. if total number of requirement is 40 and 35 requirements are complete then completeness of those requirement is 87.5%.

3. Testability: % of requirement is testable. Metrics is (Number of testable requirements) / (Total number of requirements). E.g. if total number of requirement is 40 and 38 requirements are testable then testability of those requirement is 95%.

4. Volatility: % of requirement changes. Metrics is (Number of changed requirement) / (Total number of requirements). E.g. if total number of requirement is 42 and 5 requirements are changed then volatility of those requirement is 11.9%.
Note: Change requirement = Modified requirements + New requirements.

Other requirement metrics can be developed as per the company need. GQM (Goal, Question, Metrics) is a popular method for metrics development.

Thursday, March 20, 2008

Benefits of becoming a CSQA

(Source CSQA CBOK)

The CSQA program was developed to provide value to the profession, the individual, the employer, and co-workers. The following information is data collected from CSQAs in the IT industry – a real testimonial to the benefits and reasons to make the effort to become a CSQA.

Value Provided to the Profession
Software quality assurance is often viewed as a software project task, even though many individuals are full-time quality assurance professionals. The CSQA program was designed to recognize software quality assurance professionals by providing:
  • Common Body of Knowledge (CBOK)
    The Certification Board defines the skills upon which the software quality assurance certification is based. The current CBOK has 10 skill categories.
  • Examination Process to Evaluate Competency
    The successful candidate must pass a four-part examination that is based on the CBOK. You must receive a grade of 75%, or greater on each part. Only 31% of the pre-qualified applicants pass the examination the first time, making this a prestigious certification to obtain.
  • Code of Ethics
    The successful candidate must agree to abide by a professional Code of Ethics as specified by the Certification Board.

Value Provided to the Individual
The individual obtaining the CSQA certification receives the following values:

  • Recognition by Peers of Personal Desire to Improve
    Approximately, eighty percent (80%) of all CSQAs stated that a personal desire for self improvement and peer recognition was the main reason for obtaining the CSQA certification. Fifteen percent (15%) were required by their employer to sit for the examination, and 10% were preparing themselves for an improved quality-related position.
  • Increased Confidence in Personal Capabilities
    Eighty-five percent (85%) of the CSQAs stated that passing the examination increased their confidence to perform their job more effectively
  • Recognition by IT Management for Professional Achievement
    Most CSQAs stated that their management greatly respects those who put forth the personal effort needed for self-improvement. IT organizations recognize and reward individuals in the following ways:
    - Thirteen percent (13%) received an immediate average one-time bonus of $610, with a range of $250 to $2,500.
    - Twelve percent (12%) received an immediate average salary increase of 10%, with a range of 2% to 50%.
    Within the first 18 months after receipt of the CSQA certification, of the successful candidates:
    - Twenty-seven percent (27%) received an average salary increase of 23%, with a range of 2% to 100%.
    - Twenty-three percent (23%) were promoted, 25% received a better assignment and 13% a new assignment.

Value Provided to the Employer
With the need for increased software quality and reliability, employing CSQAs provides value in these ways:

  • Increased Confidence by IT Users and Customers
    IT users and customers expressed confidence in IT to effectively build or acquire software when certified quality assurance practitioners were involved.
  • Improved Processes to Build/Acquire/Maintain, Operate and Measure Software
    CSQAs use their knowledge and skills to continuously improve the IT work processes.
    CSQAs know what to measure, how to measure it, and then prepare an analysis to aid in the decision-making process.
  • Independent Assessment of Quality Assurance Competencies
    The CSQA program is directed by a Certification Board of independent quality assurance experts. Through examination and recertification, they provide an independent assessment of the CSQA’s quality assurance competencies, based on a continuously strengthening Common Body of Knowledge for quality assurance practitioners.
  • Quality Assurance Competencies Maintained Through Recertification
    Yesterday’s quality assurance competencies are inadequate for today’s challenges. CSQA recertification is a process that helps assure the CSQA’s skills remain current. The recertification process requires CSQAs to obtain 40 hours of quality assurance related training per year in topics specified by the Certification Board.
    From an IT director’s perspective, this is employee-initiated quality assurance training. Most, if not all CSQAs, do this training during their personal time. IT organizations gain three benefits from CSQA recertification: 1) employees initiate improvement; 2) quality assurance practitioners obtain competencies in quality assurance methods and techniques; and 3) employees train during personal time.

Value Provided to Co-Workers
The drive for self-improvement is a special trait that manifests itself in providing these values to co-workers:

  • Mentoring the Testing Staff
    Forty-five percent (45%) of the CSQAs mentor their testing colleagues by conducting training classes; encouraging staff to become certified; and acting as a resource to the staff on sources of IT quality related information.
  • Testing Resource to “IT” Staff
    CSQAs are recognized as experts in quality assurance and are used heavily for advice, counseling, and for recommendations on software construction and testing.
  • Role Model for Quality Assurance Practitioners
    CSQAs are the IT role models for individuals with quality responsibilities to become more effective in performing their job responsibilities.

QAI, as CSQA program administrators, will assist you in this effort.
See www.qaiworldwide.org for detailed information.

Friday, March 14, 2008

Benefits of Defect Ratio Analysis

Measurement and Analysis is the key of process improvement or taking any decision. And Metrics is the most useful tool for Measurement and Analysis. A single Metrics can give us lot of information for decision making. In this post I have tried to explain the benefits of Defect Ratio analysis.

Defect Ratio is a measure as well as a metrics of defects against product size. If your product size is 500 Use Case Point and total number of defects are 200 then Defect Ratio is (200/500) = 0.4. We can analyze the defect ratios by calculating the defect ratio in different time period of a project.

Lets, one of an objective of our processes is to ensure that our defect ratio will be less then 0.45 and variation of the defect ratios will not be more then 0.1. Then in a project we have used those processes, calculated the defect ratios in different time period and plotted the following graph.


From the graph we can say:

  1. The Process is not good enough to achieve the objective of ensuring the defect ratio <= 0.45

  2. The Process is not stable or matured enough. Because, the variation of the defect ratio is more then 0.1 (0.54-0.35 = .19)

  3. Project team is not skilled enough to make sure the defect ratio <0.45

We can also take decision from the graph to improve our processes or increase the skill level of our project team.

Monday, March 10, 2008

People, Process and Technology

We are always trying to do more in less time; that’s why new technology are inventing, software is one of those technology. Once upon a time it was thought that software development is fully depending on human creativity. But day by day it is proved that it is pure engineering function and that’s why process are being developed to run this engineering function. As a result effort is reducing on Human Resource day by day in software development.

But we are not happy on that, we want to develop good quality software in less time. For this reason we are using different tools to increase our productivity in software development. For example, we are using tools for code generation, code review, testing etc. which activities were fully done by people in early stage.





Now, it is proven concept that to compete and survive in the rapid changing software technology industry we have to use processes and tools to increase the productivity of the professionals. And those companies are doing well who have developed an optimized framework with People, Process and Technology/Tools.

In Bangladesh, we have talents for good code development, but we have shortage of process experts and we are weak in use of technology or tools. So, we have to focus in these two areas then software quality will automatically assure.