T e c h n o l o g y
_________________________________________________________________________________________________________________________________________________________
..................................................................................................................................................................................................................................................................................................................
                               Software Development Process and Its Importance
             ___________________________________________________________
                                                                                             by Harisha K R


Software development process  

A software development process is a structure imposed on the development of a software product.

Process being a fundamental tool for carrying out community consensus and facilitating very large

number of people to work together on a collaborative project. On the assumption and subject to endless debate that a methodical approach to software
development results in fewer defects and, therefore, ultimately provides shorter delivery time and better value. The necessity of selecting and following a
formal process for software development is to provide desired discipline to deliver a quality product for business success and to avoid wastage of time,
money, demoralization in developers etc.

We all know that computers and software are a part of our existence – educational, professional and

personal too, they have made our lives easy and accurate from retail market to rocket science. Hence, software is no longer programming for an
individual interest or for the sake of that, software is no more just a program to be executed for performing a task but an interaction of the programs, data-
structure and documentation and is a complex structure to develop, test and maintain.  

Modern software products are accurate, faster, and cost effective; they have many other synonyms because they are engineered under the selected
formal techniques to improve the quality of the product of a software development effort.   

Software Development life cycle faces a lot of challenges during each phase, the biggest challenge will be from where to start. Worst situations will be
starting a project with new employees, who don’t have domain expertise, unproven technology and that too with a challenging deadline. Along with
technical  

challenges any situation might hinder a software development plan and put management in a risky and

terrible crisis, which not tackled well this situation might lead to - products overshooting both cost and time estimations but still ending-up in poor quality.
They do not meet requirement specifications as defined by consumer and finally, lead to a business failure.  

The basic challenges for software industry, which are most deserving of serious attention in the immediate future include to:  

             
 1. Create the new logic for problem solving based on open-ended programming environments for high performance computer systems  

              2. Develop a formal methodology that guides us toward the construction of correct and portable  

                  parallel programs, and adopt an openness to radical and innovative alternatives   

              3. Design a programming language that incorporates a unifying intuitive model of parallel computation, and which provides a coherent         
                  vehicle for the natural description of parallel programs

              4. Devise and construct software tools that resonate with the methodology and facilitate a flexible, supportive environment  

              5. Introduce widely available, substantial educational opportunities in parallel programming that will  create a pool of individuals with the
                  experience and intuition necessary to work effectively in this setting.

Above mentioned points are according to the Study of University IOWA.   

                                                          (
http://www.cs.uiowa.edu/~rus/process.pdf )  



Why Software Standards are required for software development and what are they  

In the early years of software industry, people with a formal methods background from other segments of the business criticized the same for software
projects. They argued and said informal methods were generally more useful and fast resulting than the formal methods. In practice it seems that
informality is an  advantage.  

But as software development increased in complexity and size, informalities proved to be major reason for failure. It was impossible to manage when
work got distributed in many teams, they could not match and integrate each individual with a team because of different assumptions and different
methods of  developments. Thus need for standards and processes for software development. So people started putting them in place as per their
experience in their fields.   

Today they are many standards available for software industry. A software development project or firm can chose the one that fits their needs for success
and can get their firm certified but at some cost.   

Many of these standards are from the defense industry particularly in the US which requires a rating based on the process models to obtain contracts.

Some few such standards are discussed below –

ISO 12207 – is an international standard for describing the method of selecting, implementing and monitoring a life cycle for software.  

Capability Maturity Model CMM – This is another leading model which independently assesses and grades organizations on how well they  
follow their defined processes, not on the quality of those processes or the software produced. CMM is gradually being replaced by CMMI.  

ISO 9000 describes standards for formally organizing processes with documentation.  

ISO 15504, also known as Software Process Improvement Capability Determination (SPICE), is a

"framework for the assessment of software processes". This standard is aimed at setting out a clear model for process comparison. SPICE is used
much like CMM and CMMI. It models processes to manage,  control, guide and monitor software development. This model is then used to measure what
a development organization or project team actually does during software development. This information is analyzed to identify weaknesses and drive
improvement. It also identifies strengths that can be continued or integrated into common practice for that organization or team.   

Six Sigma is a methodology to manage process variations that uses data and statistical analysis to measure and improve a company's operational
performance. It works by identifying and eliminating defects in manufacturing and service-related processes. The maximum permissible defect is 3.4 per
one million opportunities. However, Six Sigma is manufacturing-oriented and needs further research on its relevance to software development.


Source:
ArticlesBase.com

.......................................................................................................................................................................................................................................................................................
About the Author:
Harisha K.R
IT Manager
S7 Software Solutions
web :
http:// www.s7solutions.com   
Email : harishkr@s7solutions.com
.......................................................................................................................................................................................................................................................................................