Wednesday, October 15, 2008

Quality and Review

Quality
- What is Quality?
- Quality helps to build process and tools to develop a healthy management system, by continually improving the system.
- Quality can be put in simple arithmetic
Quality Objective = Target + means

Total Quality Management
- A structured system for satisfying internal and external customers and suppliers by integrating the business environment and continuous improvement with development, improvement, and maintenance cycles while changing organizational structure.
Total Quality Management
- TQM requires that all the elements are implemented properly.
- TQM is like a Solid, Strong, and Cohesive structure.
- If not implemented correctly, it will be structurally weak and will fail.
Total Quality Management
- TQM implemented within an organization is like the fable of the 3 pigs who built their houses.
- The pigs used straw, twigs and bricks to build their house.
Role of Quality Management
PEOPLE are controlled and responsibilities are assigned by means of a PROCESS.
PEOPLE and PROCESS work in synergy to function like an Efficient SYSTEM, to attain the Organizational GOALS
Role of Quality Management
- Quality is essential to the success of a business.
- Good Quality practice must be embraced by the management and instilled within the organization’s culture.
- It is an attitude, not only for improving business processes, but also the way people work and live.
Software Quality Management
- Software Quality Management and its implementation requires the scrutiny of the software development process by means of the following
- Reviewing
- Testing
- Metric Collection
Software Review
- The Review process is designed to verify whether supporting entities exists, and if they exist, their contribution to the software development process.
- In a software development process, it is essentially the documents that complement the process and the software code which is reviewed.
Software Review
- It has been proved that effective review done during the course of the project has contributed a great deal in minimizing the early discrepancies and deviations in the software development process.

Software Review
- What are Reviews?
- A Review Process is defined as a critical evaluation of an object.
- Typical review examples are Job Interviews, Performance evaluations and Audits.

Software Review
- Reviews are generally considered very stressful and viewed negatively by the participants.
- Conflicts are also very much a part of the Review process.

Why Reviews are necessary?
- With increasing complexity and work load of the software development process, it is found that the process becomes error prone and susceptible to critical deviations from the stated objectives.
- Review processes are absolutely essential to the development and maintenance of the quality software.
Reasons why Review is required
- The primary reasons for having a review are as follows
- Complexity of Software development and maintenance process,
- Error frequencies for Software Work Products,
- Error distribution throughout development phases,
- Increasing cost for error removal throughout the Life Cycle.

Reasons why Review is required
- Inability to test all the software entities,
- Exhaustive Software Testing is impossible,
- Intermediate software products are mostly untestable.
Importance of Reviews
- Exhaustive testing of software components is impossible.
- No technology exists for testing a specification or a high level design.
- Testing does not address quality issues and adherence to standards, which are possible with the review process.
Review as a form of Testing
- Incorporating Technical Reviews during the course of a development process greatly enhances the quality of the desired work product.
- The degree of formalism, scheduling and positive attitude afforded to testing must exist for reviews, if quality software products are to be produced.
Tracking a Project
- Use of Technical reviews for tracking the course of a project is essential,
- During the development process, we will come across number of phases,
- These phases may be considered as milestones or may consists of various milestones,
- Satisfying these milestones is an integral part of producing quality software products
Tracking a project
- Each milestone is characterized by Entry and Exit Criteria,
- At each milestone, an intermediate work product is generated/ produced,
- Reviewing these intermediate work products and the process that goes into producing these work products is necessary,
Tracking a project
- Through identification of deliverables with well defined Entry and Exit criteria and successful review of these deliverables, progress of a project can be followed and managed more easily,
- In essence, review process provides the milestones with TEETH, hence proves beneficial for both Project Management and Customers
Review provides Feedback
- Review process identifies weakness in the existing software,
- Identification of weakness leads to additional validation effort in the future.
- Feedback is provided to the software project team and the management for both Work Products and Work Processes.
Educational aspects of Review
- Conducting a review requires a basic understanding of the software by the review participants,
- These can be obtained by reading the related documentation and acquiring additional skills by observing the work of others,
- Hence contributes to Project Understanding and Technical skills.
Impact of Review on morale
- Review process can be viewed differently by different sets of people,
- People who view it negatively, perceive it as an intrusion into their workplace and workculture,
- For some, the review provide an opportunity to gain visibility of their work, and thus will be viewed positively.
Impact of Reviews on
Maintainability
- It is generally found that documentation for the produced code is not done until the end of the project, due to schedule constraints,
- Reviews force developers to produce incremental documentation necessary for the review, hence eliminates haphazard attempt to have incomplete documentation for the related code.
Impact of Review on
Maintainability
- The review process also improves the developer’s general understanding of the whole system, which facilitates error diagnosis during maintenance,
- Hence indirectly contributes towards easy maintainability of the work product (through better documentation, Standardization and Improved Readability of code).
Behavioral Factors involved
in Review Process
- Review process is a human activity and due attention must be paid to Human interaction.
- Some of the behavioral aspects for Review
- Motivating reviewers
- It is a complex issue and requires the organization to evolve a culture in which review processes are natural.
- Review process should be conducted consistently, so that the negative effects of review may not arise.

Minimizing Review Stress
- Techniques for minimizing stress for individuals whose work is being reviewed, must be explored.
- It requires that the organization should have a well defined review process, where participation is expected from management.
Review Logistics
- Review logistics play an important role in a well defined review process.
- Issues such as timing, duration and location of the review should be given much thought.
- Other factors that contribute to review logistics are Number of reviewers, and Physical arrangement of the review group.
Types of reviews
- Informal review
- Formal review
- External review

Informal Review
- This type of review occurs spontaneously between peers
- Reviewers have no specific responsibility and do not produce a review report.
Formal Review
- These are characterized by carefully planned meetings,
- Reviewers are held accountable for their participation in the review meeting,
- A review report containing action report is generated and is acted upon.
External review
- Are more formal than formal reviews,
- Customers are involved in the external review,
- Is carried out when the project activity is complex and involves customer participation when required.
Review team composition
- For Formal review, the participants are
- Author of the document/ code,
- Reviewer,
- Moderator,
- Observer, and
- Recorder
In some cases, the Observer can double up as the Recorder.
Review Methodologies
- Some prominent review methodologies
- Walkthroughs
- Inspections, and
- Audits
- Other commonly used methodologies are
- Involving a group meeting to assess a product,
- Round robin review (the product is circulated in a round robin manner),


Walkthroughs
- Are viewed as presentation reviews,
- The Author of the software being reviewed, narrates the description of the software and the remainder of the group provides their feedback to the presentation,
- Drawback : Author should be well versed in the functional aspects so as to present the code correctly to the review team.
Inspections
- Are viewed as Work Product reviews,
- It involves a high degree of preparation for the review participants,
- A checklist or agenda guides the preparation of the participants,
- Are characterized by rigorous Entry and Exit Criteria.
- Benefits : A systematic review of the software and a more controlled and less stressed meeting.

Audits
- Audits are done to ensure that the software is properly validated and the concerned process is producing the desired results,
- Audits can be Internal or External,
- Internal Audits done by Quality team for all other departments within the Organization,
- External Audits are done by an External Quality enforcing agency. (Eg. KPMG)

Planning the Review process
- Considerable amount of planning is done for conducting a review,
- Importance is given to
- The review participants,
- Review Schedule,
- Review Agenda
Selecting participants
- Issues involved for selecting participants
- Each aspect of the software under review can be addressed by a subset of the review team, so that no area is left un-reviewed,
- Since reviews are highly stressed meeting, it may give rise to conflicts/ disapprovals, Hence the review leader plays a very important role.
- A review leader may be one of the management people or a person who is a “spy” for the management.
- Technical expertise of the participants is also of paramount importance.
Scheduling the Review
- The review should be timed immediately after the Author has finished developing the code/ product, and before any additional work is done for work products dependent on this product,
- Review time should be decided for every review meeting (ideally 30 to 45 mins)
Review Agenda
- The development of the review agenda must be done prior to the meeting by the Review Leader and the Author,
- Generic checklist and if needed, specific customized checklist could be used,

Review Reporting
- Two types of reports are primarily used
- Review Logs, and
- Review Reports.
- Review Logs are used to note down the deviations that may be found in the product,
- Review Reports are used to trace the work spent in the review, the Action taken, and the time spent on re-work based on the review results.

Review Log
- A typical Review Log consists of
- Work product ID,
- Work product Name,
- Name(s) of Review Team member(s),
- Name of Author,
- Time spent on creating the product,
- Brief description of the product,
- Description of the deviation noticed,
- Severity,
- Date of probable rectification,
- Date of next review
Management perspective of review
- To have an estimate of when all action items will be resolved to successfully track the project,
- Hence helps the management at effective Project Tracking.
Customers perspective of review
- Customer is often concerned with examining the quality of intermediate work products in order to monitor the development organization’s progress.
Author’s perspective of review
- The critical information of the review is available in the review report, on which basic the developer/ author can act accordingly,
- This information should be viewed as Action items by the developer.
SQA perspective of review
- To ensure that all action items in the review report are addressed,
- Classify defects to improve the development and review process, by arriving at prompt metric information.
Software Testing
- What is Testing?

Testing = Verification + Validation

Testing = +
Verification
- Verification

Indicates
Are we building the product RIGHT?
Verification
- Verification means looking into processes, documents to verify whether the process is producing the desired output,


Validation
- Using a computer to effectively test the product is called as Validation,
- Testing through Validation means creative destruction,
- Break the code/ software
Validation
- Validation

Indicates
Are we building the RIGHT product?

No comments:

Post a Comment

Drop in your comments/ feedback

Calorie Calculator

Calculate how much you expend in 1 hour of your favorite exercise. Health Tips.
Powered By Blogger

Followers

Images - Decision tables

Images - Decision tables
Important image details for the Decision tables

Risk Management

Risk Management
Risk Management