Improving Quality of Software Developed in Small Organizations
By: Fatih • Essay • 1,043 Words • February 23, 2010 • 1,198 Views
Join now to read essay Improving Quality of Software Developed in Small Organizations
IMPROVING QUALITY OF SOFTWARE DEVELOPED IN SMALL ORGANIZATIONS
Thomas Painunkal
Osho Gbolahan Solomon
Professor of Economics and Finance
University of Houston-Downtown
College of Business
Department of Finance, Accounting and Computer Information Systems
Address: One Main Street, Houston, TX 77002
Phone: (713) 222-5377
Email: oshos@uhd.edu
Abstract
Improving the quality of software developed has always been and will continue to be the primary goal of any vendor of software products and applications. Strategies and methodologies for software process improvements (SPI) have been adopted industry-wide with several case studies that show the value SPI brings to a software organization. This study provides information for small software companies that have limited resources but need to implement SPI to grow the business. It establishes PSP (Personnel Software Process) as the SPI of choice for these types of organizations. Data on the benefits and ROI (Return on Investment) of investing in PSP provide managers of small organizations or budding software entrepreneurs the information needed to lay a sound foundation for a software organization.
INTRODUCTION
Development of complex computer software is an exacting process that requires the expertise and skills of several talented individuals within an organization. The primary goal of any manager leading a team of software professionals is to ensure that software developed performs to specifications, is as defect free as possible and is produced with as short a life cycle as possible. How does a software company reduce defects or improve the quality of software? There are three important factors that affect quality in any software organization [1]:
1. People
2. Processes
3. Technology
The processes used for executing software projects clearly have a major effect on the quality of software produced. Software Process Improvements (SPI) is the term generally used in the industry to define how processes can be improved or fine-tuned to give better performance. In large organizations that have more financial muscle, resources like people and technology can be added to improve processes and thereby the quality of the output. However small software organizations may find it very difficult or not have the capacity to invest in expensive processes and technology to improve quality. How then can they produce and maintain best of breed products to survive in a competitive marketplace? This paper will attempt to discuss cost effective processes that could be used in small software organizations to improve the quality of software developed. The true benefits of setting up processes can only be quantified if phases within a process can be measured. With proper measurements not only will you know how well the process is doing but also know where to fine tune so as to improve the process. This paper also discusses what metrics could be used to measure software processes.
OVERVIEW OF SOFTWARE PROCESSES
A process can be defined as a series of steps or procedures performed by people with the aid of tools and equipment to transform raw materials into a product [10]. The success of any business developing software intensive systems depends on the type of software processes implemented. Most organizations seem to know what they want but the problem often is how to do it right. There are several defined software process models or methodologies used in the Information Technology (IT) industry. The most widely used and popular ones are:
• CMM (Capability Maturity Model)
• ISO (International Standards Organization) - 9001
Capability Maturity Model
CMM is a methodology or framework used to develop and refine an organization's software development process [2,6]. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development center sponsored by the U.S. Department of Defense (DoD). SEI