|
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 timea
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, iCMG, Bangalore.
He can be contacted at r.srinivasan@icmg.nu)
|