Project Management – Composition of a Dev Team

agileproject-managementteamwork

I'm in a team of fifteen people and the team is in transition after a few changes of management. The current line of management is pushing for an agile approach to developing software but without providing any lead. The team suffers from a big communication problem both inside and with other departments in the company who are our customers.

Management has recently created a sub-team composed by the technical specialists. They have great knowledge of the code base but have been in the company for up to ten years and are not so open to change. There goal is to provide technical direction.

I've joined the team in the last six months. I have a good six years experience developing different software but don't have the same knowledge of the code base as others. I have good communication and organisation skills and can relate to the customers easily.

The company's focus is to deliver innovative new products, but based on my observations we break down in project organisation (we seem to lose focus of the customer, get buried in the code base and misinterpret requirements).

I think I can provide direction in delivering projects with a good focus on the customer, however I don't hold the same technical expertise as the technical specialist team. I also think I'm the only one with previous agile experience in the team.

I've got two questions:

  1. Is there room in a dev team for technical specialists and those that are good at delivering and making the customer happy, i.e the two working in tandem with each other?

  2. Do you need to be a technical specialist to lead a dev project team?

Best Answer

A team is a set of people where each one may have his own purpose based on his own strong points and competencies. There is nothing wrong in a team where technical specialists and people who are oriented more to communication than to technical aspects work side by side.

Of course, it requires a good organization and a mutual respect. There is a risk that people with large technical background and a good knowledge of the codebase will use their codebase knowledge and their technical skills to consider themselves superior, smarter or whatsoever, and try to force everyone to agree with their decisions.

Some situations can make this risk higher. Examples:

  • having one "guru" in a small team and constantly treating him as the best of the best. For example if a developer has an opinion, and the guru has another opinion, the wrong thing for the management (project manager, director, etc.) is to say: "he's a guru, so do what he says and shut up" (or, in a more polite form: "He has enough experience and he knows the codebase well, so trust him").

  • having a separate team of technical specialists (is it actually the case in your company?), for the same reason: if you isolate a group of people and consider them publicly as the best of the best, they may start to neglect the opinions of people who are not part of the team.


As for your second question, you need to have enough background to lead a team of developers. Otherwise, not only you will fail to understand what are they doing, but they will also have a bad impression of being lead by an inexperienced person, and will avoid asking you for questions.

This being said, no, you don't have to be a technical specialist. It's a benefit, but if I have to choose between a person who has good communication skills but lacks some technical ones, and a guru who have no communication skills at all, I'll always choose the first one.

Related Topic