If you manage a team of engineers, it’s crucial to hire talent with versatile and complementary skill sets that will enable them to collaborate effectively and help each other reach their potential.
That means it’s important to bring on a combination of specialists – front-end or back-end engineers with specific expertise – and generalists who are able to navigate full-stack development needs with ease.
Specialists v. generalists: what’s the difference?
Creating a team structure that balances a few key subject-matter experts with a broader pool of generalists can help establish a seamless workflow in which your SMEs can guide your generalists with technical support and training and your generalists can jump in across many areas of the project to eliminate roadblocks and improve developer velocity.
Understanding team productivity
When assessing productivity and team contributions, consider these metrics:
- Team performance and velocity For specialists, time may not always be spent building features – they may spend a portion of their time contributing technical documentation to your knowledge base or providing code review and clean-up. Look at overall speed in building features and improved performance as an assessment of your specialists’ contributions to the team – it’s often harder to evaluate individual performance because of all the dependencies that specialists have with other teams, but you can understand the value of their contributions based on the overall performance of the team.
- Code quality Instead of considering code volume, focus on the quality. Is your development team crafting elegant, efficient code that compiles and runs quickly? By focusing on code performance rather than lines of code, you can measure how efficiently your generalists and specialists work together in embracing industry best practices.
- Time to productivity How quickly are team members able to begin contributing meaningfully to a project? When there is downtime, are they able to switch to another project that needs their support? Measure the amount of time that developers spend waiting for roadblocks to be cleared – ideally, they should always be able to find a way to contribute to a project (generalists) or to the organizational knowledge base at large (specialists).
- Upskilling For generalists in particular, it’s important to look at new skills learned over the course of each project. Have they gained proficiency in new programming languages to the point where they can take a lead role in a future project? Upskilling is important for specialists too, especially as they navigate changes in technology trends and integration needs that will enable them to guide their generalist teams.
Use knowledge sharing to enable better performance
Across the board, all of these metrics can be improved with access to a transparent knowledge-sharing platform, where team members can share knowledge, resources, and technical documentation, and ask for support when needed in an asynchronous communication format.
An open platform for knowledge sharing helps both generalists and specialists:
- Eliminate roadblocks Generalists can search the platform for resources related to new-to-them technologies and gain access to best practices and code libraries. Specialists, who might work across several projects simultaneously, can use the knowledge base to get up to speed quickly on new projects and understand the best way to demonstrate value. Rather than planning meetings or hunting for the right person to answer a question, your team members can instantly access all of your institutional knowledge in one place and get back to work quickly.
- Improve productivity When generalists hit roadblocks and ask SMEs for help, that can hurt your specialists’ productivity and take them away from valuable work. Using an async format enables team members to find their answers within the existing knowledge base in many cases, eliminating the need for further support. If they can’t find the answer, they can tag relevant team members and departments so that the SMEs who are free to respond can jump in to help, while those currently engaged in a project won’t be pulled away from it.
- Upskill quickly By sharing knowledge throughout the organization in an open platform, both generalists and specialists will be able to draw from cross-departmental resources to identify the best ways to solve problems, with code libraries and technical documentation for all of the programming languages and frameworks that your organization uses. A knowledge-sharing platform enables your team members to get all of the templates, code snippets, and other resources they need to progress quickly with new skills and projects, optimizing team performance.