Improve software quality with 6 Sigma

Source: Internet
Author: User

When talking about the gap between us and India, I think there are two pieces worth considering. 1. Software Quality in India has achieved 6 Sigma, that is to say, every 1 million lines of code has only 3.4 lines of errors. How can we achieve or even surpass the quality of Indian software. 2. India's software quality depends on software reuse. How can we improve our software reuse.

Software Quality

I think there are three criteria for evaluating a successful project: 1 punctuality, 2 quality assurance, and 3 meeting customer needs. At present, the biggest problem for the software development team is that the product quality cannot be guaranteed within the specified schedule. I think we need more time to discuss how to ensure the schedule and quality.

We now have many unknown defects hidden in project development. I have summarized the evaluation of each project. Most of the project evaluation content is positive, but I am concerned about the project evaluation level. The evaluation results may be hidden from imperceptible problems. If each item of the evaluation is divided into five levels: very satisfied, satisfied, general, not satisfied, and very dissatisfied. Such an evaluation will produce different results for evaluators of different personalities. For example, a person with a gentle personality rates dissatisfaction as average. Project evaluation is an important customer feedback. We must take it seriously. We will pay more attention to the evaluation of unsatisfactory projects, but the evaluation of satisfactory and general projects will decrease their importance. Important feedback will be ignored. Therefore, I think the evaluation criteria are satisfactory and unsatisfied. If you are not satisfied with the project, we hope the customer can provide more valuable comments.
In the project evaluation, the customer's suggestions and opinions are mostly reflected in the project management, technology, quality of results, and language. These aspects cover almost all stages of project development. So how can we discover the essence and correct the problem and improve the project development process. I have read [1] of the 6σ Management Law, which divides quality improvement into the following phases: [1].
Definition-evaluation-analysis-improvement-control
I think it is also suitable for us to find out the root cause of the problem.

  1. Define customer requirementsFirst, we need to understand and track customer needs and their attitudes. The project evaluation system can be used to collect customer feedback. However, at present, the project evaluation system does not have enough feedback and does not seem to use the feedback. Customer feedback data is useful only when we analyze customer feedback data and take actions accordingly.
    After investigating the customer's needs and behaviors, write a requirement description. Requirement Description is a concise and comprehensive description of performance standards.
    Example: Requirement Description
    In the project development process, the customer's satisfaction is:
    1) understand how to compile various documents required by the customer;
    2) The number of rework times after the document is submitted is less than 1;
    3) There are less than 10 defects for the customer's test results;
    4) Complete the results within the specified schedule;
    5) programmers have the ability to solve more than two defects within one day;
    6) The language level is above 2.
    A Requirement Description first sets a qualified requirement description or a performance standard goal. Next we should do the following [1]:
    1. Ensure that the requirement description is related to the project.
    2. Describe a single performance standard or factor. Clearly describe what the customer needs or what they are evaluating-time, cost, and quality.
    3. Use observed factors to describe customer needs, or use evaluable factors to describe customer needs. Efforts should be made to convert any customer's needs into something that is always observed.
    4. Set "acceptable" and "unacceptable" standards for product or service performance.
    5. The requirement description should be commensurate with the customer feedback, or the latter determines its effectiveness. Writing Requirement Description is the most important thing: description or specific requirements should meet the customer's needs or expectations. Each requirement in the process should be consistent with that of external customers.
    Define Requirement Description, analyze customer requirements, and sort them. Obviously, the customer's requirements are not equally important. For each customer, when their requirements are not met, the responses of different customers are not inherently the same. We can divide customer requirements into three types:
    1. dissatisfaction or basic customer needs. The requirements that the customer deems absolutely need to meet include some factors which have some characteristics and are presented as performance evaluation criteria. If the customer meets these needs, it cannot be said that the customer has obtained an "additional credibility"; if the customer does not meet these needs, the customer will never be satisfied. For example, you can understand how to compile various documents required by the customer and complete the results within the specified schedule.
    2. Satisfied or variable requirements. In this type of demand, the better (bad), the higher (low) the customer's evaluation of the company ). The most common is the quality of results. The fewer rework times the results are submitted, the higher the customer satisfaction. If we can ensure basic requirements, each process improvement activity should focus on improving the company's capacity and performance in quality improvement.
    3. Happy status or potential demands. Some characteristics or factors of our results will exceed the expectations of our customers, or these factors are oriented based on the demands that no one has ever raised. For example, the performance of a function we developed for customers is 200% higher than that of the original system, and the running time of a batch job is reduced to 1/3 of that of the original system.
    Note the following when defining requirements:
    A large-scale collection and use of customer information system should be established. At this point, we need to consider whether to improve the customer's feedback system so that it can collect more information.
    Write clear, evaluable, and relevant requirements.
    Do not keep track of the performance of the company in response to customer needs.
  2. Evaluate the company's current performanceThe core content of this phase is to evaluate the current performance. There are two main tasks of the evaluation process:
    1. Compare the customer's requirements for products and services, and evaluate the current performance of the company's business processes.
    To evaluate the current performance of a company's business process, we must first fully understand how the customer evaluates the company's products and services. Our customers evaluate our products and services based on the following factors:
    1. project management method;
    2. Technical capability;
    3. quality of products and services;
    4. Project Scope management capability;
    5. Attitude.
    Balancing the practical feasibility of the evaluation volume and the value/usefulness of the evaluation volume can be summarized and evaluated as follows:
    1. time required for each stage and the extension time;
    2. rework times of various documents;
    3. The number of defects in each stage;
    4. Number of defects in the test phase. Reason;
    5. Time to fix a defects.
    2. Identify the company's process advantages and disadvantages and draw effective assessment conclusions.
    At present, the company has a lot of available materials, such as cmme defects documents. However, we must ensure that the selected source can provide accurate information and represent the workflow, products, and services we want to evaluate. Therefore, cmme documentation (there is a suspicion of ensuring its perfection in the writing process .) It cannot be used as evaluation materials. The data on these evaluated objects must be taken seriously by the joint efforts of all our colleagues.
  3. Analyze problemsWe need data analysis and process analysis.
    Data analysis: uses the evaluation volume and relevant data (collected data or new data collected during the analysis phase) to identify the problem model, problem development trend, or other relevant factors, whether these factors are speculative, or the possible reasons for proof/unproven.
    Process Analysis: in-depth investigation and understanding of how the work is carried out to identify inconsistent, irrelevant, or areas that may cause or cause problems.
    Write a draft of the reason based on data analysis:
    For example:
    1. The frequent extension of the encoding phase is due to the limited time required by the encoding phase, and the extension of the testing phase is due to the chain reaction caused by incomplete coding;
    2. Document rework is due to the failure to make a valid review prior to submission;
    3. The cause of defects in encoding is sloppy, inexperienced, and non-standardized programming;
    4. Various Causes of defects problems include human factors, technical problems, business logic problems, and development standard problems.
    Draw a flowchart to analyze the process:
    Flow chart is the most important method. In flowcharts, the focus of plotting is on improving, designing, evaluating, and managing processes. The basic elements of the flowchart are simple: a series of tasks, Decision Points/checkpoints, and workflow directions. When drawing a flowchart, you may find that the most enlightening information indeed comes from the "draw a flowchart" stage. When a process is recorded and validated, you can analyze some special problem areas:
    Inconsistency. It means that the handover work is not doing well. Or there is no good communication requirement with the customer.
    Bottleneck. Bottleneck means that the workload at a certain point in the process is much greater than the processing capability, thus delaying the progress of the entire workflow. For example, encoding and testing.
    Redundancy. Redundancy refers to repeated tasks in two parts of the process, or two similar activities that produce simultaneous results.
    Rework cycle. Rework cycle refers to repair, correction or repair of product requirements in the process. For example, document rework and code rework.
    Decision Point/checkpoint. It refers to some points in the process where people will make choices, evaluate, check or actively intervene in Process activities (which may lead to delays ).
    Notes for the analysis phase:
    1. the causal hypothesis should be elaborated.
    2. Be skeptical about the hypothesis.
    3. Use trial and creativity.
    4. Do not make the analysis too detailed.
    5. Do not analyze the deficiencies.
  4. Improvement, proposal, selection and implementation of solutionsSolution description. The solution description is a document that clearly describes the improvement activities. The value of the solution description is that it enables people to have a global concept and grasp of the various suggestions being considered.
    For example:
    1. Solve document rework problems: develop document review standards and perform self-review and superior Review Based on checklist.
    2. Solve the coding extension problem: in the design phase, some clear sub-modules are entered into the encoding in advance. Define the style specifications of the interface at the beginning of the design phase.
    3. Defects problems in programming: develop programming standards. Prepare automatic standard review software.
    4. Defects problems: Dare to discover and record errors (defects ). Errors cannot be avoided, or the concept of defects cannot be avoided. The more errors we discover, the more we can help improve our quality.
    Notes for improvement:
    1. Find innovative improvement solutions.
    2. Point the target to your solution.
    3. Make careful planning.
    4. Do not fully implement the solution from the beginning ).
    5. Do not forget to make an evaluation.
  5. Continuous ImprovementProvides continuous evaluation volumes and measures to support improvement. Build strong support for the solution.
    File records should be prepared to support the new process.
    You need to select a balance between the two to check the process performance.
    An assessment report on indirect and rapid information transfer should be prepared.
    Prepare the response plan for any problems in the process.
    Do not discard file records.
    Do not forget the existence of the flowchart.

The definition-evaluation-analysis-improvement-control method comes from 6σ, but regardless of its name, it aims to allow us to locate and eradicate potential problems accurately, make our software defect-free. I think Improving Software Quality to a defect-free level is our eternal goal, so we need to use a feasible and effective way to help us gradually move closer to this goal.

Software reuse

How can we improve the software development progress and quality? Currently, a hot topic is the use of reusable components. India uses reusable components. This improves the speed and quality of software development. So why don't we use a lot of reusable components.

  1. Where is the difficulty of software reuse?At present, we have some difficulties that impede our use of reusable components.
    1. All the habits of starting over again
    First, we do not have the concept of reusable components. Most programmers are used to the process of re-development from scratch. This is a conceptual issue. To achieve the concept of universal software reuse, we must first let everyone get used to the concept of software reuse. Specifically, the first consciousness in software development is to find existing components to meet requirements.
    2. I don't know where to find the component.
    Find the desired location. We do not have a place to store reusable components. Therefore, we must first create a component library.
    3. There are no reusable components.
    With the component library, we can store the components in the component library. However, if the component library does not have enough components, we cannot find the components we want. All of us are required to solve this problem. We need to adopt an object-oriented method. During software development, we can reuse components as units and store the developed components into the component library in a timely manner.
    4. Do not use quality even if there is one.
    Defective components cannot be used. Therefore, components in the component library must be reviewed by quality.
    In short, the solution to the above problems is to use the concept of component library management system and software reuse to improve the speed and quality of software development.
  2. Developing component library management system is imminentFor more information about how to develop the component library management system, see my master thesis in technical life.
    The Chinese software industry has missed the era of independent development of operating systems and databases, and has never missed the era of software reuse.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.