|
It is necessary to employ
a repeatable and mature process for successful
software development, writer
Dr R Srinivasan
After the discussion on people
and technology, we will now move on to the third
important factor for successful software development
process. Software development in the 60's and
70's was more of craftsmanship, and each project/organisation
employed certain process and tools developed by
them. Naturally in most cases it used to end up
with difficulties in deploying the software on
target systems. However with the onset of software
engineering in the 80's the software industry
started maturing towards adaptation of standard
procedures and processes. " The most discriminating
characteristic of a successful software development
process is the well defined separation between
research and development activities, and production
activities." (Ref; Alan M. Davis, 'Fifteen principles
of software Engineering', IEEE spectrum. Vol.
11, Nov.6, 1994). There must neither be too much
of R&D nor over-emphasis on production in applying
the processes. The solution for this is to follow
an appropriate/standard process model that would
bring the best quality in software development.
William Brown, it al in, 'Antipattern in project
Management' point out that the process used in
some organisations is so ingrained that there
will be failure to evaluate and revaluate. They
further add that we will hear the same mantra
in these organisations, "that is the way we've
always done it". In this circumstance the project
Manager is forced to sit like an 'engine driver'
taking the train on the track laid by the own
to exhibit his leadership and take the project
on the right track.
So, what is
needed is to establish a repeatable and mature
process that would enable successful software
development. The characteristic of a process is
that they do not accommodate variance associated
with People and technology. To Quote William Brown
again , the processes that are followed must be
dynamic in supporting the changes that happen
with People and technology. Moreover they must
balance the schedule, skill, organisation and
the project team. No process will become perfect
unless it is based on the right combination of
standards and disciplines employing the right
type of tools. Even when a correct process is
chosen in the organization, it should match the
requirement of the particular type of development
environment. A question is always raised about
the need for following the process in small projects
because of the fear that too much of adherence
to process may lead to unwanted overheads. However
important activities like project Management and
Configuration Management are very essential for
any type and scale of development.
In order to
achieve a consistent and repeatable set of software
development processes which are flexible and cost
effective, it is absolutely essential that the
processes are standardized, which will in turn
bring uniformity in software development in the
organization. By adopting the template and procedures
provided by the standards like ISO and SEI/CMM,
an organization can become consistent in developing
high quality software. Such International standards
are intended to be a repeatedly implementable
solution pattern that enables good practices in
software development. Particularly SEI/CMM addresses
the importance of three factors mentioned earlier
people, Technology and process.
Surprisingly,
sometimes, software development standards are
ignored, poorly implemented, misused and blamed
for many software development failures. While
the project managers follow the standards to keep
track of the progress, the team members are sometimes
hesitant to follow the standard processes, claming
that it is too much of bureaucracy, obstruction
to progress and unnecessary overhead demanding
additional time, where as the management demands
minimum schedule over run. It is frequently the
view of the developers that standards limit their
free dom in applying artistic value to the development
effort. Bennatan in his book on, 'Time within
Budget: Software Project Management practices
& techniques' say's "This resistance makes implementation
and its oversight difficult without becoming Machiavellian".
It is here that the project Manager has the role
to play in identifying the importance of standardization
and quality to the developers. At the organization
level, repeatability is very important for implementation
of standard s and so not only a correct standard
has to be selected, but also should be implemented
uniformly in the enterprise. It is therefore necessary
that the management, project leadership and members
of various project teams in the enterprise are
committed to implementing the standard process.
In the chapter
on 'Conclusions and Resources' in their book 'Antopatterns
in Project Management', William Brown, Hats McCormick
and Scott Thomas advise, "Standards actually help
make software development easier, if they are
adopted in a pragmatic manner … sometimes in a
fit of panic standards are relax to achieve schedule
or cost. This is akin to selling your soul to
the Devil. Don't do it."
(The
author is Chief Technology Officer, Internet Component
Management Group, Bangalore and can be contacted
at: r.srinivasan@iCMGworld.com)
|