Most endeavours that involve several people or organizations require coordination. This is mostly captured by the term Project Management. Traditional planning and top-down coordination have shown over the past decades their limitations, when facing changing requirements and they are confronted with detail-loving complexity in all processes. Most progressive corporate teams, especially in Information and Communication Technologies or associated fields, are using methodologies of Agile Software Development. This is an approach of project management that recognizes and facilitates evolution of requirements and solutions through the collaborative effort of self-organizing and cross-functional teams; constantly taking into consideration customers’ and users’ needs.
It has been shown that Agile project management is evenly beneficial for businesses outside of the classical Software industry, and it is getting popular in almost all areas. Nevertheless, many times Agile Project Management is superficially misunderstood with “ad-hoc” planning, or no planning at all. This is an unproductive path. Instead, new agile methodologies, around the existing principles must be elaborated, so these can be applied to different kind of topics, technologies and team compositions.
This article introduces to a minimal agile coordination methodology, that can be applied to much more, diverse and sporadic teams. Especially teams that require coordination for a fruitful collaboration of key stakeholders during a certain project, committed Open Source communities and generally teams, that want to spend the least necessary amount of time on meeting and coordinating, while still rely on solid agile principles to their workflow in order to benefit from aspects of adaptive planning, evolutionary development, empirical knowledge, and continual improvement. There must be a suitable balance between constructive measures and an overload of time spent by the team for meetings and planning.
There are three key elements to introduce successfully agile coordination for unconventional teams: Work in cycles or iterations, facilitate team collaboration, and encourage people to commit themselves to tasks.
All progress is made, tested, presented, and reflected on in a handable time span - usually two weeks is a good thumb rule, but it might be adapted to different circumstances. This allows to reduce the complexity of planning. A general high level plan of a whole project is still necessary, but the details are going to be addressed when it is their respective turn. Decisions on concrete implementation are made by the person actually doing the work. This gives responsibility to everybody in the team and, together with a dynamic of continual improvement, it is an empowering factor to leverage empowered and ever learning teams.
- Planning: Concrete planning of the tasks for the upcoming iteration needs to be done at the beginning of each cycle.
- Implementation (and testing): The actual teamwork to achieve the goal for each iteration.
- Presentation of results: At the end of each cycle the team presents together the achievements; this activity can also involve a wider group.
- Reflection: At the end of each iteration, team asks itself, what were positive and unconstructive phenomena and how to improve constantly. This exercise gives a space for also changing processes and building a common culture of organization.
The key for success of agile methodologies lies in facilitating the collaboration of the team. It is crucial that people understand to work for the same goal. This requires clear communication channels and and open transparency within the team. Members are seen as experts in their field. There are three recommendations to enhance collaboration in agile ways:
One cycle meeting: One main team meeting between each iteration cycle is a fundamental component. It allows to close the last iteration, with presenting the achievements and a round of reflection and can then transform into the planning and committing to the tasks for the next iteration cycle. This is going to be the main team encounter and must be interactive; everybody should take part in the conversations.
- Physical space: Meeting room
- Virtual space:
- Open Source solutions: Jitsi, Mumble
- Proprietary solutions: Hangouts, Skype
Communication channel: It is essential to provide one permanent and everybody-including communication channel. A common space for all kind of conversations, questions and call for help gives the base for human interaction and team identity in driving towards the common goals.
- Physical space: Daily stand-up meetings in the office.
- Virtual space:
- Open Source solutions: XMPP, Matrix, IRC
- Proprietary solutions: Slack, Skype
Board of tasks:
Every team member must be able to see at any given moment who is currently working on which task. A perfect solution is the Kanan board, for each iteration cycle, showing the tasks, who is working on which, and the status of achievement. Team members move tasks in different columns, whether these issues haven’t been touched yet (to do), in progress (doing), open for review and done.
- Physical space: A KanBan board on the wall
- Virtual space:
- Open Source solutions: Wekan, Gitlab
- Proprietary solutions: Trello, Github
3. Self-commitment and self-organization
One important ingredient is to give responsibility and empowerment to the team members. That means that everybody commits to work tasks themselves based on self-assignment. Implementers themselves estimate the effort and time needed for completion. Not the manager, but the team decides what is important and how the team with its resources is going to tackle and split the work. The team itself shall organize itself, but within itself. Decisions are taken together and emerge from inside the team.
In a nutshell – how to guide the process
Make sure you have a plan from the beginning, divide this plan into high-level tasks and a timeline for planned execution and calculation of resources. Bring these high-level tasks into the pool of discussion and elaboration (the board or issues queue of your supporting software tool) and constantly over time define them further on constantly over time together with the team.
Hold bi-weekly meetings with the whole team. Present what happened in the last cycle, and reflect on the team. Make always sure there are enough tasks broken down to be comfortably addressed within less than a cycle. In the meeting people can move these tasks, they are committed to work on, into the Kanban board. Make sure, there is always a person assigned to a task that is marked as “in progress” and make sure everything that is done, is going to be reviewed by another team member.
Repeat this dynamic, continuously evolving and improving as a team and as the individual taking part in it. Congratulations, you now have an agile team in unconventional contexts.