First version originally published as: Boosting a Team's Skills
Team leaders, in any industry, should be encouraging the skill development of their teams. In software teams, developers are usually motivated to learn new skills and often times have to learn new skills when starting a new project, or working with a new team. Based on the experience of our developers and team leaders, there are a few well regarded best practices commonly used to help bring team members up to speed or help them develop personal or profession skills required for their general knowledge.
So, how can you be sure your new team members turn into future leaders? What follows is a compilation of best practices and techniques that will ensure skill development and project success.
[DON'T MISS: Upcoming DevOps Technology Trends]
Encourage knowledge sharing
Knowledge sharing within software engineering includes many different activities and topics, but more generally, it is important to work with your team to encourage this idea of collaboration from the beginning. There are a variety of fun and engaging ways to share knowledge, try giving a talk in your local community or a scheduling a tech meeting, like a lunch & learn, open space, etc. These activities force you to clarify your knowledge on the topic in order to effectively communicate to others the main components, it also helps you go further in depth. Encouraging your teammates to give short talks about a topic is an exciting challenge for many. Inherent within knowledge sharing are the following activities:
- Pair programming: This technique is basically peer reviews taken to the extreme. With pair programming, teammates work together on the same task at the same workstation. One of them typically has more knowledge than the other about the technologies and/or the business project being used in the project. The less experienced developer gets up to speed more quickly than doing it by him/herself through trial and error. We find this technique very helpful when we need to onboard people to an existing team very quickly, or when we need to acquire technical knowledge from the client. We set up pair programming sessions that allow a full immersion in the development methodology, the technology stack and the business model, according to the team's needs.
- Peer reviews: When certain team members demonstrate the particular skills and experience required for the project, one of the most powerful techniques to spread the knowledge across the team is to do peer reviews. This technique allows less experienced developers to get feedback on their work and the reviewers to strengthen their coaching skills. Peer reviews take things one step further by cementing relationships among the group, allowing them to develop an atmosphere of openness, honesty and challenge.
Training on demand
As the initial requirements of the project become clear and the technology stack is identified and detailed, you'll need to match existing team skills with the capabilities that the project needs. In order to start the first sprint and/or iteration with a team that can handle and exceed the client's expectations, team members need to be trained according to those specific needs. What we usually do is contact our in-house experts that already know the technology well. One of our strengths is being able to quickly identify those individuals and connect them to the right teams and projects.
[A helpful tip: It is a good idea to keep track of people's skill in your company, and not just professional skills. You never know when you might need a photographer to take photos for a last minute project. It's incredibly beneficial to understand the expertise of your employees in order to connect them to the right projects and training programs.]
In order for your team to be successful, you'll need to form strong, open lines of communication. However, these pathways also go a long way in ensuring individual and team training and skill development efforts are successful as well. Encouraging people to ask for help achieving their personal career goals will create an environment in which people are inspired to innovate and seek out new skills. Knowing they have the support of the team leader will further promote a cohesive, innovative team. Understand the types of skills your team members want to develop, for example:
- Interpersonal (communicating well with other team members, collaboration, problem solving, etc)
- Professional (Negotiating, decision making, project management, etc...)
For a team to acquire new skills it takes a combination of providing them with the appropriate tools and techniques, and encouraging their personal will to improve as software developers. You need to provide an adequate and stimulating environment that can be leveraged by all types of developers with any kind of backgrounds.
About PSL: PSL specializes in Agile software development. By utilizing a nearshore model and engaging in long-term partnerships, PSL works closely with clients to solve complex technology challenges using the latest tools and resources. With offices in Colombia, Mexico and the US, PSL has customers all over Latin and North America, ranging from tech startups to Fortune 500 companies.