Projects, especially
software development
projects, can be a challenge
from start to finish. You
know the scenario. At the
beginning, you don’t like to
take the time to plan well,
and you rush through the
business requirements since
you already know what the
client wants. You have fun
initially with the design
work, but then you discover
the technical environment is
more complex than you
thought and you start to get
a headache. Coding is a
blast, but then you have to
do the testing as well,
which starts off okay but
then gets tiresome. At the
end, you are just looking to
get the darned project done.
However, there is one more
challenge ahead –
implementation.
Implementation refers to the
final process of moving the
solution from development
status to production status.
Depending on your project,
this process is often called
deployment, go-live, rollout
or installation. For the
purposes of LifecycleStep,
all of these terms are
synonymous with
"implementation."
There is no single way to
implement an application. It
depends on the
characteristics of your
project and the solution.
Some implementations are as
easy as saying “we are now
live.” This type of
implementation can work when
the solution is brand new
and you are developing and
testing in what will become
the production environment.
In these cases,
implementation is just a
state of mind. One day the
solution is in development,
and the next day it is in
production. What could be
easier?
At the other extreme are
implementations that might
be projects within
themselves. For instance,
you may have a software
application that needs to be
deployed to your division
offices all around the world.
This could take months to
accomplish and require a
full lifecycle of planning,
analysis, design, etc. In
this case, you might
structure the implementation
as a separate project.
When we think about
implementation, we should
always start by
understanding the level of
complexity involved. If the
implementation is relatively
straightforward, then there
is no reason for elaborate
implementation processes.
However, most projects have
a number of implementation
events to plan for and
execute successfully.
Plan
Early
One of the key best
practices for the project
lifecycle is to plan early.
In fact, if your
implementation were large
enough, you would actually
start by creating an
Implementation Strategy in
the Analysis Phase. This
document should describe the
overall approach to
implementation, the scope,
assumptions, risks, etc. You
can make some fundamental
decisions here in terms of
how the implementation will
take place - for instance,
whether you will be running
tests in parallel during
implementation, whether the
system will be down during
implementation, etc.
The next time you should
think about implementation
is in the Design Phase.
Here, you will create a
lower-level Implementation
Plan. If you created an
initial strategy document,
the Implementation Plan will
simply fill in many of the
details. If you did not
create the strategy
document, you will need to
mentally start at the higher
level to understand what you
wanted to accomplish, but
then you would quickly jump
into the planning details.
The Implementation Plan is
used to lay out the overall
timeframe for
implementation, who will be
doing the work, what
organizations are involved,
the estimated effort and
duration, etc. If the
implementation involves new
processes, you will need to
account for how you will
train the users, who will do
it, etc. If the
implementation needs to
occur in multiple locations,
you should describe the
overall sequence. It is
important to note that the
Implementation Plan provides
detailed information that
can be shared with your
stakeholders and project
team. However, it is not to
the level of the actual
workplan.
Build the
Implementation Workplan
So far, you have completed
an Implementation Strategy
(during Analysis) and an
Implementation Plan (during
Design). However, you still
have to actually build the
workplan activities for
deployment. This should be
done during the Construct or
Test Phases. At this point,
you have already worked your
way from high-level to
low-level, so your remaining
work is to actually define
the activities,
dependencies, timing,
responsible person, etc.
When you actually hit the
Implementation Phase, you
will have a workplan ready,
and you can be reasonably
sure that it will accomplish
what you need since you have
validated a high-level and
low-level plan already.
Communication is Key
In addition to planning, the
other critical element of
implementation is
communication. (Again, we
are talking about a complex
implementation. If your
implementation is small, you
might just throw the
solution into production and
explain what you did.) If
you follow an approach
similar to what was
previously described, you
will have been communicating
all along. The
Implementation Strategy is
meant to focus on the
process from a client
perspective and should have
his or her approval before
proceeding. The
Implementation Plan should
be circulated to everyone
involved. You need to
communicate continually to
reinforce the messages and
make sure everyone is ready
when implementation occurs.
If you do not prepare an
Implementation Strategy and
Plan, you still need to at
least communicate with
people as far in advance as
possible. There is always a
potential point of friction
between the project team and
the infrastructure staff
when implementation details
are not communicated to them
or they are communicated too
late. For instance, a
project team may be ready to
implement a client-server
application, and then they
realize they need the
workstation support group to
install the application on
the desktop. Of course, if
the workstation support
group is not prepared and
communicated with ahead of
time, they will not be happy.
Other potential friction
points include giving
advance warning to the Help
Desk when applications are
deployed or when major
changes occur, since they
take many support calls from
users if things don’t go
right.
Implementation Process
Often, a smoothly run
project gets a black eye
because of problems in
implementation. The major
overall problem with
implementation is that you
don’t always realize the
complexity associated with
deploying the solution.
Therefore, many of the
implementation details need
to be planned ahead of time.
You cannot start planning
for implementation at the
same time that you are
actually implementing.
Depending on the size and
nature of your project, the
following areas should be
considered.