What is Agile?
Agile is an approach to software development that uses iterations of the software to release new features rather than releasing it all in one big release. The difference between Agile and any other iterative development model is that it gives value to everyone that is involved ranging from the customer to each individual developer on the team.
The team is self-forming and there are no leaders assigned to the team as this comes out with each person’s personality. Agile also includes some of its own twists on the iterative development models, some of this include things like: a backlog, epics, user stories, tasks, daily scrum, sprints, and sprint review/demo.
What is a sprint?
A sprint is a timeline in which your team will develop a few chosen features that you think are important to implement at that current stage of development. These features will consist mostly of user stories and tasks since they are broken down more into a reasonably completable amount of work. Sprints are derived from the Agile philosophy which states that you should deliver working solutions incrementally. Each sprint should bring your project or product closer to completion and refining the focus of your project.
What is a backlog?
A backlog is a list of all the features your team plans to implement throughout the entire length of the project. More detailed, it consists of epics, user stories, and tasks which are broken down in that order. Firstly, your team would come up with the major features of your software and these would become your epics for the entirety of the project. These epics are then broken down into smaller tasks called user stories. User stories are the smaller features of the overarching epic that your team has come up with. Once you have these broken down and assigned to someone to develop, that developer can break them down into tasks to make it easier for them to understand what they need to do.
Putting it all together.
Now that I have introduced the main ideas around the Agile model, how can we put this all together to make it effective? Well, firstly you start with implementation planning. You decide what you want to accomplish for the sprint and you bring those into this sprint’s backlog. In Agile, teams are self-forming, so most of the time people will step-up and take tasks that they feel comfortable completing in the given time period. Each user story that is brought in is given a number of “story points.” Now, depending on how long your sprint is, a story point can mean different things. Most of the time, one story point is a single day and typically increases using the fibonacci sequence (1, 2, 3, 5, 8, 13, 21, etc.). The team will decide, collectively, how many story points the story should be. After planning, you break off and develop your stories you were assigned and at the end of the sprint, you have a demo! This demo will include all the things that are completely finished and tested within the sprint and be shown to the customer for acceptance. This cycle then continues until you have completed all the desired tasks the product owner has requested.
If you want more information take a look at the Agile manifesto here.