In: Computer Science
Please Read and Summarize above Article "HOW TO IMPROVE SOFTWARE QUALITY ASSURANCE IN DEVELOPING COUNTRIES" in APA style format (3-4 pages). Students should also integrate answers to the following three questions in their papers:
§ What is the author trying to say?
§ What is the significance of what you read?
§ How does the material influence you?
Advanced Computing: An International Journal ( ACIJ ), Vol.3, No.2, March 2012 DOI : 10.5121/acij.2012.3203 17 HOW TO IMPROVE SOFTWARE QUALITY ASSURANCE IN DEVELOPING COUNTRIES
ABSTRACT
Quality is an important factor in software industry. Software quality depends upon the customer satisfaction which can be achieved through applying standards. In this era achieving quality software is very important because of the high customer demands. Developed countries are excelling in software industry and improving day by day. Meanwhile developing countries like Pakistan are struggling with software quality and cannot maintain reputation in International Market. Software Quality lacks due to many reasons. This paper will address the problems for lacking interest in improving the software quality by higher authorities and software assurance team. We have provided solution to the addressed problems also.
KEYWORDS
Customer satisfaction, Reputation, Customer demands, Excelling.
1. INTRODUCTION
In this era quality is the most important factor in any kind of business. To achieve a respectable position in global market in IT industry [7], a company must have to produce very high quality products. Competition is very high and one cannot afford correcting errors after shipping the products to the customer. A correction after shipping is very costly and it affects the Company credibility and organizations cannot afford losing Customers due to these kinds of problems. To avoid these problems, organizations should follow a proper quality management plan to remove errors from the products [6].Maintaining Quality for product is very important for Business Organizations as every Business Company is running towards automation [6]. Failure in real time software systems can have serious consequences. The main role of SQA (software quality assurance) is to maintain the quality of the software products [9]. For that it is to make sure that the standards and procedures are properly followed. Software QualityAssurance [1] standards are developed to help organizations to achieve quality products [1]. Standards are the set of guidelines which help to achieve best results. The standards and procedures include CMMI and ISO but it is difficult and costly for small SoftwareDevelopment Organizations to follow the standards. These software quality issues [2] are more prominent in developing countries like Pakistan. We have surveyed many highly ranked Software Solution providing organizations in Pakistan and interviewed many SQA employees. The analysis of those interviews resulted in pointing out some critical problems which are degrading the software quality. We have also suggested that how to cope with these problems. Also suggested how the relationship between developers and QA team can be more cooperating and how team leads should react to some problems to solve it. Following our guidelines organizations can achieve high quality and can provide more customer satisfaction.
2.LITERATURE REVIEW
In this white paper, many issues related to quality are identified and many responsibilities of management are identified. Management plays a huge role in the SQA [11]. So it is the prime responsibility of the team managers to facilitate the team members and provide them the good working environment. There are many ways to improve the knowledge like they can go for some formal training courses. They should also take advantage of the seminars arranged by the different experts to improve their knowledge [4]. Quality plan is the most important in any quality improvement activity, SQA team managers are responsible and accountable to develop quality plan and also implement the plan. They are also responsible for quality measurement, quality improvement and configuration management. Quality Plan includes the inspection of the problems. Inspection for finding the problems while maintaining the quality was explained by the Parnas [2]. The methodology used for inspection was dividing and conquer. It was time consuming task, but ensures problems detection. No training was required for the Testing Team or Software Engineers. Parnas[2] explained the role of inspection in reducing quality problems in SQA [10]. First of all he explained the need of inspection in SQA [9] to reduce the problems, how it helps to find errors in the software. The main methodologies behind the inspection activity are dividing and conquer. The research also shows that inspection is a time consuming process but it ensures to find errors in the process. The benefit of the inspection is to benefit errors in the code but it can also help to find many ambiguities in the development phase like it can easily reveal that proper guidelines are followed or not like commenting etc. it is not necessary to do inspection at the end of the project but it can be done at any phase of the project and reveal the errors from the code. Quality effecting factors were explained in the research of David [16].That model explained that the quality of the free software is higher than the other projects. To improve the quality [11] of the projects, PeerReviews plays very important role. This explains that user involvement is also very important for the feedback and on the basis of this feedback software quality can be improved very easily.
3.RELATED WORK:
Models relating to Software Quality Assurance are discussed below.
3.1 PARNAS MODEL
Parnas[2] explained the role of inspection in reducing quality problems in SQA. First of all he explained the need of inspection in SQA to reduce the problems, how it helps to find errors in the software. The main methodologies behind the inspection activity are dividing and conquer. The research also shows that inspection is a time consuming process but it ensures to find errors in the process. Many benefits are the findings of this research; he explained that there is no formal need for the training of inspection. A software engineer does not necessarily need a certification for the inspection. As inspection does need a proper training so there is no need for a company to invest on it. So it will give many benefits despite consuming too much resources of a company. The key benefit of the inspection is to benefit errors in the code but it can also help to find many ambiguities in the development phase like it can easily reveal that proper guidelines are followed or not like commenting etc. it is not necessary to do inspection at the end of the project but it can be done at any phase of the project and reveal the errors from the code.
3.2 DAVID MODEL
David [16] explained in their research about the free software quality and factors affecting them. He explained that the quality of the free software is higher than the other projects. Many reasons behind the improved quality are explained in this research and some comparisons are done between free projects and other projects. The quality of this free software is high because of the open development models used in the development process.
3.3 PEER REVIEWS MODEL
Peer reviews plays very important role to improve the quality [11] of these projects, user involvement is also very important for the feedback and on the basis of this feedback software quality can be improved very easily. User gives their feedback on the basis of their experience and this feedback can help to improve the quality of the software.
3.4 QUALITY FACTORS
To find the quality factors and problem [14] areas for open source projects, in this research many interviews are conducted to find the answers. The interviews were unstructured and seven different open source developers gave the answers of these questionnaires. This research covers projects of very complex nature, questionnaires are distributed among all seven developers and then there answers were collected and findings were explained in the different categories. First category of the results is development and quality practices, here it is discussed that how infrastructure, processes and documentation problems can cause lack of software quality. All of the above mentioned areas are highly important factors for quality of the software.
2. RESEARCH STUDY:
To find the quality factors and problem [13] areas for open source projects, in this research many interviews are conducted to find the answers. The interviews were unstructured and seven different open source developers gave the answers of these questionnaires. This research covers projects of very complex nature, questionnaires are distributed among all seven developers and then there answers were collected and findings were explained in the different categories. First category of the results is development and quality practices, here it is discussed that how infrastructure, processes and documentation problems can cause lack of software quality. All of the above mentioned areas are highly important factors for quality of the software. In second sections Quality problems are discussed. Some major quality issues discovered by the research are coding issues, configuration management, security, bug reporting issues, volunteers attracting, communication problems and documentation issues. With the help of this research, many quality aspects are identified which can cause problems for free software development. Our research spans to eight highly professional and competitive organizations in Pakistan. We conducted interviews of highly skilled and experienced professionals from those organizations and then the critical areas [14] are identified as a result of a very keen analysis. Distribution of companies surveyed in three major categories is shown in figure 1.There are 50% companies which are purely software development companies while Software consultant companies and telecommunication companies included in the survey are 25% each. Figure.1 IT Organization Survey Report Distribution of interviews is divided in three major categories and shown in figure 2. Figure 2 Personal’s Interviews Interviews include 53% Software Quality Assurance Engineers, 26% SQA team leads and 21% managers. The main issues addressed in this research contains
• Time
• Budget
• Less use of quality standards
• Lack of specialists
• Project durations
• Compromise on quality due to less profit
• Developer’s attitude
• Team formation for requirements gathering
• Politics
4.1 CRITICAL ISSUES
Software industry is struggling in developing countries like Pakistan behind that, some of those reasons issues have a very severe impact on the companies mentioned Figure.
4.1.1 LACK OF SPECIALISTS:
Mostly software organizations in developing In small software organizations tester which is one of the main ineffective when he is reviewing his own code. many occasions, small organizations ju the customer. By doing so they save some cost up to the mark. Figure 4 also shows that specialists are also lack of skilled professionals.
4.1.2 LACK OF CONFORMANCE TO STANDARDS:
In small Software Organizations standards like CMMI. As CMMI is a dedicated software quality assurance model but du lack of highly skilled specialists, usually followed which ultimately results in a bad quality software products countries. On many occasions small organizations just develop following any standards to save the cost but that can lead to failures which can cost even more than that.
4.1.3 DEVELOPER’S ATTITUDE: Developer’s behavior at times can be an issue for SQA team many SQA employees is that, developers mostly do not show cooperating behavior occasions developer does not show interest in the problem areas mentioned by the SQA team. Developer’s mostly answer the SQA team with the don’t have proper domain knowledge. So what I have done is right. As developer’s attitude is an integral factor of environment, figure 4 show it has an important influence in software industry.
4.1.4UNREALISTIC DEADLINES:
Time duration is also an important problem factor for quality of software. Mostly QA team has very tight schedule to deliver the project. Half ofthe total timeis mostly spent on domain understanding and functional requirements. As domain knowledge is the most important factor for QA team. If they lack in domain knowledge then it will affect quality quite badly. If a tester could not understand the domain knowledge properly then they can’t find errors in the system or possibly they find a wrong mistake in the system. That is why most of time is spent in understanding domain knowledge, then they left with very little time for testing and ultimately they can’t lead to proper testing. It is shown in the figure 4 that research results reveal that 60% projects fail due to unrealistic deadlines. Figure 4 Project Completion Effected by Critical Issues
4.1.5 TEAM FORMATION AND COMPROMISE ON QUALITY:
Team formation for the requirements gathering is also very critical. Mostly there is no SQA [17]representator in the requirements team. This leads to lack of domain knowledge and functional requirements. Compromise on quality is another problem area for lack of software quality in developing countries due to lesser profit margins. Most of the time project managers ask their QA team members to concentrate more on those projects where they can earn more profit. Profit margins are high for the foreign projects and foreign client demands very high quality. So team managers spend most of the time on foreign projects because they don’t want to lose those clients. This approach affects the quality of the local projects. In Pakistan, QA team leads also compromise on quality of local projects because they consider Pakistani clients technically less strong as compared to foreign clients and consider that local clients mostly does not go for third party testing but foreign clients hire a third party to evaluate the quality of the projects. That’s why mangers give less time to the testing and QA activities of the local projects.
4.1.6 INTERNAL POLITICS:
Politics is also another important issue behind the lack of software quality. Leg pulling is a big factor in developing countries not only in IT industry but in every field. Different team leads in the department try to use theirinfluence on higher authorities to get highly paid projects. So the team leads with better Public Relations get highly paid projects which affect the experience and the benefits for their team members. Figure 4 shows that how, many critical factors like time, budget, professionals and environmental hurdles like politics, compromise on quality due to profit margins and developer’s behavior affect the software quality. Research results in the form of percentage are shown in the graph.
3. RESOLVING ISSUES
Some solutions are suggested on the basis of our survey and interviews.These guidelines are based on the experience of SQA team leads from the leading Software Development Organizations of Pakistan which are ranked on CMMI level 4 and level 5.With the help of our research, different procedures and standards are closely observed in highly ranked organizations, guidelines on the basis of this analysis are provided which can help individuals and software organizations to improve the quality of their software products. Figure 5 Project Completion Success Rate These guidelines can also be very useful for those organizations which are already developing high quality software products because these guidelines can also be very useful to maintain the quality of the software products. As figure 5 shows, by adopting these guidelines, software success rate has improved drastically. If these guidelines are implemented properly to solve Time (Deadlines), budget, skilled professionals and environmental factors. Then on average it increases the success rate up to 95%.
5.1DEPLOYING CMMI MODEL:
CMMI is a set of dedicated standards and procedures which is very helpful to achieve quality. Even though it takes lot of resources and time to follow the CMMI standards but at the end it surely improves the quality of software products. Using CMMI also improves the reputation of the software organizations because mostly customers inquire about CMMI certification and CMMI level. It takes money and time to implement CMMI standards but in the long run it improves the quality of software products as well as the reputation of the company. This helps in gaining a respectable position in Global market. So it is highly recommended to follow CMMI standards.
5.2CERTIFIED AND SPECIALLIZED SQA TEAM:
It is highly necessary for any software company to have a proper SQA team or at least full time tester because only a tester can find the errors and can match the specifications with the user demands and give an unbiased opinion to improve the quality of the software. If a coder is reviewing his own code then it is less likely for him to find all the errors. The job of the SQA team is to make sure that all the procedures are followed and to minimize the errors in the product. That’s why it is necessary to have a proper and fully functional SQA team in the software company to improve and maintain the quality of the software. Another important factor here is a good recruiting process of the organizations. On the first place hire very competitive employees and then develop their professionalism through training and mentoring. It is also the responsibility of the higher authorities to create an environment where team members always work for the best quality products. Mold the newly hired employees in such a way that they don’t compromise on quality in any condition.Certifications to improve the skills are also very important for the team members. Invest on the technical certifications of your employees. It can earn you a lot profit in the long run.
5.3DEVELOPER’S ATTITUDE: Mostly there is a big issue related to the relationship between developers and SQA team. Many SQA teams complain about the developer’s behavior and according to survey and interviews of the different team leads.It is suggested that managers should make sure to develop a good relationship between development team and SQA team because both are the integral part of the quality improvement. Developer’s attitude can be improved by the training sessions and workshops held by the management. In these workshops, highly professionals from the organization teaches that how to improve their abilities and approach towards the different team members. Monthly meetings can also be very helpful for the team environment. In this way team members can be gelled together on monthly dinner or meeting. These informal activities will help to improve the relationship between different teams and they will cooperate with each other on different issues. This will help the organization. So it is the duty of the manager and team leads to handle the issues and improve the working relationship between SQA and development team.
5.4 GRIP OVER DOMAIN KNOWLEDGE:
Many times SQA teams could not understand the domain knowledge of the Software and find hard to give high quality software. To solve the domain knowledge issue, there should be a SQA representation in the requirements gathering team. It will help the SQA team to properly understand the domain knowledge. It will have two benefits, firstly SQA representative can give a list of potential problems to the developer that has probability of occurrence during the project and in this leads to reduce errors and enhancement in software quality.If SQA team have a prior knowledge of domain that can deliver even in a very tight schedule because they won’t waste their time in understanding the domain and functional requirements. So that time can be saved and project can be delivered on time. On the other hand, It is the responsibility of the team lead to accept only feasible deadlines and defer non feasible.
5.5 NO COMPROMISE ON QUALITY:
In developing countries it is a common practice to focus on those projects which are strong in business prospective and compromise on the local projects. Some of the highly ranked software houses SQA teams are working on foreign projects while some are working on local projects. SQA teams which are working on foreign projects are getting more benefits than the others and their salaries are usually higher than the other colleagues. The reason behind the difference is the profit margins. That adds more pressure on team leads working on local projects and this results in compromise on quality because they want to spend less time on projects. So that they can work on more projects to show efficiency, in order to make good quality products team leads should make sure to give proper time to every project regardless of the profit margin. It is the responsibility of the higher management to make sure that quality is maintained for every project and gives equal benefits to all teams regardless of the foreign project factor. A very highly ranked software company in Pakistan has decided not to work on local projects recently just because of this issue, which is a better option if you can’t handle the quality issue created because of profit issues.
5.6 AVOID INTERNAL POLITICS:
One can’t deny the politics factor in any field so as in software field but it is the responsibility of the managers to make sure that politics should not affect the quality of the software. Professional jealousy is good but it must not affect the reputation of the company.
6. SIMULATION
Our research work simulation was on already developing projects. We have first observed errors and problems on the projects that were in the deploying stage. Then we have implemented our proposed ideas on developing projects and observed the results. According to our research most influencing factors are lack of specialists, lack of domain knowledge, internal politics and non-certified team. Figure 6 Effects of Non Specialists on Project Completion Rate Then we guided some of the development teams to improve these issues and by improving these issues the success rate improved. As explained in the fig[6], when the specialists were chosen for the right job then project competition rate goes to 99%. Specialists know exactly how to tackle different problems in the project life cycle. Figure 7Effects of Certified Team on Project Completion Rate Certifications are also an important factor in the software quality assurance. By spending more money on the certifications of your employee companies’ reputation gets improved. So by choosing the certified team for the projects, completion ratio improves by almost 98%. Certifications give more exposure to the employees towards new technologies. Fig[7] shows the results improvement. Figure 8Effects of Domain Knowledge and politics on Project Completion Rate As shown in the fig[8], Domain knowledge was another major hurdle in the completion of the projects. So by improving the domain knowledge of the team members by giving them proper time to understand the requirements improves the completion rate of the projects under study. Another major issue handled was internal politics, managers make sure to avoid any conflicts between team members and SQA team. So in this way 97% completion rate was achieved as compared to 85%. Our suggestions to improve quality really helped in the completion of projects and quality of the software’s also improved because the number of errors was quite less than before.
7. CONCLUSION:
In this research SQA problems are identified and solutions are suggested to cope with those problems and improve the software quality. Software organizations can only get a respectable position in Global Market if they concentrate on quality. SQA plays a very important role in business of Software Company because the only factor which results in getting consistent projects from permanent customers is customer satisfaction. Big and reputed Organizations can Advanced Computing: An International Journal ( ACIJ ), Vol.3, No.2, March 2012 27 hire you permanent vendor for their Software / IT Solutions while getting good and quality products and delivered in time.
A1 QA
In which factors Does quality depends
Customer’s Satisfaction
Understandability: documentation must be clearly written
Completeness of software: Parts should fully developed
Portability: Ability to be run well and easily on multiple computer ,smart phones etc.
Maintainability : facilitate updates to satisfy new requirements
performance
Usability: user friendly
Reliability
Efficiency: Fulfillment of purpose without waste of resources, such as memory, space etc.
Security:Protect data against unauthorized access
Why Quality is important???
In this new generation quality is important due to the High customer demands
Scope
This paper will address the problems for lacking interest in improving the software quality
by higher authorities and software assurance team.
Goal of the paper
Software Quality Lacks due to many reasons:
Paper will provide the solutions for problems to improve the software quality
Introduction:To achieve a respectable position, a company must have to produce very high quality productCompetition is very high and one cannot afford correcting errors after shipping the products to the customer.
Why after shipment correction is difficult????
1.Costly
2. Affects the Company credibility and
3.Organizations cannot afford losing Customers due to these kinds of problems.
How can we avoid these Problems???
Organizations should follow a proper quality management plan to remove errors from the products.
Maintaining Quality :for product is very important for Business Organizations, is running towards automation.
Role of SQA
Maintain the quality of the software products.
Follow the Standards and procedures.
To help organizations to achieve quality products.
What are standards
Standards are the set of guidelines which help to achieve best results.
The standards and procedures include CMMI and ISO but it is difficult and costly for small Software Development Organizations to follow the standards.
These software quality issues are more prominent in developing countries.
Literature Review
In this paper many issues and responsibility of management related to quality are identified.
Who is playing a huge role in SQA
Management plays a huge role in the SQA, prime responsibility of the team managers to facilitate the team members and provide them the good working environment.
What are the ways to improve the knowledge about quality?
Team can go for some formal training courses
Arranged seminars by different experts to improve their knowledge
responsibility of SQA team????
To develop quality plan
Implement that plan
Inspection of the problem
Measure quality
Quality Improvement
Manage Configuration
Maintaining the quality
What methodology used ???
The methodology used for inspection was dividing and conquer
Time consuming task, but ensures problems detection.
No training was required for the Testing Team or Software Engineers.
MODELS DISCUSSION
Three models have been discussed
Parnas model
David model
Peer reviews model
PARNAS MODEL
Explains the role of need and inspection in reducing quality problems in SQA to reduce the problems
Divide and conquer methodology have been used behind inspection activity
Inspection is a time consuming process but it ensures to find errors in the process
Advantages of Parnas model
No formal need for the training of inspection.
software engineer does not necessarily need a certification for the inspection.
Inspection does need a proper training so there is no need for a company to invest on it.
To benefit errors in the code
It can help to find many ambiguities in the development phase
It is not necessary to do inspection at the end of the project but it can be done at any phase of the project and reveal the errors from the code.
David model
Explains affecting factors and research about the free software quality.
Many reasons behind the improved quality are explained in this research
Some comparisons are done between free projects and other projects.
The quality of this free software is high because of the open development models used in the development process.
Peer reviews model
To improve the quality of the projects, Peer Reviews plays very important role
user involvement is also very important for the feedback
on the basis of this feedback software quality can be improved very easily.
Quality Factors
To find the quality factors and problem area for open source projects many interviews are conducted.
The interviews were unstructured.
Seven different open source developers gave the answer of questioners.
This research covers project of very complex nature.
The questioner answers were explained in different categories.
development and quality practice: how infrastructure, processes and documentation problems can cause lack of software quality.
Quality problems
Major quality issues are discussed by researcher. These are coding issues, configuration management, security, bug reporting issues, volunteers attracting, communication problems and document issues.
Many quality aspects are identified which can
Research Study
Our research spans to eight highly professional and competitive organizations in Pakistan. We conducted interviews of highly skilled and experienced professionals from those organizations and then the critical areas are identified as a result of a very keen analysis.
Main Issues
The main issues addressed in this research contains
Time
Budget
Less use of quality standards
Lack of specialist
Project durations
Compromise on quality due to less profit
Developer’s attitude
Team formation for requirements gathering
Politics
Critical Issues
Software industry is struggling in development countries like Pakistan.
Some of the reasons pointed out in this research paper.
A graph shows that the identified critical issues have how much impact on the companies mention in survey.
40% software development organizations
23% telecom companies
37% software consultant companies
Lack of Specialist
Do not have proper SQA team or tester.
In small organizations usually developer fulfill the responsibilities of tester.
This cause the main reason of lack of software quality and it reduced the quality and maintainability
Small organizations do this to save cost
Lack of conformance to standards
In small organizations, if they have SQA team then they don't follow quality standards.
The quality standards are CMMI and ISO.
Lack of highly skilled specialists, experts and resources.
Many small organizations don't follow standards during development to save cost ultimately cause more cost than that.
Developer behavior can be an issue for SQA team.
Developer don't show cooperating behavior.
Developer don't show interest in area mentioned by SQA team.
Developer thought that SQA team has no domain knowledge so what I have done is right.
Developer attitude is integral factor in environment and has a important influence in software industry.
Unrealistic Deadlines
Time duration is also a important problem factor for quality of software.
Mostly half of the time is spent on the domain understanding and functional requirement.
Lack in domain knowledge will affect the quality badly.
Team formation and compromise on the quality
Team formation in requirement gathering is very critical.
Mostly there is no SQA person in requirement team.
Compromise on the quality is another problem area due to lack of profit margins.
Most of the time manager asked QA team to concentrate on those projects where they can earn more profit.
Profit margin high for foreign projects.
Internal politics
Politics is also another important issue behind the lack of software quality. Leg pulling is a big factor in developing countries not only in IT industry but in every field.
Different team leads in the department try to use their influence on higher authorities to get highly paid projects. So the team leads with better Public Relations get highly paid projects which affect the experience and the benefits for their team members.
Deploying CMMI Model
CMMI is a set of dedicated standards and procedures to achieve software quality.
It takes a lot of resources, time, and money but in the long run it improves the quality of software products as well as the reputation of the company.
Eventually, a respectable position in Global market can be gained.
Certified And Specialized SQA Team
It is necessary for every software organization to have a proper and fully functional SQA team.
Software quality person can match the specification of user requirements and can give unbiased opinion.
The job of SQA team is to observe that all procedures are properly followed.
Hire competitive employees and then train them.
Higher authority should provide a good working environment to its employees.
Developer’s Attitude
Good relationship between developers and SQA team.
Developer’s attitude can be improved by training sessions and workshops.
Monthly meetings and dinners can be helpful for creating good environment.
Certification to the employee is also important for improving the skills.
Grip over domain knowledge
Understanding of domain knowledge is mandatory for SQA team.
There should be SQA team representation in RE team If SQA team have prior knowledge then they won’t
waste their time in understanding domain and functional requirement.
Team lead should accept feasible deadline and defer non feasible.
No compromise in quality
Developing countries focus on those projects which are strong in business perspective and compromise on local projects.
SQA team working on foreign projects get more benefits regarding their salaries.
This adds pressure on the team lead working on local projects.
Proper time should be given to improve software quality regardless of foreign project factors.
Avoid internal politics
One can’t deny the politics factor but it should not affect the quality of software.
Personal jealousy is good but not affect the reputation of company.
Conclusion
SQA problems are identified and solutions are provided.
Software organization can only get respectable position in global market if they concentrate on quality.
Customer satisfaction is the factor for getting consistent projects from customers.