Many software projects fail to deliver on-time and on-budget and a factor in that is normally inefficient project communication. Studies have shown that software teams that consistently deliver on-time and on-budget communicate in an effective manner. These teams stay in contact constantly, but wisely use each other’s time during the communication process and are careful not to waste other people’s time. Below are some tips for enhancing project communication when working in software development projects:

  1. Set up an online repository for documentation – For effective communication, all your project documents should be online, up-to-date, and available at everyone’s finger tips. This includes requirement documents, detailed designs, test plans, project plans, status reports, user acceptance plans, post mortem documents, etc. Having all of these documents at everyone’s disposal ensures that everyone is working on the same set of deliverables. Many groups usefully solve this problem by setting up a department Wiki that acts as a convenient location for storing and updating important project information such as documentation.
  2. Specify Clear Roles and Responsibilities – For effective communication, everyone on the team should know what their role is and what they are accountable for. Each role should be documented during the initial phases of the project and every team member should sign off on their responsibilities. Post these in your online documentation repository.
  3. Monitor Employee Performance – Each employee should have defined goals and should be measured against their goals monthly or quarterly (depending on project duration). Goals should be specific, measurable and achievable. Progress to goals should be based on objective measurement.
  4. Progress Reports – Progress reports should be created weekly. This can be as informal as creating a weekly status report for management review or as formal as creating reports using a project planning tool. Consider using a tool for this, some good ones are Software Planner and Microsoft Project.
  5. Make Decisions based on Facts – All decisions should be objective and should not be self-serving. Decisions should be based on facts, performance and in the spirit of improving overall team performance.
  6. Project Tracking should be done Online – All phases of the Software Lifecycle should be managed online, preferably via the web. This includes managing of requirements, tasks, issues, defects, test cases. sharing knowledge with discussion forums and your document repository.
  7. Be Careful of People’s Time – It is good to have periodic meetings, but the presence of solid project tracking tools eliminates many of the long-winded meetings that teams have. Team members are most productive when they know their roles, responsibilities and have a way of showing progress online. This can greatly reduce the number of face-to-face meetings that are needed. (Thanks to Steve Miller of Pragmatic Software for insights into these issues.) Gregg Kellogg