Printer Friendly
The Free Library
14,757,006 articles and books
Member login
User name  
Password 
 
Join us Forgot password?

Making the most of the software development process.


Organisations are under increased pressure to look at development initiatives from a return on investment perspective, and failure in software applications can potentially have dire consequences for their overall business strategy. Delivering quality IT solutions and successful projects is about consistency and requires more than just general expertise. Specific knowledge of how tasks are performed in software development environments is crucial to the success of projects-not just for current operations, but also to support future strategy.

A software development methodology should be based on industry "best practices" but should also be tailored for the project, organization and specific team. Implementing an internationally recognized standard such as Rational Unified Process The Unified Software Development Process or Unified Process is a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process or RUP.  (RUP (Rational Unified Process) Software from IBM that provides guidelines, templates and examples for each team member in the system development process. Supporting the Unified Modeling Language (UML), RUP can be used with other Rational tools to provide a uniform set of ), is a complex task and there is too much in standard "out of the box" solutions to be effective in an organization.

However, in a recent survey it was found that of those companies who claim to use a software development process, 48 per cent followed an in-house In-house

In the context of general equities, keeping an activity within the firm. For example, rather than go to the marketplace and sell a security for a client to anyone, an attempt is made to find a buyer to complete the transaction with the firm.
 process as opposed to a branded process based on best practices such as RUP or Dynamic System Development Method (DSDM DSDM - Dynamic Systems Development Method ). But how can a company measure whether its in-house process is appropriate and if its software development methods and techniques are up to scratch?

There are several ways to assess, the sophistication so·phis·ti·cate  
v. so·phis·ti·cat·ed, so·phis·ti·cat·ing, so·phis·ti·cates

v.tr.
1. To cause to become less natural, especially to make less naive and more worldly.

2.
 of an organisation's software development methods and techniques Of these, perhaps the most widely used is the Capability Maturity Model or CMM (Capability Maturity Model) A process developed by SEI in 1986 to help improve, over time, the application of an organization's supporting software technologies. . Table 1. provides a definition of the various levels of sophistication and allows the measurement of one organisation against another:

As a rough guide, most software development organisations would like to be at, or would be satisfied with level 3; fewer reach level 5. However, based on observations, most organisations that do have a process flip-flop An electronic circuit that alternates between two states. When current is applied, it changes to its opposite state (0 to 1 or 1 to 0). Made of several transistors, it is used in the design of static memories and hardware registers.  between levels 2 and 1. Those with no process at all would undoubtedly remain at level 1, with the emphasis on individual effort and heroics he·ro·ic  
adj. also he·ro·i·cal
1. Of, relating to, or resembling the heroes of literature, legend, or myth.

2.
 for any degree of project success. Another way to assess an organisation is to measure against standards such as those from ISO (1) See ISO speed.

(2) (International Organization for Standardization, Geneva, Switzerland, www.iso.ch) An organization that sets international standards, founded in 1946. The U.S. member body is ANSI.
 or against the key quality drivers in published processes such as RUP or XP (Extreme Programming). The comparison of an in-house process against another process/standard enables measurement of how well that process addresses issues commonly regarded as best practice. RUP claims to represent 'best practices in software engineering'. XP, on the other hand, claims to represent a faster, more efficient way to write software with fewer rules and less documentation. Since these two methodologies probably represent two ends of the current process spectrum, it is appropriate to compare in-house processes with them. Yet regardless of which software development process is used, its purpose is to increase the chances of success and to enhance the likelihood of subsequent projects also being successful as a result of lessons learned. However, this is not how many people perceive per·ceive
v.
1. To become aware of directly through any of the senses, especially sight or hearing.

2. To achieve understanding of; apprehend.
 development processes and the result can sometimes appear to be merely recipes for document template (1) A pre-designed document or data file formatted for common purposes such as a fax, invoice or business letter. If the document contains an automated process, such as a word processing macro or spreadsheet formula, then the programming is already written and embedded in the  completion or a time-table Time´-ta`ble

n. 1. A tabular statement of the time at which, or within which, several things are to take place, as the recitations in a school, the departure and arrival of railroad trains or other public conveyances, the rise and fall of
 for an endless series of meetings.

To ascertain whether a development process addresses real software issues or not, it is important to first look at why a project fails. Then, how the process ultimately impacts on this can be examined. A quick search on the interact for "Why do software projects fail?" leads to numerous pages of well-intentioned well-in·ten·tioned
adj.
Marked by or having good intentions: a well-intentioned but clumsy waiter; well-intentioned criticism.
 advice.

The Standish Group www.standishgogp.co is one organisation that specialises in rooting out the source of software project problems.

The following sections are an extract from the Chaos Report which provides the top-ten reasons for project success and failure. It also provides definitions as follows:

* Project success: The project is completed on-time and on-budget, with all features and functions as initially specified

* Project challenged: The project is completed and operational but over-budget, over the time estimate, and offers fewer features and functions than originally specified

* Project impaired: The project is cancelled can·cel  
v. can·celed also can·celled, can·cel·ing also can·cel·ling, can·cels also can·cels

v.tr.
1. To cross out with lines or other markings. See Synonyms at erase.

2.
 at some point during the development cycle

Given these definitions, it is interesting to look at what the research showed:

"The most important aspect of the research is discovering why projects fail. To do this, The Standish Group surveyed IT executive managers for their opinions about why projects succeed. The three major reasons that a project will succeed are user involvement, executive management support, and a clear statement of requirements. There are other success criteria, but with these three elements in place, the chances of success are much greater. Without them, chance of project failure increases dramatically.

"The survey participants were also asked about the factors that cause projects to be challenged"

But why include this research from the 1994 Chaos Report here? There are two reasons: firstly, it is clear that software projects still fail, and secondly that they are still failing for the same reasons despite the fact that technology has changed and the industry is another decade older. It stands to reason, therefore, that either current software development processes are not working or they are not being used properly.

But how can an organization assess whether its process is up to scratch? Having looked at the reasons why projects fail, the next step is to examine how if the current process helps to address these issues. To get the ball rolling, two examples of 'branded' processes, RUP and XP, should be examined to see how they address the issues identified by the Standish Group. In-house processes can then be compared to examine whether the current process measures up, or if they simply generate paper.

RUP is sometimes perceived per·ceive  
tr.v. per·ceived, per·ceiv·ing, per·ceives
1. To become aware of directly through any of the senses, especially sight or hearing.

2. To achieve understanding of; apprehend.
 as being a bit on the heavy side, especially when compared with processes like XP. However, Rational claims that it is based on Best Practices and as such it should readily attach TO ATTACH, crim. law, practice. To an attachment for contempt for the non- take or apprehend by virtue of the order of a writ or precept, commonly called an attachment. It differs from an arrest in this, that he who arrests a man, takes him to a person of higher power to be disposed of;  all reasons why projects fail. The following is a list of RUP best practices and the success factors they address.

Rational Unified Process-Best Practices in software engineering?

Of the major success factors, the only ones not easy to ascribe as·cribe  
tr.v. as·cribed, as·crib·ing, as·cribes
1. To attribute to a specified cause, source, or origin: "Other people ascribe his exclusion from the canon to an unsubtle form of racism" 
 to RUP are executive management support, competent staff, ownership and hard-working hard-working adjtrabajador(a)

hard-working hard adjtravailleur/euse, consciencieux/euse

hard-working hard
 and focussed staff. -However, any project team with an existing process will benefit if these attributes are present in the project, and there is certainly no reason why a RUP project team should not have, and benefit from, such support.

The Rules and Practices of Extreme Programming (XP)*

The following tables provide a summary of the rules and practices of XP.

Naturally, the full version of the process provides significantly more detail than space allows for here. There are quite a few gaps in the right-hand right-hand
adj.
1. Of, relating to, or located on the right.

2. Relating to, designed for, or done with the right hand.

3. Most helpful or reliable: my right-hand assistant.
 columns where it may not be obvious which success factor is being realized in either process. Sometimes this is because the technique or practice is unique to the methodology, or because it describes a certain implementation technique such as RUP's Component-based development or XP's pair programming. Regardless, it is pretty clear that most, if not all, the factors that influence success are enshrined in both these methodologies. In summary, comparing like-with-like is clearly not easy when is comes to software development methodologies.

But in order to assess an in-house process the following areas should he addressed: does it address all the success factors and have an answer to all the project killers? Does it have more in common with RUP or XP? If it contains both it probably resembles RUP more closely. On the other hand, if it is less prescriptive pre·scrip·tive  
adj.
1. Sanctioned or authorized by long-standing custom or usage.

2. Making or giving injunctions, directions, laws, or rules.

3. Law Acquired by or based on uninterrupted possession.
, there may be more similarities with XP since it is clearly less formal and is inclined to be aimed at programmers This is a list of programmers notable for their contributions to software, either as original author or architect, or for later additions.

See also: Game programmer, List of computer scientists

 rather than project managers.

One thing that is beginning to emerge from studies of this sort is that the details of the development process are probably less important than following 'a process'--any process, which case, an organisation's in-house process should serve it well if it is applied as intended. As long as it contains plenty of end-user (job) end-user - The person who uses a computer application, as opposed to those who developed or support it. The end-user may or may not know anything about computers, how they work, or what to do if something goes wrong.  involvement, has the full support of executive management and demands a clear, stable and complete definition of requirements, then the process stands every chance of resulting in a successful software project In summary, comparing like-with-like is clearly not easy when is comes to software development methodologies. But in order to assess an in-house process the following areas should be addressed: does it address all the success factors and have an answer to all the project killers? Does it have more in common with RUP or XP? If it contains both it probably resembles RUP more closely. On the other hand, if it is less prescriptive, there may be more similarities with XP since it is clearly less formal and is inclined to be aimed at programmers rather than project managers. One thing that is beginning to emerge from studies of this sort is that the details of the development process are probably less important than following 'a process'--any process. In which case, an organization's in-house process should serve it well if it is applied as intended. As long as it contains plenty of end-user involvement, has the full support of executive management and demands a clear, stable and complete definition of requirements, then the process stands every chance of resulting in a successful software project.

Dunstan Dun·stan   , Saint 924-988.

English prelate. As bishop of Winchester (957) and archbishop of Canterbury (959-978) he attempted to integrate the Danes and the English as a nation.
 Thomas (language) Thomas - A language compatible with the language Dylan(TM). Thomas is NOT Dylan(TM).

The first public release of a translator to Scheme by Matt Birkholz, Jim Miller, and Ron Weiss, written at Digital Equipment Corporation's Cambridge Research Laboratory runs
 Consulting: Dunstan Thomas Consulting Services Noun 1. consulting service - service provided by a professional advisor (e.g., a lawyer or doctor or CPA etc.)
service - work done by one person or group that benefits another; "budget separately for goods and services"
 provides software architecture consulting and related services such as software development process consulting and OOAD (Object-Oriented Analysis & Design) See object-oriented analysis and object-oriented design.  mentoring. Since 1986, we have partnered with companies of all sizes and across a wide range of industries to deliver technical and business architectural analysis, creative architectural and software design, project management, development process consulting, and technical and professional expertise.

*Copyright Don Wells 1999 (http:// www.extremeprogramming.org See .org.

(networking) org - The top-level domain for organisations or individuals that don't fit any other top-level domain (national, com, edu, or gov). Though many have .org domains, it was never intended to be limited to non-profit organisations.

RFC 1591.
 / rules.htn-d)

"Learning Perl Perl
 in full Practical Extraction and Reporting Language.

High-level computer programming language, the most popular language for writing CGI scripts and the premier scripting (or interpreted) language of the World Wide Web.
 Objects, References, and Modules" "Learning Perl," referred to as the "Llama llama (lä`mə), South American domesticated ruminant mammal, Lama glama, of the camel family. Genetic studies indicate that it is descended from the guanaco.  book," is the classic introduction to programming in Perl. Its pages have instructed many a novice in the use of Perl for short and medium programs--which, traditionally, is much of the programming done in Perl. Yet, once having mastered the material in "Learning Perl," there have been a few bold programmers who have stopped to ask, "Where do we go from here?" Perhaps they want to write programs longer than one hundred lines. Or perhaps they're they're  

Contraction of they are.

they're be
 interested in working with larger and more complex data structures. Sadly, there hasn't has·n't  

Contraction of has not.


hasn't has not
hasn't have
 been a clear answer to their question, until now. "Learning Perl Objects, References, and Modules," by Randall Randall may refer to the following:

In places:
  • Randall, Indiana
  • Randall, Iowa
  • Randall, Kansas
  • Randall, Minnesota
  • Randall, Wisconsin
People with the surname Randall:
  • Randall (surname)
People with the given name
 Schwartz Schwartz is a Canadian spices brand. It is also a common surname and may refer to:
  • Abe Schwartz (1881-1963), musician
  • Alan Schwartz (fl. late 20th century), businessperson
  • Allyson Schwartz (born 1948)
  • Alvin Schwartz (born 1916), Canadian writer
 with Tom Phoenix--the authors of "Learning Perl"--picks up where the first book leaves off. "Learning Perl Objects, References, and Modules" offers a gentle introduction to the world of references, object-oriented programming object-oriented programming, a modular approach to computer program (software) design. Each module, or object, combines data and procedures (sequences of instructions) that act on the data; in traditional, or procedural, programming the data are separated from the , and the use of Perl modules A Perl module is a discrete component of software for the Perl programming language. A module is distinguished by a unique namespace, e.g. "CGI" or "Net::FTP" or "XML::Parser" and a filename similarly named (ie. Net::FTP lives in Net/FTP.pm).  that form the backbone of any effective Perl program. Each chapter in the book is designed to be small enough to be read in an hour or two. Each chapter ends with a series of exercises to help readers practice what they've they've  

Contraction of they have.

they've have
 learned with answers in an appendix for easy reference. Assuming a basic understanding of Perl, this book explains how to effectively use both standard and object-oriented 1. (programming) object-oriented - (OO) See object-oriented programming. See also object-oriented analysis, object-oriented database, object-oriented design.
2. (graphics) object-oriented - vector graphics.
 Perl modules, how to use namespaces and packages properly, and how to use references to build powerful data structures. The topics include:

- Packages and namespaces

- References and scoping

- Manipulating complex data structures

Perl is a different language to different people. It is a quick, scripting tool for some and a fully featured object-oriented language object-oriented language - object-oriented programming  for others. It is used for everything from performing quick global replacements on text files to crunching huge, complex sets of scientific data that take weeks to process. Perl is what you make ofit, but regardless of what you use Perl for, "Learning Perl Objects, References, and Modules" will help you do it more effectively, efficiently, and elegantly. Chapter 3, "Introduction to References," is available free online at:

http://www.oreilly.com/catalog/ lrnperlorm/chapter/index.html
Level           Description

1. Initial      Software process is ad hoc and occasionally chaotic.
                Few processes are defined and success depends
                upon individual effort and heroics.

2. Repeatable   Basic project management processes are established
                to track cost, scheduled and functionality. The
                necessary process discipline is in place to repeat
                earlier successes on projects with similar
                applications.

3. Defined      The software process for management and
                development activities is documented, standardised
                and integrated into the organization. All projects use
                an approval, tailored version of the process.

4. Managed      Detailed metrics of the software process and product
                quality are collected. Both the software process and
                products are quantitatively understood and controlled.

5. Optimised    Continuous process improvement is enabled by the
                quantative feedback from the process and from
                piloting innovative ideas and technologies.

Table 1.

    Project Succes Factors                      % of Response

1. User Involvement                         15.9%
2. Exclusive Management Support             13.9%
3. Clear Statements of Requirements         13.0%
4. Proper Planning                          9.6%
5. Realistic Expectations                   8.2%
6. Smaller Project Milestones               7.7%
7. Competent Staff                          7.2%
8. Ownership                                5.3%
9. Clear Vision and Objective               2.9%
10. Hard-Working, Focused Staff             2.4%
Other                                       13.9%

Project Challenged Factors                  % of Response

1. Lack of user Input                       12.8%
2. Incomplete Requirement &
  Specification                             12.3%
3. Changing Requirements &
  Specification                             11.8%
4. Lack of Executive Support                 7.5%
5. Technology Incompetence                   7.0%
6. Lack of Resources                         6.4%
7. Unrealistic Expectations                  5.9%
8. Unclear Objectives                        5.3%
9. Unrealistic Time Frames                   3.7%
10.New Technology                           23.0%

RUP Best Practices           Success factors addressed

Develop iteratively          User involvement, proper
                             planning and smaller project
                             milestones

Manage requirements          Clear statement of requirements,
                             realistic expectations, clear vision
                             and objectives

Use component
architectures

Model visually (UML)

Continuously verify
quality                      Small project milestones

Manage change                Clear statement of requirements,
                             clear vision and objectives,
                             realistic expectations, executive
                             management support

Planning                               Success factors addressed

User stories are written.              User involvement
Release planning creates the           Proper planning, smaller project
schedule.                              milestones
Make frequent small releases.          Smaller project milestones
The Project Velocity is measured.      Proper planning
The Project is divided into
iteration.                             Smaller project milestones
Iteration planning starts each
iteration.                             Proper planning
A stand-up meeting starts each
day.                                   Proper planning ownership

Designing                              Success factors addressed

Simplicity?                            Clear statement of requirements,
                                       clear vision and objectives

Choose a system metaphor
Use CRC cards for design
sessions.
Create spike solutions to reduce
risk.
No functionality is added early
Refactor whenever and wherever
possible.

Coding                                 Success factors addressed

The customer is always available.      User involvement
Code must be written to agreed         Competent staff
standards.
Code the unit test first.
All production code is pair
programmed.
Only one pair integrates code at
a time.
Integrate often.
Use collective code ownership.         Ownership
Leave optimization till last.
No overtime.                           Hard-working, focused staff

Testing                                Success factors addressed

All code must have unit tests.
All code must pass all unit tests      Ownership
before it can be released
When a bug is found tests are
created.
Acceptance tests are run often and
the score is published.
COPYRIGHT 2003 A.P. Publications Ltd.
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2003, Gale Group. All rights reserved. Gale Group is a Thomson Corporation Company.

 Reader Opinion

Title:

Comment:



 

Article Details
Printer friendly Cite/link Email Feedback
Title Annotation:Management
Author:Stone, Graham
Publication:Software World
Date:Nov 1, 2003
Words:2448
Previous Article:"ActionScript cookbook".(Book Browser)
Next Article:CVS for beginners.(Teach-In)



Related Articles
Porcelain. (poem)
Animation: Action Pack.(Review)
EDITORIAL MORE OF THE SAME A WHIFF OF SCANDAL EMANATES FROM BELMONT.(Editorial)(Editorial)
Robbing Drug Dealers: Violence Beyond the Law. (Book Notes).
GARDEN YOUR WAY TO SALAD SATISFACTION.(L.A. LIFE)
BRIEFLY TOWN CENTER PLAN ENTERS 2ND STAGE.(News)
CLIPPERS UPDATE: CLIPPERS SAY HELLO TO KITTLES; GOODBYE TO Q.(Sports)
CRIME VICTIMS REMEMBERED PROSECUTORS DONATE HUNDREDS OF PRESENTS.(News)
Upcoming documentary unveils urban urgency.(Update: NEWS, STATS AND FAST FACTS)(National Urban Alliance for Effective Education)

Terms of use | Copyright © 2009 Farlex, Inc. | Feedback | For webmasters | Submit articles