Agile Team Performance
Whether you are working in an agile methodology or not, your team will experience performance issues that will impact the team deliverables as the project unfolds. During the time I have worked in IT projects, from developer to team lead roles, I have experienced several of these issues, that can be traced to the same set of problems.
OutSystems projects are no exception, and the agile methodology is used to suppress those issues in order to improve the team performance and deliverables. In this methodology is likely that some scrum principles are adopted and therefore a scrum retrospective is done at the end of each sprint. This is one of the most important meetings in scrum, as it is the perfect opportunity for the team to raise all the issues (performance or not), that happened during the last sprint, and try to solve them on the next sprint.
The performance issues that arise in a team are commonly due to the following reasons:
Lack of communication
Although this seems to be an obvious issue, at the beginning of the project is common to find severe communication issues, either between the client and the team or between the team members themselves. To avoid this issue as early as possible, all project stakeholders should be clear on whom is the responsibility regarding which subject and which communication channels should be used.
For example, a developer or the customer itself might not know to whom he should address a given question or a topic during a sprint, leading to an excess of emails and misinformation. Therefore, the Customer, Engagement and Delivery managers roles and responsibilities should be clearly defined, since they will be the main contact point between the development team and the customer.
Meetings overload
This is often the result of the lack of communication. As the project progresses and the flood of project requirements starts to increase, without a clear role definition, everyone invites everyone to their meetings whenever a decision needs to be made.
In this situation, Engagement and Delivery managers should align between themselves and the customer on which meetings should a given team member (customer or not) attend to, so that each person can have time to focus just on the right topics.
Work overload
It happens when only a small subset of people gets all the work, either due to bad management or simply because that subset of people solves the problems faster.
In either case, this is not the way to work, since something might happen to those people, like getting sick or going into vacation and the team cannot be fully dependent on them. Therefore, at least two people should understand about a given topic, either on management level or technical level, so that one can easily replace or simply help the other.
Team size and composition
Most agile teams, like in OutSystems, begin with a small number of people and might grow bigger as the project unfolds. As this happens, the delivery efficiency becomes a growing problem since work relations and work flow will be changed as well.
As an example, when someone enters to a team, there is a ramp up that must be made regarding business and technical topics, to that person. This will lead to more time spent by the delivery manager on coaching that person, instead of keep helping the other team members.
Therefore, if every bit of knowledge that the delivery manager has about the project is spread across the team, then the coaching task to that new team member will have less impact in team performance, since some other person in the team can help on the coaching process.
This article does not answer to all performance issues that can appear within an agile team or intends to provide the ultimate solution for them, since every team and customer is different for each project. And although some people have higher responsibility than others in the project, every person in the team is responsible for the performance and deliverables in it.