WHAT IS AGILE?
Movement. Change. Adaptation.
It’s the model enabling developers to respond to change or sudden problems without much disruption.
Agile Software Development embraces the best practices based on the principles of ‘Agile Manifesto’ – promotion of efficient collaboration between cross-functional teams with a single goal – to successfully deliver the product or service.
WHAT IS AN AGILE DEVELOPMENT TEAM?
The main part of any agile process is the development team but it takes some time and effort for a team to become THE Agile team.
A Scrum team is a cross-functional fusion of front-end developers, back-end developers, designers and testers. The ideal Scrum team consists of 5-6 people.
ScrumMaster (or a project manager) needs to ensure that Agile team is on the right track during each stage of the process but his role reduces once the Agile team grows and becomes more efficient.
A Product Owner is another important role – it is usually an executive or a shareholder with a vision on how the end product will fit into the business long-term strategy. This person is in charge of direct communication, informing the team on major developments and implementing high-level changes if necessary.
The best way to turn the vision into a tangible result is having a well-trained team.
QUALITIES OF AN AGILE TEAM
Agile team understands the dynamics of change so they are able to adapt to sudden situations – that is the ‘code’ for any Agile team.
Change comes along with the (user) feedback which is crucial in Agile development so Agile team has to be quick and sharp to integrate feedback.
Agile team has to keep the contact with shareholders – their top quality is that they’re able to closely listen to what needs to be done and act on it swiftly.
Common process is to do two-week sprints (as an optimal time to code, test and get feedback on some feature/s).
Unified team with a single goal – to deliver a set of features after each sprint.
The Agile team grows to work independently by following prioritization and organizing the work from ‘to do’ to ‘done’ tasks for the most visible results.
As it is always easier to learn from your peers than tutorials, Agile team becomes able to solve problems, make decisions and come up with innovative solutions.
Having goals helps Agile team to move forward and stay on the right track.
Being Agile means efficiency and automation – there are many Agile tools but using automation tools such as Jira is a must.
Agile includes having a few important meetings during the spring:
- Planning (sprint) – the meeting should provide structure, set expectations and define the backlog for the upcoming sprint.
- Review and retrospective – this meeting is held to make sure that the work being delivered is at a consistent quality. Peer and manager review take place before the tasks get completed.
- Daily standups – daily meeting with focus on a discussion on what was done yesterday, what they’re working on today and any questions that come up during the meeting.
All those meetings ensure that all team members clearly understand their own role and what needs to be accomplished.
No matter if the team has no clear acceptance criteria for each feature or cannot remove the obstacles along the way, they still have to get the work done.
Basically, the Agile team is adaptable to any kind of situation whether ideal or the worst case scenario.
The team must be willing to work outside their expertise but not so much far from it – it doesn’t mean that they have to work in areas they have no idea about.
It simply means that the people are willing and able to expand their knowledge in a specific area, e.g. if someone is skilled with the database, he/she can try to write GUI components.
STAGES WHEN BUILDING AGILE DEVELOPMENT TEAM
If you want to build an Agile team, you must be aware that it takes time and effort – the team goes through different stages to become Agile team with common goals and proper processes.
Psychologist Bruce Tuckman came up with the model ‘Forming, Storming, Norming and Performing’ listing growth stages of an Agile team and displaying the most important things to understand them better.
This stage is the very beginning of an Agile transformation – it is crucial and helps people to get familiar with each other and their work, find useful information and set up rules.
Forming stage is about preparation and setting up ground rules like outlining the tasks, allocating tasks, creating schedules and organizing the work etc.
The leader plays a crucial role here to clarify team’s responsibilities and roles.
Being in a team is similar to being a part of a family – this is the stage where the majority of teams fail as here people start to push the boundaries defined in the forming stage plus it’s not rare that team members’ different working styles can come into conflict.
Basically, this stage is reserved for defining the workload, organizing goals and guidelines that each member should follow so to achieve the common goal.
In this stage, it is the best practice to brainstorm ideas and potential solutions to the key issues the team may have.
The Norming stage serves to develop a strategy for achieving the goals – it enables people to resolve their differences, learn to appreciate their team members’ strengths and respect the team authority.
The entire team should be focused on defining the best ways to work together along with developing shared values.
By the end of this stage, the team members should start appreciating each team member and his/her strengths and inputs and to start working together as a cohesive unit.
The last stage is reserved for Performing – the team members have already become confident and able to work together easily on intertwined tasks.
When a team reaches this stage, it means that they find it easy to communicate with each other as well as to coordinate tasks and duties between them effectively.
This is THE ONE stage all Agile teams strive to attain.
BENEFITS OF AN AGILE TEAM
If you increase the confidence of the team it’ll result in higher motivation.
The team realizes that the company cares about their personal development and progression and becomes willing to invest their effort and time into it.
The most important thing is that the team gains trust in each other hence creating a sense of belonging.
The only way to reach the high level of good communication is when the team members feel confident enough to express their concerns and ideas – this will enable the group of team members to learn new ways of working together.
Different environment, different tasks and different people push the team members to be more creative and use their imagination and think outside the box when finding solutions.
If implemented properly, it will encourage the team to to apply such approach when solving a problem to their everyday job.
Plus, this type of creativity also develop problem-solving skills of the team as they learn to solve problems together and also learn which skills each team member adds to the team.
When the team works together for a while, they get to know each other and hence they become more efficient.
They waste less time on repairing the errors of other team members as they already get the idea who has high skills and in which area. The work is then allocated to the person with the right skills for it thus reducing the time spent on solving a single issue.
Although it seems like a routine, it will improve your procedure and increase your productivity.
Better people relationships
If you had any experience with teaching, you’d know that the icebreakers are the best way to introduce the lesson topic and get people to relax.
It’s the same with an Agile team as well – there are plenty of games and activities where people are required to organize in order to complete the tasks successfully. Some of the most popular games for Agile teams are White Elephant, Battlefield, Buy a Feature and more.
With these games, people must work closely together and the result is developing relationships more quickly and with much more fun.
Statistics say that Agile projects are 28% more successful than traditional projects.
Switching to Agile development is a very good idea but it requires time, effort and input from all team members as well as the company itself.
It has been proven that when the team members learn from each other, it makes the entire process of Agile transformation much easier and more pleasant.