Improving Quality of Software Developed in Small Organizations
Essay by review • December 31, 2010 • Research Paper • 2,858 Words (12 Pages) • 2,096 Views
Essay Preview: 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 was established to optimize the process of developing, acquiring, and maintaining heavily software-reliant systems for the DoD. Because the processes involved are equally applicable to the software industry as a whole, SEI advocates industry-wide adoption of the CMM.
The five maturity levels of the CMM process are described below [1]:
* LEVEL 1 [INITIAL] - At the initial level, processes are disorganized, even chaotic. Success is likely to depend on individual efforts, and is not considered to be repeatable, because processes would not be sufficiently defined and documented to allow them to be replicated.
* LEVEL 2 [REPEATABLE] - At the repeatable level, basic project management techniques are established, and successes could be repeated, because the requisite processes would have been made established, defined, and documented.
* LEVEL 3 [DEFINED] - At the defined level, an organization has developed its own standard software process through greater attention to documentation, standardization, and integration.
* LEVEL 4 [MANAGED] - At the managed level, an organization monitors and controls its own processes through data collection and analysis.
* LEVEL 5 [OPTIMIZED] - At the optimizing level, processes are constantly being improved through monitoring feedback from current processes and introducing innovative processes to better serve the organization's particular needs.
ISO 9001
ISO 9000 is a set of standards for quality management systems. They specify quality system requirements for use where a contract between two parties requires the demonstration of a supplier's capability to design and supply a product. ISO 9001 is the standard that pertains to software development and maintenance. This includes design, development, production, installation and servicing. If an organization's
...
...