“How do I get my remote software development team to be more productive?” It is something we all want to do, be more productive. One observation I have made with distributed co-located software development teams (i.e. more than one team located in more than one geographical location) is there can be an attitude of: “Do as I say, not as I do”. This can come from the team that works at headquarters or any team that is working in a multi-team situation. This situation can apply to both in-house teams in multiple locations as well as if outsourced teams are involved.
We know that all teams working on the same application/product should have the same goal; to make the application the best that it can be and provide the best service to the company’s customers. What can affect this goal is perception that one team is not living up to that goal, i.e. not being as productive as possible. And what can affect productivity is the knowledge that there are different rules for different teams, or more specifically the enforcement or said rules. The rules I am talking about related to productivity may be rules for design, level of design documents, coding standards, conducting peer reviews, commenting, documentation, etc. I am making the assumption that there is one set of rules for development for the entire system, which most likely there is, every company strives for this. But productivity, let alone motivation, can go down real quick if one side sees that they have to follow the rules and another team does not.
It can be hard enough, but not impossible, to make distributed teams feel like they are one team and working towards the same goals, but when one side sees clearly (and in software development it is not hard to see concretely the differences) that another team is not held to the team coding standards (whether they be team specific standards or industry standards), or testing standards or documentation or commenting standards, etc., motivation goes out the door. If everyone is co-located, we tend to more easily enforce standards across a team, but it is an easy thing to let it lapse when there are several co-located teams in multiple locations. It is easier to dismiss one team as not being productive, and to not delve in to why that may be occurring.
The fix to this issue is simple. Make sure all team members are living up to the standards the team and the company have set for themselves and for the application and system that is being built and supported. There is never any excuse for one team to get away with not following standards because it is felt they have to push some changes through at the last minute always, for example, and therefore never have time to follow the standards. In software development, what team ever has all of the time that they would like? No team ever does. If it was truly the case where a last minute fix needed to go in, go back and make the necessary updates to meet coding standards, documentation standards, etc (although most teams would let it slide, for the good of the team, if they saw that this was an emergency situation and rarely occurred). Having one team do their own thing, and tell the other teams, well “Do as I say, not as I do”, doesn’t work for teams the same as it doesn’t work for the leaders and managers of teams. Follow the same rules for all team members, no matter where they are located, and distributed teams will work much smoother!