At Spatial Vision, we adopted an agile approach to the design and delivery of client projects many years ago. The sprint cycle provides regular opportunities to assess the direction of a project throughout the development lifecycle. We find this approach increases customer satisfaction as they see rapid, continuous delivery of demonstrable outputs. Furthermore, customers, developers and testers constantly interact enabling better collaboration and continuous attention to technical excellence and good design.
But how do you uplift a team’s capability in an agile environment? Things move quickly and constantly, as the team’s main focus is on completing tasks sprint by sprint. This can cause a team to lose focus on improving the team’s technical expertise as a whole. An agile team that is not continuously improving its capability does not remain agile much longer. Below is a structured approach to help drive uplift in a team’s capability. This approach provides a framework for the teams ownership as they define their own goals and self-organise to achieve them.
“If everyone is moving forward together, then success takes care of itself” — Henry Ford
1. Set Goals
Skilled and capable teams get motivated by the opportunity to do cool and exciting work. If you still use KPIs and monetary incentives then you are going about it the wrong (old) way. A much better way is to use the intrinsic motivational factors. Let the team members set goals for themselves. Goals that will provide your team members with an opportunity to learn, grow and improve. Let the team members achieve their goals by giving them autonomy, mastery and purpose.
2. Use a Skills Matrix
Create a skills directory. List all the critical skills based on the your tech stack. I have found an online tool skill-base to be very easy to use and effective tool to create a skills directory.
Create assessment criteria as a guide for the team members for self-assessment. This will give team members the same understanding of requirements for high/medium /low (in our case black-belt/red belt/white belt) skill level for a particular skill.
Example of a skills directory
The team performs a self-assessment of their skills based on the assessment criteria. The team members also select the skills they are most interested in improving based on their goals. This creates a team view of the skills level and interest level.
The self assessment should be repeated every 3–6 months to keep track of the progress of the team skill level.
3. Hold Tech Talks
Set up tech talks at regular intervals for skills improvement and training. This should be based on the self assessment process and company’s needs.
Team members that have high rating in particular skill can lead the tech talk providing training and knowledge sharing in that skill-set. For example, back end API developers can run tech talks for front end developers and vice versa. This will provide an opportunity for all team members to take part in their own improvement and improving the team as a whole.
4. Invest in R&D
Run regular R&D projects. R&D projects are great to keep up to date with latest market trends, compare technologies and get a deeper understanding of the latest technical landscape. From my experience this is by far the most effective way to excite and motivate a technical team. Developers love to do R&D.
R&D projects have an added benefit that it provides continuous improvement by maturing and growing the technology stack. It also enables us to develop more innovative solutions, more efficiently for our clients.
5. Provide Project Opportunities
Provide opportunities to team members to work on different projects; projects that use a technology that the team members are keen to improve on. Use pair programming and code reviews. This will enable the lower skilled developers to improve at a faster pace.
Pair programming and code review also develop common understanding of the code quality.
6. Attend Training and Conferences
Use various training methods to up skill team members if required. Use online training such as egghead or instructor lead training if necessary. Opportunities to attend professional conferences can be a good way to improve team member skills levels.