|
The project plan serves the purpose
of identifying the strategies at all levels in
the development cycle and so it should be used
as a basis to assess the efforts involved, to
reach each milestone in the project, writes
Dr R Srinivasan
We
have seen earlier that the three important aspects
that a project manager must take care of are:
People, Process and Technology. There is no chance
of any debate here, as to which is the most important
among these three. We will discuss some of the
antipatterns that occur if the process is not
followed as decided. In software development,
process constitutes an important umbrella activity
and so it is always important for the project
manager and project leader to emphasise the need
for adopting a suitable process in a project.
A process should not be meant for producing necessary
documents but for clearly chalking out the software
artifacts. This will give the team an impression
that documentation is only a bureaucratic burden
thrust upon them and does not carry any importance.
Software gurus like William Brown, Skip McCormick
and Thomas say, "A consistent way of developing
software moves software incrementally towards
an engineering discipline." They emphasise
on the need to follow a process so that it is
not only beneficial in the initial development,
but also for future maintenance. This is the rationale
behind the origin of the concept of Life Cycle
models with built-in pragmatic processes. Quite
naturally a project, which lacks in these basic
aspects, will end up with problems. Some of the
antipatterns that arise due to these problems
are described below.
Planning
The first and foremost activity
in any engineering design is planning. An experienced
project manager exhibits his talent by laying
out a clear plan for the software development
project. On the other hand, an inexperienced project
manager may end up in a situation of under planning
or over planning. Since the project plan serves
the purpose of identifying the strategies at all
levels in the development cycle, it should be
used as a basis to assess the efforts involved
to reach each milestone in the project and ultimately
to deliver the product. On the other hand, a project
with poor planning, either because of too little
or too many details, will face the antipattern
called "Planning 911."
While discussing the aspects
of planning in an earlier article, we have seen
three types of antipatterns described by Brown.
They are the 'Detailitis Plan' that takes into
account too much of detail during the development
phase; the 'Glass Case plan' that talks about
lack of up-to-date project plan against important
milestones and the 'Management Plan' where the
development schedule is taken care of by the senior
management who have no direct contact with the
project manager or the team members.
Life-cycle model
The next antipattern that arises
due to a poor process is the 'Life-cycle Malpractice
AntiPattern'. McCormick in his tutorial on antipatterns
says that life-cycle model clarity is the key
to successfully developing several applications
or projects in tandem. He stresses the point that
a dogmatic adoption of a single life-cycle will
prevent a more appropriate process set, resulting
in increased costs, reduced competitive edge and
technology malpractice. So a project manager must
be well conversant with the selection of the appropriate
life-cycle model for the project under consideration.
He should not think that a single life-cycle model,
which was successful in a specific case, would
be suitably applicable to all types of development.
This is because of the fact that each life cycle
model has its own advantages and disadvantages
with respect to the nature of the project on hand.
Steve McConnell in his book on 'Rapid Development'
gives a clear illustration on different life-cycle
approaches according to specific classification
of software development projects.
Collaboration
The process and hence software
development may go haywire if the project comes
under the category of the one being developed
jointly with many organisations for a single customer.
It is very important for both the organisations
to have very good collaboration and work in tandem
with each other. On the other hand, if their interests
are orthogonal, each one of the parties will assume
that they are the individual customers of the
client and under this situation the project manager
may be forced to satisfy many at the same time-a
typical example of a Herculean task. If the project
fails, it may be due to his inability to satisfy
the interest of any one of them. Ultimately the
project is subjected to face different unexpected
angles and directions. The antipattern associated
with this is known as the "Customer Antipattern."
(
To be continued)
(The
author is Chief Technology Officer, Internet Component
Management Group, Bangalore and can be contacted
at: r.srinivasan@iCMGworld.com)
|