If You Fail to Plan You Plan to Fail

We recently picked up a new client and have just started a project for them.  In these situations we have a very definite process for planning how everything is going to be handled, including who is responsible for doing what and by when.  We thought that we’d share this process with you to show exactly how we run a project from start to finish.  Hopefully this will provide reassurance that we employ a proven methodology which ensures that everything runs as smoothly and efficiently as possible.

Taking the strain    

This particular project involves work on the development of a new structural monitoring system.  This gathers data and information on the stresses and strains experienced by bridges up and down the country, so that planned maintenance can be scheduled more effectively.  We’re developing the systems for gathering all the data from the individual sites, then processing and storing it.

Preparation is the key

By the time we win a contract we have a very good idea of what the job entails and how we will tackle it – the high level design will have been completed and outlined in the tender document.  But now there is a lot of detail that needs firming up and filling in – we have to make sure that we, and the client, are absolutely clear on what is expected of both parties in terms of deliverables, responsibilities, time scales, progress monitoring, quality control, testing and staged payments.

Initial internal meeting

The first stage is to have an internal meeting.  We’ll assign a Project Manager who generally has been involved in producing the quote and will stay with the job from start to finish.  If it’s a small job, the Project Manager may do it all themselves.

However, it may be that they will have to pull in others to help – the team expands as you go through the process and then it shrinks back again as you near completion.  At this meeting we’ll make sure that everyone involved knows what they will be doing.  And we’ll also map out exactly what we need from the client.

At the quotation stage  we’ll assign a Project Controller who will oversee the project.  This is a senior person within Zircon, generally Brian, the Managing Director, or Richard, the Operations Director.  They act as the client, asking awkward questions – in effect they play devil’s advocate, interrogating everything internally to ensure it has all been thoroughly thought through.

Start-up meeting with the client

Everyone from our side and the client side meets up to get a better understanding of how we see things rolling out.   We’ll introduce our team, explain what documentation we are going to produce, what programming languages and tools we’ll use, how we are going to monitor and audit the work.

It will also outline what we expect from the client and other third parties – their roles and responsibilities, what we need from them, as well as how we propose to work together in terms of points of contact and lines of communication.  From this we’ll produce a quality management plan that formalises everything that was agreed at the meeting.  Once this is signed off we can start work.

Set up a development and testing environment

Now everyone is agreed on what they are supposed to be doing we start the work.  We’ll set up the development environment – the client may have a specific methodology they want us to replicate and certain tools we must use, so we have to put all of that in place.  Or, they might be happy for us to choose our own environment, in which case there is little setting up involved.

Fairly early on in this process, as we get a more detailed idea of what the software has to do,  we also work with the client to write and agree the acceptance test specification (we may write it, they may write it, or we could share the task).  This sets out what tests the software has to pass in order to prove we have successfully met the requirements of the contract.

Managing the progress of the project

We’ll now start to do the work, according to the agreements that have been put in place.  The work will be broken into stages, with milestones and dates.  When we reach a milestone there will be a review, or we might have monthly reviews with weekly or fortnightly updates in between.

This review may happen face-to-face with our Project Manager talking the client through the latest stage of completed work, showing the software running on the hardware and getting feedback, or it could just involve sending a report and documentation for the client to evaluate and approve.   Sometimes we’ll need to call an additional project meeting to go over some documentation and to clarify the next stages.

We like to keep the client as involved as possible – if the process is open and communication regular, there is less chance of misunderstandings and disappointments.  Having said that, all communication should go through our Project Manager – if the client is talking to our developers directly, and every few hours, that only leads to confusion!

Testing, testing…

As the project progresses we’ll have to test everything, using the agreed spec.  The client may do the acceptance testing themselves, but probably with us assisting them, or we’ll do it with them witnessing everything.  It’s not the most exciting part of a project, but obviously vital – if you can spot any problems before the system is deployed it’s easier and less expensive to put right.

You also need to push it, to show it still continues to work when unusual demands are placed on it.  For instance, if a type of message is received that is somehow faulty, we need to test that this won’t crash the whole system – it has to deal with the problem and get onto the next message.

Job completed

When all the testing has been successfully completed we can prove we have done everything that has been asked of us – and get paid!  In fact the payments are usually staged throughout the project.

At the start we’ll be doing a lot of work that we won’t be able to invoice for a while, so there will be an initial payment at the beginning of the project to ensure we can manage our cashflow over the early stages and pay the wages etc.  Then there will be other payments at important milestones, with a final payment at the very end.

An approach that promotes peace of mind

We find that this rigorous and structured methodology works well.  It may not be revolutionary or ground breaking but everybody starts out with a shared set of expectations and a clear route map of where we are heading.  Things never go exactly as anticipated (life happens!) but if you have some sort of agreement and plan in place it makes it easier to keep all parties happy and the project on track.