The article is based on the Agile is Human tutorial by Olivier Denoo
Since the beginning of IT development and up until now, stakeholders in IT projects have been complaining that the outcome products contain too many bugs, are not user-friendly or that they do not match business needs. The other commonly-raised issue is that development is perceived as too expensive, too complex or that it takes too much time. Because of these complaints and since people don’t like making irreversible decisions, Agile methodologies were born. Approaches, standards, norms, methods, and techniques were conceived to address the above‑mentioned problems.
Why good teamwork is essential
Even though Agile methodologies have been developed, IT professionals still fail to make their customers happy at times. One of the reasons for it is that in the past, the only customers used to be IT professionals as well. Since then, a lot has changed – now frequently, customers are people from outside of the IT industry. Because real achievements are not made by individuals but by teams, good teamwork is the key to the project’s success, and there is a need to tear down the wall between the customer and the development team, as well as between the team members. People need to understand each other; a common language and denominator for business and technology has to be developed.
It is true that bad technology can make a project fail and nowadays, there are no manuals that can solve every problem; in Agile methodologies, there is also not much documentation. But even technology that is perfectly well-suited for a given project, as well as copious documentation and voluminous manuals are not enough to make it successful. Since teams are built out of individuals who work together in order to reach a common goal, improving teamwork is essential. On top of hard skills, soft ones are necessary, as well as some knowledge on psychology and communication because we use our minds in our work. We need to know how to engage team members in their work; we also need to be aware of how other people think – for instance, a good tester has to be able to imagine how the application can be misused by the end user, as well as to come up with a solution on how to put the user back on the right track.
Because of constant social changes, today everything is blurry – for instance, it is not even known who precisely a software tester is: A business analyst? A test automation expert? For this reason, communication-related problems are still present in IT projects. And since Agile is based on cooperation, communication is very important and is one of the key project success factors. In this blog post, some common communication pitfalls will be described, including their causes and example solutions, which are meant to improve teamwork in Agile projects.
How workshops can improve teamwork
In order to tackle many of the above-mentioned issues, various kinds of workshops can be organized, as they can be beneficial to IT projects for many reasons. They make people engaged, which is when they deliver. They also encourage differences and out-of-the box thinking, and they make it easier for people to come up with ideas, especially innovative ones; they also increase the project’s agility. The most beneficial ones tend to be those during which every person has to share their opinion, as they are more conducive to coming up with new ideas and solutions. Finally, workshops can be one of the means to prevent a situation in which an application unusable for users is developed, resulting in project failure.
Workshops enabling open communication
The first kind of workshop is about making people communicate openly, as common intelligence and knowledge-sharing is always an added value in a project. Example workshops:
- Catch the peanut: This workshop is about discussing some difficult issues in the project that everyone knows about but doesn’t speak of. It may prevent the so-called Jesus-Driven Development, in which people hope that problems that are not spoken of will resolve themselves on their own, the result of which can be very troublesome. During the workshop, everyone has to write two or three peanuts (i.e. preoccupations) related to the project on post-its. The post-its have to be swapped and read aloud by team members in turns, starting with I’m worried about…. Because peanuts are anonymous (one has to make sure that they can’t be easily linked to their authors by e.g. the post-it color), those difficult issues can finally be discussed openly. Each topic has to be discussed until it is clearly understood by everyone. One has to remember that the time for each peanut has to be limited, and that peanuts have to be prioritized. Finally, one needs to note that peanuts can’t be people and that the discussion has to be stopped for a while if it gets too emotional. For each peanut, further action needs to be taken (i.e. action items have to be created and assigned) because without feedback, people will lose their motivation to discuss problems.
- Like it or Not: During this workshop, each team member writes three things they like and three things they dislike about the project or the product on post-its. The topics are prioritized, e.g. by means of colored stickers. Then, the perceptions are reviewed by the group and discussed, resulting in possible improvements and action items. The workshop can prove very helpful when some team members are shy, as frequently, such people think a lot but they don’t share their opinions, even if they can prove valuable for the project. The workshop can also be helpful in preventing the so-called Abilene paradox, in which the team decides to take some action that none of the team members is in fact in favor of, as he/she assumes that he/she is the only person in the team against it, and thus keeps silent. Finally, one has to remember that the list of topics can’t be too long, the topics have to be general enough and that the discussion can’t get too emotional.
Workshops improving mutual understanding
The next kind of workshop can make people understand each other better. Example workshops include:
- If I were U: During this workshop, everyone has to describe his/her schedule and the tasks and activities they usually perform at work. Then, the group tries to guess whose schedule it is. Thanks to the workshop, team members get to know each other better and understand each other more, especially if they have different roles in the project (e.g. tester, developer, team leader, etc.). Thus people also learn how they affect each other’s work, which can also increase the project’s velocity.
- Personas: During this workshop, teams of 4-5 people create personas depicting customers and/or the end users of the application they are developing. Then, the personas are discussed by the group. This can lead to a better understanding of the customer, and thus to the improvement of the product’s usability, which is conducive to the project’s success.
- Geopolitics: A workshop that can prove useful when multiple teams are working on a given project. During it, each team is given a map on which key elements defining the team are placed (e.g. exchanges with other teams, the team’s needs, as well as its responsibilities, activities and resources). For instance, testers sell tests and buy testable code. Then, the maps of all teams are put together and discussed. Thanks to the workshop, teams can understand each other better and thus, their cooperation can get smoother. In addition, it can turn out that some activities that are performed are not in fact needed by anyone, and thus they can be discontinued.
Workshops helpful in envisioning the project’s future
Then, there are workshops that can make everyone understand the direction in which the project is going. Examples of workshops which can prove helpful in envisioning the future are the following:
- Magic Wand: During the workshop, the team has to define a problem for which they don’t know the solution yet. In turn, each team member takes the wand and says what they would change if the were a wizard. Then, the group chooses the preferred spell and identifies what it needs in order to build it (e.g. knowledge, people, etc.), which results in an action plan for the problem in question. It has to be noted that the workshop is the most suitable for small problems.
- Roses and Chrysanthemums: During the workshop, the group is divided into two teams, Roses and Chrysanthemums, both of which are asked to envision the future three years ahead. Roses have to make a list of actions that will make the project succeed; Chrysanthemums are to list the key project failure factors. Then, the visions are compared and conclusions are drawn.
- Stairway to Heaven: This workshop is suitable both for teams and individuals. The person/group has to define their current situation (i.e. the bottom) and twelve steps that separate them from the top (i.e. heaven). Then, the stairways to heaven are presented in turn and discussed by the whole group. This is conducive to the achievement of goals by individuals and whole teams.
A workshop building common identity in a team
The final kind of workshop is one that makes it easier for the team to build a common identity – it is Our coat of arms. During it, the team has to define its values, beliefs, goals, and tasks, as well as a motto. It needs to draw from its experience (i.e. the team’s best and worst moments). The key to the workshop’s success is sincerity. Then, the ideas are discussed and a final coat of arms and motto are defined. This workshop can increase the team members’ engagement in the project, as it can make them feel more a part of a team with shared goals, instead of just individuals working on a given project.
To sum up, Agile methodologies and good practices, etc. are not enough to make a project successful in the eyes of the customer. The key factor is good teamwork. Because teams are made out of people who differ and are not perfect, various issues, notably related to communication, may arise. Factors such as open communication, mutual understanding, common vision of the future and group coherence play a significant role in the group’s cooperation. For this reason, holding a workshop devoted to the improvement of any of these factors is likely to improve the cooperation of virtually any Agile team, resulting in higher effectiveness in the project and better product quality.
Software Test Engineer