Agile software development is a set of development practices and methods based on iterative and incremental processes, where user requirements are implemented into solutions by self-organized, multifunctional teams. The software is delivered successively in a way that functionalities with the greatest business value for the user are developed first. Agile development implies an organized collaboration of all participants in system development and supports quick and efficient decision-making.
The Agile Manifesto introduced the concept of agility in software development in 2001. It consists of 12 main principles:
- Satisfying customers through early and continuous delivery of a valuable product.
- Dividing large chunks of work into smaller tasks that can be completed quickly.
- Recognizing that the best results come from self-organized teams.
- Motivating the people with the environment and support they need. And trust them – that they will get the job done.
- Creating processes that promote sustainable efforts.
- Maintaining a constant pace to complete the work.
- Welcoming changing requirements, even late in the project.
- The project team and the stakeholders meet regularly throughout the project.
- The team constantly improves on how to do things more effectively; they coordinate and adjust behavior daily.
- The progress is measured based on completed work.
- Constant search for excellence.
- Applying changes to gain a competitive advantage.
Scrum is one of the most used Agile project management methodologies. The roles in Scrum are: Scrum master, Product owner and the Scrum team. Scrum methodology has five very important components called:
- Sprint – a time period (usually 2-4 weeks) in which the team creates a new increment of the product.
- Sprint Planning – a meeting where the scrum team gets to know the scope of work to be done in the next sprint or phase.
- Daily Scrum (standup) – discussing what the team did the previous day towards the achievement of the sprint goals; what will be done that day to achieve the sprint goals; and what obstacles it’s currently facing that may adversely affect the achievement of the sprint goals.
- Sprint Review – an informal meeting attended by the development team, scrum master, product owner and stakeholders. The team gives a demonstration of the product and determines what is completed and what is not.
- Sprint Retrospective – This happens after the sprint review and before the next sprint planning. It is a maximum 3-hour meeting for 1-month sprints. A sprint retrospective is basically an “improvement” meeting held to find ways and means to avoid potential pitfalls.
Scrum Process
In this article, we discuss different aspects of the Scrum project management process, so you’ll be able to understand the agile best practices.
Effective Daily Scrum Meetings
In order to accomplish a successful Scrum project – effective daily Scrum meetings should be held. Effective daily Scrum meetings have the following features:
- The daily Scrum meeting has these objectives: to approach the project as a team, to inform about the status of the project, to identify the obstacles the team has come across, to set the day’s direction, and to improve the team cohesiveness.
- The meeting should be held in the same place and at the same time every day.
- Members should stand in most cases – this helps to keep the meeting short.
- All project stakeholders should attend the daily stand-up meeting.
- The meeting should be 15 minutes or less.
By obeying the above practices during your daily Scrum meeting, you will increase the efficiency of your team and improve the quality of your project by avoiding unnecessary and time-wasting meetings.
The Sprint and the Product Backlog
The Sprint Backlog and the Product Backlog should be well-organized different logs. The Sprint Backlog should contain the work you will work on during the Sprint and nothing else. If other tasks appear during a Sprint, then they should be put in the Product Backlog. You can deal effectively with your Sprint and Product Backlog – by following these tips:
- The Sprint Backlog should not be mixed with your Product Backlog. If you start putting items on your Sprint Backlog that should be on your Product Backlog, you will cause problems.
- In order to create and maintain your Backlog – You can use Excel or Jira/ Confluence. This way will enable you to prioritize your tasks easily.
- For that purpose, you can also apply one of the many project management software options, like Scrum Desk, to manage your backlogs.
- The Product Backlog should be reprioritized each time you add an item to it. It will save you efforts in the future.
Product Backlog
- You shouldn’t add more tasks to your Sprint Backlog, than can be completed during your Sprint. You will only disturb yourself and your team.
- An ID number can be assigned to each item on your backlog – this way you will keep track of tasks and stories, no matter what you call them.
- An estimate of how long it will take to complete an item (task) of your sprint backlog, should always be indicated.
- All parts of the Sprint Backlog stories (tasks) must be very specific.
By controlling your Backlog, you will save time and effort – and you can help maximize productivity by working on only the items that are important for your project.
Sprints / Planning Meetings
In the upper section, we talked about Sprint Backlog, Product Backlog, and Daily Scrum best practices. Sprints are the active time period where team members work on the items from the Sprint backlog:
- A list of highly committed team members should be engaged for the sprint.
- Clear goals for the sprint should be defined during the planning session. This will help you to focus on the sprint efforts.
- When you select the sprint backlog items, you will have to commit to them completely.
- The sprint time should be set to 15-30 days, the average for a sprint. If longer – that means you are trying to accomplish too much. If shorter – it means you may not have time to run the tasks developed.
- A sprint planning session should be held once your product backlog has enough organization and details. If you start a sprint planning session when you lack some details, then your project may face scope creep.
- The sprint planning meeting should take no longer (and no shorter) than 4 hours.
Agile Team
The crucial factor is the Scrum team – it can make or ruin your Scrum project. You should choose a team, not only for each member’s previous successes but also for the ability of the members to cooperate and communicate with one another. Here are some best Scrum team practices:
- Teams in Scrum are able to self-organize. If a team contains one or two idlers, it may be hard for the team to move forward on projects.
- Most Scrum teams consist of between six and ten people. However, with careful scaling, your Scrum project may consist of one hundred or more people.
- Good communication should be kept among team members by utilizing project collaboration software tools. This will enable everyone in the team to be on the same item, knowing what’s going on, and what needs to be worked on next. It will also allow the testers to have open access to new lines of code in software projects.