REQUIREMENT ANALYSIS ISSUES IN PAKISTAN SOFTWARE INDUSTRY

Requirement Analysis is an important phase in software development. Failure or success of software product depends upon requirement analysis phases. In this paper, a detailed critical analysis was conducted to find out the expected issues behind software project’s failure. It has been found that several issues are associated with this phase such as: customer ambiguity, requirement changing during the project etc. The study was conducted by questionnaires to figure out these issues in the Pakistani software industry.

1. Introduction.One characteristic of the quality software is that it fulfills the customer/user requirement.Requirements are the condition and constraints of the software.There are two types of requirements [1]; requirements which are associated with a practical aspect of the software program are known as functional requirements, were as requirements that address system operations and/or technical characteristics are known as non-functional requirements.Both types of requirements are equally important as functional requirements describe what to do and non-functional requirement enlightens how to do.Development of any software depends on requirements.Hence it is essential to have precise and very clear requirements for any project.
In the phase of requirement analysis software engineer (sometimes called system analyst in this responsibility) gather the requirements, categorize and organize requirements into correlated subsets, discover each requirement in association to others, examines requirements for reliability, errors, and uncertainty, and prioritize requirements on the basis of customers/users needs [1].It is the first technical and essential stage in requirement engineering.This provides an appropriate mechanism to determine requirements from stakeholders.
Requirements analysis is important because "If you do not have the correct requirements, you cannot design or build the correct product, and consequently the product does not enable the users to do their work" [13].Customer/user problem of the software product is first and significant input of requirements analysis.After identification of user problem next step is to formulate and prioritize solution.Unclear perceptive of the problem may leads to wrong solution.According to stated requirement analysis definition, this phase can be categorized into the following phase: 1) Requirements Discovery.This is the strategy of interacting with stakeholders to find their requirements.System analyst works with the client to discover about application domain, needs, services and system's constraints.
2) Requirements Classification and Organization.This step takes the unstructured arrangement of requirements and sorts them into a group of related requirements.
3) Requirements Prioritization and Negotiation.This activity includes organizing, prioritizing and finding and settling requirements with stakeholders.

4)
Requirements Specification.The requirements are documented and input into the next round of the software process.Formal or informal requirements documents may be produced in this stage.

Figure-1: Requirements Analysis Phases
Figure 1 represents the requirement analysis steps that were discussed above.This process is iterative i.e. after documenting specifications there may be some new or change of requirements.It is a complex process and if this process is not followed in true spirit, many problems and issues arise in later stages.The output of this step is to act as an input in the next phase of the software process and ultimately on the basis of these requirements software product is developed.Software projects may fail if they start implementing the system without even properly knowing what the customer really wants.So it is important to thoroughly analyze the requirements before implementing them.
In this research, we found there are many issues in the requirements analysis phase like the communication gap, politics in organizations, ambiguous requirements, requirement changes, timeline issue and many more.These issues may cause difficulty in the requirement analysis phase and may lead to errors in the project.A survey was conducted to find out up to what extent these issues are present in Pakistan software industry.
In this paper, we are going to highlight the problem arise in requirement analysis.The paper is organized in the following sections: Section 2 brief about the finding of the literature, in Section 3 methodology of the research is discussed, Section 4 includes results and discussion and finally the paper concludes in last section.
2. Literature Review.Requirements Analysis is a complex process and if this process is not followed in true spirit, many issues arise in later phases.Mistakes are an obvious part of software development, and there is no reason to expect that it does never again [2].There are many issues identified with requirements and inconveniences in developing the software scope.If these issues are not identified or correct at the right time it may close to dreadful requirements and failure of the software product [3].
Many projects fail due to the inadequate requirements analysis process.It has been seen that if the process is not taken seriously, requirements errors are going to be much worse in future.According to a study, 50% of errors in software are due to poor requirement gathering & analysis phase [4].It is also found in the studies that inadequate requirements processes may lead to high maintenance costs.There is 48% of the development problem that was stem from requirements [5].These days, consumer requirements for software product have been extended and developers should make certain that, their products are capable to meet the consumer's need.There are multiple ways to gather the requirements from the customer's e.g.brainstorming, conferences, Interviews, questionnaires and surveys [6].The foremost faults are taking place in the requirement analysis phase.Which is considered a sensitive challenge, any mistakes or incorrect perception may additionally lead to major failure of the product.
Stakeholders are very important part of the organization they play a very important role in requirement analysis process.If the number of stakeholders is more than one in any projects, then there is a chance of ambiguous requirements So, In this scenario system analyst must communicate with the stakeholders about their such kind of requirement and get off best results.Efficient participation of stakeholders is very important for the betterment of any project [7].There is a need to enhance the level of the software industry in Pakistan.According to our research software houses in Pakistan can't draw much in national and global clients; there is abundantly need to enhance in quality to open their way to a universal commercial center.As per Pakistan Software Export Board (PSEB, 2008) and 91 % are working with no guidelines.Little and medium-size firms of Pakistan were additionally surveyed in the setting of prerequisite designing practices, potential restriction in honing and arrangements in these circumstances was likewise proposed [9].There are many issues in the software industry that are identified in this research by literature review [7,10,11].The communication gap between stakeholders, ambiguous requirements, timeline issue, and politics between customer-organization and within the organization are a very major issue in the software industry.These all issues are linked with each other.For example, if requirements are ambiguous and there is a communication gap between stakeholders then the project is going to suffer.

Methodology.
We divided our research into three major steps brainstorming, dataset collection and issues.
Step 1: Brainstorming.A verbal discussion was held among different colleagues, teachers, software engineers and who can be a source for defining the major issues in requirement analysis process in Pakistan software industry.That could help us furthermore requirement assessment process.Many research paper and books were also consulted for identification of issues.
Step 2: Problems/issues Identification.After researching and analyzing the complete scenario of requirement analysis in the software industry, many issues were highlighted.These issues were present in the software industry.Some of the major issues that cause project failure in Pakistan software industry are listed as follows.
1. Ambiguous Requirements.Customer's vision and scope about their project is not clear.They have no clear idea about what they actually want.They don't know about the technicalities of a software product, hence their idea about their project is so vague.2. Requirements Changes during Projects.Due to the customer ambiguities about their project, their requirements change continuously during the project.In some development models, it is highly difficult to accommodate changes in later phases i.e. waterfall [12].3. Communication Gap.The communication gap between stakeholders is one of the major issues.In some development models, there is an active and direct communications between stakeholders are required.e.g.Agile and this issue causes a delay in the project[12].4. Customer-Organization Politics.Customer and other stakeholders don't trust each other, and sometimes politics inside the organization can cause a delay in project development.5. Timeline Troubles.Software engineers didn't match their deadlines which is also a major issue in our software industry.
Step 3: Dataset Collection.The most important and difficult part of our research was to collect data and to decide the parameters that may help in to defining the problems and issues in requirement.Information collection process was quite interesting and informative.After brainstorming and taking help from the literature of software engineering, an online questionnaire was developed and distributed to the target audience.Data gathered by distributing the given questionnaire in software houses in Pakistan.63 different employees with great working experience in the software houses are the source of our data collection.Based upon user responses, requirement analysis process in the Pakistan software industry is analyzed.In this particular research we are focusing on these problems and to examine these problems in Pakistan an online survey was conducted.

Results and Discussion
. As discussed in the methodology section an online survey was conducted to highlight major requirement analysis issues in Pakistan.63 responses were collected from different software houses.This section contain finding of the survey.

Figure 2: requirement analysis issues
Figure 2 represents the collective results of the survey in the form of a graph where x-axis, the y-axis represents requirement analysis issues, percentage of issues respectively and each bar represents a problem that was highlighted in the literature survey.Explanation of survey results was discussed below.
1. Customers ambiguity: It is the most repeated issue during software development.As shown in figure 2, 79% software engineers agreed that customer's ambiguity about their project is one of the major issue encountered during the analysis phase of requirement engineering process.As per the result of the survey, we have analyzed that there are many important reasons in the incorrect implementation of the software product.First is that the customers don't have a clear idea of what they actually want.Customers and stakeholders are unable to carry their precise requirements; the reason of this is that they don't have a proper idea about technicalities of the software hence they can't precisely tell what they want or their actual output regarding the software.
Secondly, the requirement engineers are reluctant to understand user requirements.Software project managers have found out that the ambiguity in software program requirements can create more harm than ambiguity or defects in another degree of software improvement.Yet, unfortunately, maximum software program tasks, still fail to catch the significance of validating requirement specifications.To control requirements issues, it is essential to include both the engineers and customer for a better understanding of the project.

Requirements Changes during the Project:
The second biggest issue in the requirement analysis phase is the requirement changing during the project as represented in figure 2. 82% software engineers are strongly agreed that accommodating changes in the project are the major issue.As the project leads to completion accommodating changes is becoming more costly.
If a customer's vision for their software product is very vague and ambiguous.This would result in changing requirements at every stage of software development which may cause other problems and leads towards unsuccessful software development.Incomplete or changing requirements are the result of inadequate scope definition that can impact software project achievement.Studies suggest that 71% of software program projects fail because of negative requirements [4] but, the exchange is inevitable.Marketplace modifications, new technology, competitive responses, new methods and design defects may result in change.To control requirements changing issues, the prototype of software is a good option.

Timeline Trouble:
This issue faced by the organization during software development.As per survey 76%, software engineers agreed that it is also a major issue in Pakistan software industry.All mentioned issues ambiguous requirement, requirement changes during the project, communication problems and customer organization politics may be reasons for the delay in the project.Software program disaster is presumed to be eradicated; software managers nevertheless appear to have problems with challenging schedules and deadlines.status, but it is also easy to neglect to do so.
To overcome/minimize this issue, powerful communication is necessary.Verbal exchange is said to be most effective when the receiver of a message knows the message exactly the way the sender needs him to apprehend.If not it is going to be a complete confusion.Communication should be between all stakeholders either they are internal or external.There should be no hesitation between customer and software engineer.Both should be friendly to each other so that they can talk in a healthy environment.To sort out the problem of the language barrier the service of the mediator can also be used.

Customer Organization Politics:
This problem is also one of the reasons behind software failure.As per the survey, 73% of the software engineers agreed that customer organization politics is one of the reasons behind the failure of the software in Pakistan.Both parties do not trust each other they can mislead each other related to software development.Sometimes politics within the organization leads to software failure.It is responsibility of the project manager to resolve politics in project which can cause the delay of the project.

Conclusion.
The main objective of this research is to highlight issues behind the project failure due to poor requirement analysis phase.And to identify up to what extent these issues are present in Pakistani software industry.In this research, an online survey was conducted.63 different employees with great working experience in the software houses are the source of our data collection.Based upon user responses, communication gap came out to be the biggest issue with 84% and organizational politics to be the least with 73%.The requirement analysis phase deserves a stronger attention in the industrial practices.It is suggested that to improve requirement analysis phase proper training and workshop should be conducted in software houses.In the future, we will provide solutions to overcome issues in the requirement analysis phase.
[8], there are 495 software houses, in Karachi, 459 in Lahore, 373 in Islamabad and 92 in different urban areas.Level of software houses with ISO confirmation is 8 %, and just 1% of software houses are CMM guaranteed, Some tasks can take more time.As someone has quipped, the badly controlled software takes thrice the time deliberate, a nicely controlled one takes handiest two times.Software development groups take a lot of time planning schedules, re-running and re-negotiating schedules and studying why improvement did not appear consistent with a timetable.A nicely planned improvement technique can give you the approximate timeline and help you in managing timeline troubles.4. Communication Gap: It is one of the major issues which customer & software developer both are faced during software development.The biggest issue that this industry faces is the communication gap with 84%.One of the biggest causes, why numerous projects fail, is poor communication with external as well as in internal stakeholders.Sometimes if there is no communication going between customer and developer, the reason is customer doesn't know about technicalities of software and hence the development team doesn't guide them about what is going on in project development.It is critical to keep everybody inside the loop on project