Effective Remote Communication between Businesses for Accomplishing .NET Software Projects


Edited by Nina Miller

Global warming is an indisputable fact and the unfortunate by-product of lax industrial regulation and poor consumer education. Another discernible truth is global shrinking.  Conversely, global shrinking is a good thing. Human communication is no longer impeded by distance. We can conduct business through the massive communication networks available to us: phone, fax, IM Chat, modem, IPod, video, satellite, and yes, the web. These mediums shape the ways in which we play and work. Business has been revolutionized. The conventional office has been replaced by a computer and its accessories, offering a dizzying array of communication possibilities attached to points around the globe.  Because business interaction can easily be handled remotely,  we have access to limitless human resources and can successfully delegate work on a single project to contractors all over the world. The very idea of remote expertise is exciting and promising, allowing us to extend the capabilities of our business beyond its physical location.

But as much as remote expertise sounds like a panacea, there are built-in management challenges which must be addressed in order to succeed in the new paradigm. Most of us are comfortable managing in an environment where we can see, hear, and talk to the people directly.  Few of us are prepared to delegate a component of our business to cyber representation of a human being.  Let's take the case of the remote client and remote consultant group.  To ensure effective communication, punctual work, and successful completion of a project, a few basic rules must be followed by both parties.

On the Client Side

Because the client isn't sitting side by side with the consulting group on a day-to-day basis, the client must take the responsibility to supply detailed communication to the consulting group.  At a minimum, the following need to be provided:

Consultant Point of Contact - Each client should provide one person to as the contact who interfaces with the consultant. It is this person's job to oversee the consulting group, maintain communication, and report its progress to the client business. All interaction between client and consulting group is monitored by the contact. 

Detailed Requirements Spec - If the consulting group has all the project requirements up front, then theoretically, there should be less need for the remote consultant to interact with the client.  The more detailed the spec, the more likely the project will run smoothly.  The requirements spec generally does not include instructions for design or implementation.  That's what you are hiring the consultant to figure out.  The requirements spec needs to itemize the client's objectives and available resources..  It can also include a break down of the project's phases and a rough time frame for expected completion.

Contract for Statement of Terms of Work - The client should draft a legal document for the consulting group to sign stating the terms of work. This should include payment arrangements and the client's expectations for successful completion.  Details of the requirement spec can even be attached to the contract to ensure that the client‘s goals will be met.

Testing of Deliverables and Client Feedback

Although the consulting group will do some testing, only the client knows how they want the software to function.  As a client, try to resist the desire to tag on additional requirements as you are testing.  You initially want to have a working product for your business. Enhancements can come later.

On the Consultant Side 

Client Point of Contact - Each consulting group should provide one person to be the contact point for the client. It is this person's job to keep the client informed of what has been accomplished and any obstacles that are impeding the project's progress.   The client's point of contact must be diplomatic with the client at all times. More importantly, he must communicate effectively about the status of the project.

Project Plan - Time is always of the essence - the client invariably wants the job done yesterday.  Because consultants need to work within realistic time frames, a detailed project plan outlining the work involved to complete the project should be in place. Each step should include the man hours required to get the task done. The project plan should be negotiated with the client before the work starts so that realistic task completion dates are approved by all parties.

Status Report - The client point of contact should provide a status report of work in progress daily, weekly, or at certain pre-arranged intervals.  Even if there are problems, it is crucial that the status report keep all communication open (both good and bad).  Neglecting to communicate a problem is far worse than acknowledging the problem to the client because of the unknown quotient already inherent in remote interactions; if you make yourself unavailable, the client has no recourse and the client's anxiety about the state of the project may snowball. The status should include the time spent on particular pieces of the project plan. Remember that project plans are not perfect, so they may need to be adjusted periodically to reflect breadth of work.  Sometimes a task will be completed sooner than expected and the schedule can be compressed accordingly.

Interim Software Deliverables

Because the client cannot physically oversee your work, it is usually beneficial to show the client what you have completed rather than just telling him.  Contracting a job out to cyberspace can produce anxiety in clients who may feel a loss of control, and so nothing is worse than keeping them in the dark. Consultants who understand this dynamic and try to accommodate their clients by continually demonstrating progress will foster better and more productive relationships.

Documentation

You may think that the requirements spec is all you need for your documentation, but this is shortsighted. If you are a consultant working offsite, the code you deliver may be your last task. The last thing you want is for the client to come back long after the project has ended asking, "How does this piece of code work?" or "What does this menu item do?" It is in your best interest as a consultant to heavily comment your code, to deliver a design document, and to include a help file.  All of these items should be scheduled into the project plan.  If the client argues that they don't have the time for this part, explain that they will incur more expenses and frustration if these communication vehicles are not in place.

Conclusion

In our rapidly changing world, companies are modifying the way they conduct business in order to stay competitive. Often, this means reaching out to remote resources that are well suited to a particular project. A certain set of guidelines should be followed in order to work effectively with a remote resource.  We have discussed some of these, notably the importance of good communication between client and consultant. If both parties follow these rules, the project, and the experience, is likely to be successful; even if problems arise, both parties will be better equipped to resolve them.


Resources on C# Corner

Got a Software Project? Beware...

Estimating Project Cost and Payments


Similar Articles