Showing posts with label Quality Management. Show all posts
Showing posts with label Quality Management. Show all posts

Thursday, January 13, 2011

How to Transform Your Team into a High Performance Team

Do you think your team is not performing well, lacks attitude and discipline to follow you, hesitates in taking new initiatives and new challenges, lacks confidence, doesn’t work well in a team settings or some of these related problems? 

Well if these are some of the problems exists, then you certainly needs to revisit your strategy to manage and you need to work towards transforming your team into a high performance teams. 
  1. Building right attitude – Attitude is the foremost trait of any successful individual, team or organization to be successful in long term. With right attitude and approach anybody can achieve success and work in a right direction in minimal timeframe. Attitude is about how you do things, how you perceive any problem and solve them, how you admit your mistakes and works towards improving yourself. You should inculcate the right attitude and at the same time, mentor your team to work with open and positive attitude.
  2. Team work – You should not be working with the strangers in the same team, right?. You should try to create bonding with the team. Go together, discuss different topics of interests, have small breaks, lunch etc together often. Have brainstorming session with team members on identifying problems and identifying the solution. Create a friendly environment, enable team members to interact and work with each other. Everyone should respect each other opinions, views and thoughts.  
  3. Communication – Communicate effectively with your team. Provide visibility and details of tasks assigned to individuals. Ask them if they are able to understand the tasks and in case of any doubts or query, clarify the same immediately. Keep your team inform about the updates. At the same time you need to be cautious of the fact that you should review what information is suitable for the team. Share goals of each individual, explain each goal and help them understand what they are supposed to do. Explain the expectations of your management, let them think about it and come up with ideas on how can they meet or exceed the set expectations.  
  4. Treat each member differently – Do not impose philosophy of ‘One rule applies to all’. Do not try to create comparisons between different individuals as each individual have their own strengths and weaknesses. Help them improve their weakness and motivate them to keep up building on their strength. Assess the tasks, skills and interest of each individual and allocate work accordingly. Let them choose what they want to do and what they can deliver best. If you give them tasks which do not excite them, they are not going to give their 100%.
  5. Balance of Direction and Support – You should assess the competency and commitment level of each resource on each assigned tasks. In case you find any gaps in competency or commitment then you should provide adequate Direction or Support respectively. You need to be careful of the fact on how much direction or support you should provide to individuals.
  6. Motivation – Motivate your team, encourage them to work towards new initiatives, appreciate when someone does a good job, guide them when they make any mistake, help them understand new things, let them be fearless of taking any new challenges and support them whenever needed. This will help you motivate your team and will help them take a leap faster and work in a more efficient way.
  7. Learn from mistakes – It is rightly said that ‘There is no problem in making mistake rather problem is with making same mistake twice’. Do not hesitate in allowing your team to make mistakes, let them try things and if they make mistakes, guide them on how best these things can be done. Mentor them so that they not repeat mistakes. Nobody should be fearful of trying new things. When somebody tries new things then guide them and help them make the right move.
  8. Challenge your team – Identify how you can transform ‘Routine Work’ into something ‘Challenging and Interesting’. Bring your team out from their comfort zone and let them use their competencies to do better work in a faster time cycles. Give them new assignment that challenges their existing knowledge, skills and helps them learn new things. Bring healthy competition among the team members, recognize and appreciate good work.
  9. Constant Feedback – Provide constructive, regular and timely feedback to each individual on their progress. Tell them what they did right and what they did wrong and how they can correct things. Be open with individual and if possible setup one on one with each individuals on a frequent basis. It can be quarterly or monthly depending on the team size
  10. Importance of Quality – Make your team aware that quality should be part of system, process, mindset and thinking. Quality should be a way of life. Help them understand the importance of doing right thing first time. Help them understand how they can reduce probability of reworks and deliver high quality outputs on a consistent basis.

Friday, July 2, 2010

Six Sigma - DMAIC Explained.

Six Sigma is a Performance goal, representing a quality level that meets standards for 3.4 defects per million opportunities.

It uses series of tools and methods used to improve existing processes (DMAIC) or design products, processes and/or services (DMADV). The principle of Six Sigma involves around improving the processes, using statistical measure indicating the number of standard deviations, to a quality level so as to meet and maintain quality standard requirement of 3.4 defects per million opportunities.

The core principle of Six Sigma revolves around discipline and fact-based approach to manage business and its surrounding process framework. In this post I'm mentioning details about DMAIC methodologies which can be used to improve existing processes in a organization.

DMAIC stands for Define, Measure, Analyze, Improve and Control. This is one of the key methodology followed in Six Sigma. I'm trying to explain briefly the key areas covered in the cycle for easier understanding.


#1 Define - This process group is used to:
      1. Define the problem statement
      2. Preparing the charter and goals
      3. Voice of the customer (Pain areas)
      4. Understanding customer expectations e.g. Kano model
      5. Define Process Maps
      6. SIPOC (Supplier Input Process Output Customer) definition



# 2 Measure - This process group is primarily used to measure data for data capturing processes:
       1. Identify key aspects of the current process
       2. Identify Critical to Quality (CTQ) tree 
       3. Stratification of data
       4. Identifying data to be captured
       5. Collect relevant data for analysis


# 3 Analyze - This process group is used to analyze data and identify any findings, trends and causes
       1. Investigate the data collected
       2. Determine what dependencies and relationship between various parameters
       3. Seek out root cause of the defect under investigation (Normal causes Vs. Special causes)
       4. Analyzing data using tools of Six Sigma i.e. Flow charts, Histogram, Pareto chart,Run chart, Scatter Plot, Control charts and Cause and Effect diagram


# 4 Improve - This is used to improve and/or optimize the current process:
       1. Data analysis using techniques such as design of experiments, mistake proofing
       2. Standard work to create a new or future state process
       3. Proof of concept (POC) to establish any changes
       4. Set up pilot runs to establish process capability
       5. Removing Delays, Decisions points and Overheads from the existing processes


# 5 Control - This process group is used to define control parameters and then monitor data based on the parameters:
       1. Define control parameters
       2. Defining and monitoring of thresholds
       3. Continuously monitor data using control charts
       4. Prevention mechanisms implementations
       5. Define contingency and/or Action plan

Thursday, June 24, 2010

Prevention is a Cure - A Quality Perspective

For any product (and project) based enterprise software solution organizations, a lot of time is spent on Quality Inspection (Quality Control e.g. testing) and Quality Correction (e.g. debugging and fixing issues). The cost of these two areas can be moderate to huge, depending upon the size, diversity and usage of software applications in the respective business industry.

If we need to reduce this cost of overall quality, one of the better measures is by reducing and minimizing the total cost incurred on Quality Inspection and Quality Correction. With greater focus on Quality Prevention we can reduce the cost incurred on the overall product development and maintenance lifecycle and can produce increased level of quality.

Lets understand this with an example given below:

Cost of overall Quality = Cost of Quality Prevention + (Cost of Quality Inspection + Cost of Quality Correction)

With every small unit cost increase in Prevention method, we can reduce the cost of Quality Inspection and Correction to significant levels. In other words we can say that Total Cost of Quality Prevention is inversely proportionate to Total Cost of Quality Inspection plus Total Cost of Quality Correction. In other words:

Cost of Quality Prevention α 1 / (Cost of Quality Inspection + Cost of Quality Correction)

Prevention helps in reducing the probability of finding defect in production and enables some of the following benefits for any organization and not limiting to:

    #1 Cost of prevention is much lesser then Cost of Correction as the defect is fixed at the initial phase itself
    #2 Defects are found and fixed in earlier phases of development cycles and enables high quality products
    #3 Cost of rework is reduced to a greater extent as number of defects is reduced to significant levels
    #4 Product companies can focus on implementing more new requirements and innovations in product rather than focusing energy on maintenance, hot fixes and rework. With good quality there are always positive responses from customers who are happy and can be delighted as a result in longer run
   #5 Happy and delighted customers provides return business and also are good references in market place resulting in more business opportunities to an organization


Paradigm shift

In software development life cycle, if we put more focus, energy and time on Quality Prevention area then it will significantly reduce the Total Cost of Inspection and Correction. There are few measures that we can take to make this happen. (Example below)




Investments (Preventions)




Benefits


Requirements

1. Detailed Requirements with use cases and case studies

2. Better and focused reviews

3. Involvements of customers


1. Lesser time in understanding the

requirements
2. Lesser time in architecture and design


Design

1. Detail level of architecture and design

2. Proof of Concepts (POC)

3. Multiple design considerations

4. Detail level of design reviews




1. Lesser time to complete coding
  2. Better reuse of code and integration

3. More option to build better designs
4. Higher scalability of design


Coding

1. Coding standards and guidelines
2. Reusable frameworks

3. Detailed Unit test strategy

4. Code Reviews




1. Less time to reuse

2. Person independent and lesser dependencies

3. Less time to complete Unit testing

4. Less time to complete Integration testing


Testing

1. Detailed level of test strategy, test

scenario

2. Usage of testing techniques
3. Detailed test data preparation

4. Detailed coverage of Regression test




1. Less time to complete Functional testing

2. Less time to complete System testing

3. Increased ability to find defects before customer release


Test Automation

1. Automation of repeated tasks

2. Automation of high priority modules



1. Less time to complete tests
  2. Less resources required to test


Analysis of Production Defects

1. Analysis of Key trends in defects

2. Analysis of gaps in regression scripts

3. Improvements in regression test
4. Improvement in other development processes


 
  1. Timely fixing of common issues

2. Lesser time to complete Regression testing

3. Reduction in number of defects in future product releases

Success Criteria
Though prevention is a good method to improve overall benefits to organization, there are important areas that should be in place to enable the overall success in a longer run:

    #1 Commitment of Management – Management should be committed to this goal. Management team should also provide their time to review the progress and to manage any identified risk. Without commitment from management, it is not possible to improve quality through Prevention methods as it may require significant level of investments initially.
   
    #2 Support of Management – Quality focus should be followed in a top to down approach and must be supported by management on regular basis. This support should be extended to the team so that they are motivated and get adequate resources and tools to perform their work.
   
    #3 Trainings – Everyone in the team should be trained adequately on the required processes. As the change may require significant alteration, in the way people work. Training needs should be evaluated frequently to help team understand on usage of various processes, tools and techniques.

    #4 Attitude and Discipline – Everyone in the team must understand and agree to the common goal and should be motivated to carry the same level of standards. After all it’s the attitude and discipline that makes any improvement process successful.

    #5 Continuous improvements – Prevention is part of continuous improvement process. It should be frequently evaluated by the teams and any required change should be adopted. Though change is good to follow but one also needs to be careful and should not apply changes too frequently. This may divert and distract the focus of the teams. It’s all about striking the right balance.

    #6 Feedback from Customers – Though it is good to learn from internal processes and procedures, it is equally important to collect frequent feedbacks from customer. Also analysis of all defects reported by customers can be helpful in providing a good direction on where we should focus for improvements. Most of the successful software product organizations enables customer to provide their feedbacks through various forums, regular interaction sessions, user groups meetings, seminar, webinar etc.

Tuesday, June 22, 2010

How much quality is good enough?

Imagine if somebody says 'The quality of a product is 99% defect free'. Seems like WOW!! isn't it?

Think again. In term of deviation this (99% accuracy) stands at around 4 Sigma which means around 6000 defects per million opportunities. Now consider this:

3 Sigma is 93.3% accuracy - 66807 defects per million opportunities
4 sigma is 99.38% accuracy - 6210 defects per million opportunities
5 sigma is 99.97% accuracy - 233 defects per million opportunities
6 sigma is 99.99966% accuracy - 3.4 defects per million opportunities
7 sigma is 99.9999981% accuracy - 0.019 defects per million opportunities

Now let's compare some data:
  1. If we send 3 Million letters to the users that means
    1. With 4 sigma we will lose 3000 letters
    2. With 6 sigma we will lose only 1
  2. For every week of TV broadcasting per channel
    1. With 4 sigma 1.7 hours of dead air broadcast
    2. With 6 sigma 1.8 seconds of dead air broadcast
  3. Out of every 500,000 computer restarts
    1. With 4 sigma around 4000 system crashes
    2. With 6 sigma Less than 2 system crashes 
  4. Total flight canceled in US every 3 weeks
    1. With 3 sigma 964 flights cancellations in a day
    2. With 4 sigma 30 flights cancellations
    3. With 6 sigma 1 flight cancellations
Many of the spaceship and medical advancement projects runs at more than 7+ sigma quality standard as there are no scope whatsoever, for errors, due to the level of cost, time and importance surrounding those projects.

Amazingly, mumbai dabbawalas stands at a whopping 7+ sigma (only 1 defect in 6 Million opportunities). This is a really amazing, considering that most of the workers (5000 workers and 170 thousand lunch boxes a day) are uneducated and uses only a color code system to identify lunch boxes. Who says to be high quality processes it needs to be complex. Instead it just needed to be simple and effective!! Isn't it?

Currently we do not see many IT organizations implementing Six Sigma level processes and only very few organizations implementing this practice. In future we might see such level of quality implemented in IT projects but that may be some time, from now. Many organizations desist from this practice as short term investment might be high and returns are primarily long term only.

BTW, you can also get sigma values for some of the things around you e.g.: 'Number of defects per million line of code' or 'Number of defect you found per thousand test steps' and check the sigma value for the same...Have fun.

Thursday, June 3, 2010

Do Software companies deliberately ship products with bugs?

Almost all of the software companies ships their products with a known bug list. It is important to understand what forces these companies are forced to follow this practice on regular basis. Also most of the companies have their own defined criteria to determine which bugs they can defer and deliver with the product release. Some of the possible criteria can be:

1. Bugs which are low severity and low priority

2. Bugs that may not cause any business impact

3. Bugs which have some level of workaround possible

4. Bugs which are existing (since old release) in the product

5. Bugs which are not high Priority and requires high level of efforts to fix them

These are some of the reasons that may allow some of the bugs to be deferred for a release. For any organization it is very important to determine good enough testing. Testing is good enough (This is also referred as Test Stop Criteria) if:

1. Requirements are correct and each of them are covered with at least one test scenario

2. All required functional and non-functional test scenarios are identified and are executed

3. All logical paths and conditions are exercised

4. All failed requirements are revalidated with respective regression test

5. All Identified issues planned for fix are fixed and validated

It is important to think on how as a tester you can help, contribute and voice over these areas and help improve quality within your Team and line of business:

1. Determine appropriate test strategy that maximizes the probability of finding defect

2. Try to build a Bug Deferral Criteria with your LOB, BU or product suite teams that is agreed upon by all stakeholders

3. If a defect is logged then try your best that the defect is fixed. you may not be able to do alone yourself, so use mechanisms like status reports, escalation and proper communication involving your superiors

4. If a bug is marked as deferred analyze if the bug not severe and has possible workaround. If you suspect that this bug can raise concerns from customers or decreases competitiveness in the market then raise your voice and escalate immediately. I'm sure if the alarm is genuine then it will be heard out

5. Ensure that the possible workaround is published in appropriate customer facing documents e.g. release notes, user guides, online help etc

6. Identify the means on how you can minimize the number of backlog issues. You will certainly need support from your superior and management for this.

7. Become game changers and identify measures on how you can contribute your best.