Technical assessment of a development team
30 March 2022
Our colleague Ferdinando Santacroce, with his background as a software developer, leads us to discover the Technical assessment of development teams.
One of the first things to do when starting to work with new teams in new companies is to establish a relationship of trust with people and create spaces for working together.
How can you start on the right foot?
During his meetup, Ferdinando Santacroce showed some useful approaches to getting to know (and to be known by) teams. It is crucial to build a stimulating environment from the first meeting where people feel comfortable sharing experiences and learning new concepts.
First exercise: the Solution Focused Retrospective
The aim is to know people and their roles, to understand where to start with activities to create a backlog of initiatives.
A first moment is devoted to a backlog built on the Solution Focused approach, and in particular on the Miracle Question.
We ask people to imagine what the situation would be like if the problems they think they have vanished overnight, to imagine in some way their preferred future.
“What is something we can aspire to?”
In this task, the team can be helped through questions. The aim of the activity is to prompt people to imagine their own change, without focusing too much on the obstacles but rather on the possible scenarios that lie ahead.
Once you have the image, the idea of this future, you can go deeper.
- What will be the first signs that tell you that something has changed?
- How will you know that this transformation has taken place?
- What will you be doing differently?
- How will others notice?
After a moment of telling and sharing what has emerged, the coach helps people to identify some initiatives that can be immediately applied, the first steps towards the future imagined by the participants.
This exercise is positive for both parties; it allows:
- the coach to establish the first contact with the team;
- the people in the team to have a greater awareness of their strengths.
Finally, it breaks down dynamics such as:
- The idea that the coach has “the magic wand that solves all problems”.
- “Crying walls”, those moments of sharing that turn into moments of venting.
- Appreciative Inquiry https://en.wikipedia.org/wiki/Appreciative_inquiry
- “Punta alla soluzione. Un approccio di coaching innovativo per favorire il cambiamento nelle persone e nelle organizzazioni”, a book on the Solution Focused Approach https://www.francoangeli.it/Ricerca/scheda_libro.aspx?Id=18717
- Team charter
Second exercise: the Competency Mapping
A brainstorming exercise first on activities, then on competencies and roles, until the phase of building the backlog of initiatives.
The objective is to enhance skills and allow them to be spread among the people in the team.
10 ACTIVITIES IN 10 MINUTES
The exercise starts with a question:
What are the activities you do in the company?
The basic principle is that everyone carries out activities, but there is and will remain unspoken knowledge, not very visible to people within the team and totally unknown to those who do not live the team’s activities on a daily basis.
This exercise, just by putting this information in writing, allows you to name this knowledge and think about possible associations.
After the 10 minutes of brainstorming, the next step is to bring out and talk about competences.
So, you can bring to light those activities, known or not, and create clusters for similar activities. From there, you can bring out roles, separating the skills and competences of individuals from their names (a dynamic that turns out to be a problem when there is a situation of competition of competences).
This step aims to lead people towards a self-assessment of their competences (what they already do, or what they do not do but could do, or what they already know how to do…).
It is not a question of giving a grade, but of making the distribution of competences in teams and companies evident.
In small groups, we then proceed towards a harmonisation of values, in order to share and discover together with colleagues common and complementary skills.
This tool allows to:
- achieve greater awareness of one’s own strengths
- identify critical points;
- discover with whom you can share skills;
- obtain a “database” to start the improvement process;
The coach recommends updating the matrix from time to time, “an excuse to think further and put new initiatives in place”.
Third exercise: the Self-Assessment Quiz
For this activity, Ferdinando was inspired by James Shore’s book “The Art of Agile Development“. In this book there is an exercise called “Assess your Agility“: an agility questionnaire whose questions are divided into sectors and from which you can generate a radar to understand the level of agility of the team.
In addition to this exercise, Ferdinando proposes two exercises as an alternative.
- The Nokia Test (http://jeffsutherland.com/scrum/nokiatest.pdf)
- The Scrum check-list (https://www.dropbox.com/s/qsitv2v30olqhms/Scrum-checklist.pdf?dl=0)
- The Agile Self-Assessment Game, by Ben Linders, link
- The Art of Agile Development, by James Shore, link
- BOSSA Nova Assessment, by Jutta Eckstein and John Buck, link
- The Custom Capability tool, to create your own assessment, link
But in practice, how can we understand the capabilities of the team at a technical level?
The incremental iterative approach allows to make changes to the product step by step, according to the customer’s requirements: instead of offering a definitive product that meets all needs only after the entire product has been built, it offers a basic product that meets the user’s primary need, so that they can start trying it out right away, and assess what secondary needs need to be prioritised.
A further consideration: by adopting this approach, the customer’s priorities may change and the final product may turn out to be different from what was initially imagined and requested.
Fourth exercise: Let’s work together
The basic principle is that people in a team do not always really work “together”. The aim of this exercise is to create an open environment for free discussion, learning to share and explain.
We start to think about coding, and highlight strengths and weaknesses.
Our coach recommends some techniques and strategies:
- Mob programming, to allow teams to work on the same project at the same time, place and on the same computer (article on this practice here)
- Kata: exercises aimed at deepening technical issues (e.g. OOP, testing, code smells, etc.), while continuing to make assessments free from the assessor-assessed dynamic.
- Object Callisthenics: a “free body workout”, with a few rules but leading people to run into common code design traps.
- Legacy Code: Refactoring Legacy code: a path that, starting from the definition of ‘legacy code’ leads to approach the extension and refactoring of existing codebases in a safe way. Reasoning on a graph where the axes are “complexity of logic” and “number of dependencies”, the first portions of code that can be addressed together in targeted workshops are then identified. The ultimate goal is to bring the curve of the time to write a test from its maximum value to its minimum value and thus extend the time to write production code, and thus release value.
Here is the link to the board with the notes https://miro.com/app/board/uXjVOJrieKg=/