Abstract — The complexity of the software systems is increasing as the time is passing by the software systems are becoming more complex to be managed. The Software process improvement will help in optimizing the software and minimizing the complexity of the software products. So one have to take into account the software improvement factors which affect the process and go for the best solution and the best result can be achieved. The Software process improvement has also proved that it will increase the quality of the product and services, without considering the size of the organization. Besides improving the quality, products and projects it will also improve the returns on the investment.
Keywords — software; process; improvement; critical; factors
The software process quality results in the quality of the software products so in order to get good quality software products the software processes should be improved. The quality improvement will have many affects e.g. it will reduce costs, it will let them to meet the deadlines, it will let them to compete in the local and international market, it will let them to be more efficient and it will also lead them to a successful project oriented organization which has the ability to complete its software related projects.
A good number of companies are working on the software process related improvement projects, some companies are able to complete these projects in time and many are not able to keep the schedule intact or even cannot be able to even complete the project.
However there are many critical factors which can hinder the software development process and these factors needs to be handle in such a way that there influence on the software process improvement must be minimized. The companies need to use the preventative and corrective actions in order to minimize the effects of these critical factors and in result will be able to complete the software process improvement related projects in time.
From the analysis it is proved that organizations are now more conscious about software process related improvement and a collected effort related to the quality culture has also begun.16
The aim of this research document is to identify the critical factors regarding the Software Process Improvement and how these factors can be manipulated in order to get maximum benefit.
II. SOFTWARE PROCESS IMPROVEMENT
Software process improvement is a procedure in which software and software related activities are improved.
III. CRITICAL FACTORS
Following are the critical factors which must be considered while implementing software process improvement.
A. Understanding the Perspective
The software people should determine about the strengths and weaknesses of their software processes. What are potential risks and what are the opportunities related to software processes. If these factors are known in advance then the software process improvement can be completed successfully and within cost and schedule.
B. Management Commitment
If management is not interested it can fail a project2. All the stake holders especially with higher stakes are more important. The management approval and support can buy the project all the resources it needs. In fact management commitment is a very important factor and without which the successful implementation of the software process improvement project is very difficult.
C. Rational Expectations
If the senior management goes for strict date regarding some specific task then the chances of the task to succeed will be slim. The understanding of the software process improvement is needed in order to get maximum benefit out of it. The main idea by SPI is to get a viable advantage instead of going for the mere scoring.3
The rational and feasible expectations will be the entry point and they will allow the project team to be positive and work in the right direction, the absence of which can result in a failure.
D. Motivation for Software Process Improvement
Motivation plays an important part in the success of any project so there is no exception in software process improvement. For motivation there should be a reward program , like bonuses , some encouraging work envirnoment etc. A sound leadership and vision generates motivation.4
Motivation works as a fuel for the project team, without motivation the successful completion of the project is very difficult.
E. Favorable Envirnoment
A good, relaxed and favorable environment will add to the success of software process improvement. Human resource related policies e.g. salaries, flexible working hours, perks and incentives also play an important role. Everyone who has taken part in the progress and change must be given due share in the outcome. Monetary rewards are good but job security and satisfaction, trainings and development of new skills carry equal points as far as employee is concerned.4
The basic human need for optimized output includes the favorable environment without which the persons cannot work with their full potential.
F. SPI Education
Software process improvement related education and training is necessary for a project team in order to perform the tasks successfully, otherwise the project can be in big problem. Training can be conducted in-house or can be outsourced depending on the circumstances.
Education and training also motivate the people besides helping them to build their career. Education leads them to new horizons and research which is being done in the software process improvement field.
G. SPI Action Planning
Evident improvements are required by the management. The project can be divided into mini projects in order to improve the management and better control of the tasks.5
The action planning is very necessary for the successful completion of the project because if there is no proper action plan the project can be in hot waters.
H. Long and Short Term Goals Balancing
Long and short term goals are usually not aligned with each other, but they often need balancing also that short term goals may not overpower the long term goals or vice versa. If balancing efforts are consistently done then they will yield result.
Long term goals are very necessary for the overall progress and strategic planning of the company but on the other hand short term goals are also necessary in order to show the immediate results, so balancing of both is very necessary.
I. Quality Management and SPI
Quality of the operations ,tasks and processes is needed in order to get more reveneue , get more customers and lowering cost. The busines objects must be aligned with the quality management objectives.6
Quality is basically what the customer wants, so if the customer is management then SPI team must fulfill their requirements in order to get the project acceptable for the management.
J. Management Alignment
Senior, middle and lower management needs to be aligned in order to get the software process improvement task completed successfully. Education regarding the SPI is needed for management especially middle and lower management in order to optimize the results. The role of senior management is important in order to reverse the damaging efforts by middle management by giving education and training.7
Different levels of the management should be on the same page in order to get the project of software process improvement successful and acceptable for all.
K. Expert involvement
Expert involvement is needed in order to get the project done successfully. Experts and the practitioners must be involved in root cause analysis, implementation of improvements and defining of processes.
Experts are also very important because they got the experience of the field and the lessons learned in the field are very important in order to get the later projects successful.
L. Scalable Processes
The scalable processes may have formality like estimation, measurement of quality metrics and defect prevention. Process maturity is strongly related to the software process improvement.8
M. Aligning SPI with Organization
The process may need certain type of groups and roles and theses groups are dependent on the organization’s size, project scope and the volume of the business. Different procedures for the development and maintenance of the software products are needed by different organizations. The SPI should define each process on the basis of specialized needs and handling of the process.
The alignment is also necessary because if the SPI project is not aligned with the organization then it is going nowhere and it will result in a failure.
N. Organizational structure
The organizational structure should suit the roles and resources should be allocated accordingly as per SPI. The traditional organizational structures are not feasible for SPI and can create hurdles while implementing SPI. Specialized groups are needed for the implementation of SPI.