Author's Bio: Anton Mamaenko

Sunday, September 11, 2011

Roles of team lead, and manager in internal company communication

Summary

It is always confusing, when the question comes to difference between a team lead, and a manager in software development. Mainly it stems from the idea that the manager's primary activity is communication, whereas team lead is a purely technical role devoid of the need to talk much, and rather concentrate on programming.

I'd like to highlight several situations, where this division breaks, and communication is required from lead developer as well as technical expertise is required on manager's part.

Team internal communication

This is an obviouse case, and yet is often overlooked by proponents of purely technical role of the team lead. People in teams possess various levels of skills, and knowledge. When a lead devises a plan for work, and estimates the tasks by complexity, he or she must inevitably take those skills into account. If a team, for example, lacks a distinguished database engineer any database-related task would grow in complexity. Knowing who is best suitable for such endeavour is impossible if the team lead isolates himself from simple knowledge-sharing chit-chat with the colleagues.

A good manager can facilitate this process by organising regular team-meetings, or team-building events, and the team lead should rightfuly request them, and yet must take an active part in the intra-team communication.

Communication within the company

Except very small start-ups there are several teams working at a company simultaneousely. This potentially can strenthen up all teams, if they learn to callobarate. Another extreme would be all-destroying competition for available resources. This is where both manager, and team lead must work closely together. The manager would protect the team from deviation, he has all instruments for that - knowledge of company priorities, and ability to work out diplomatic solution in case of conflicts.

This alone would be a passive responce - eliminating unneccessary risks but insufficient for a between-team synergy to emerge. Team lead alone is capable of searching for experise, and technical solutions adopted in other teams which can speed up his own project. It can be done through communication with other leads, or again a chit-chat with the software developers. What particular tools other teams are using, what software development patterns - only team-lead can assess those, and possibly suggest adopting them with his team.

As in the case of intra-team communication the manager must facilitate such exchange of information, organise meetings, and track the progress in e-mail. The team-lead should rightfuly require this from the manager, and take full advantage of social gatherings.

Communication with the manager

This can often be the hardest situation, and demanding on team lead's part. As the manager doesn't possess a detailed knowledge of the development process he must rely on the technical lead for asserting all issues that may arise, and slow the progress or pose additional risks to the project. That means - the technical lead should often be a bad news bearer. This is psychologically hard, since technical people tend to blame themselves for mistakes, and try to rather hide them in hope to fix them sometime later. Sometimes it works, but much too often leads to hidden risks that might jeoparize projects in later stages.

Take unit-test coverage as a good example. All modern software development teoreticians agree that good unit-test coverage is crucial for a project in the long run, and yet pressing time pushes developers to hesitate, and rather concentrate on features only to get stuck on bug-ridden software later during refactoring and adding new features. For the manager it is impossible to propely manage priorities, identifying the most risky parts, and shifting efforts without team-lead properly communicating such issues.

Another example would be the tasks that require joint efforts of people from other teams. Such tasks most likely to appear, when for instance general company IT infrastructure needs modifications - setting up a build-server, or a version conrol software are the examples. The manager can take care of finding the resources, but tracking the progress, and looking for technical solutions in case of problems is impossible without active communication from the team-lead.

Conclusion

As of conclusion I would suggest that software development team leads communicate closely with their managers, keeping in mind that their experise, and knowledge should not be confined to them, and that even a dumbest of managers would gladly accept and didgest all the information that flows from the most valuable of team assets.

No comments:

Post a Comment

Search This Blog