All of us start somewhere. This could be where you start to learn about Agile – the one essential approach which is now almost synonymous to software development. If this is your first time working in a project which incorporates Agile, it might be a little overwhelming getting used to the jargons and process involved. Worry not, many have done it before you and so can you! I’ve tried to break down the whole manifesto to the essential pointers so you can walk in at work on your first day and not be a fish out of water.
Agile and Scrum
“Scrum” and “Agile” seem to be used interchangeably when you first enter this world, but there is an important distinction. Agile refers to a set of methods and practices which includes collaboration, self-organization, and cross functionality of teams. Scrum is a framework that is used to implement Agile development.
A good analogy would be the difference between a recipe and a diet. A vegetarian diet is a set of methods and practices based on principles and values. A recipe for a potato burger would be a framework you can use to implement your vegetarian diet.
What is Agile?
Agile is an incremental, iterative approach to delivering high-quality software with frequent deliveries to ensure value throughout the process. It places a high value on individuals, collaboration, and the ability to respond to change. The developers who created agile understood the importance of creating a model in which each iteration in the development cycle “learned” from the previous iteration.
Who are Agile?
So who are these people who are agile? The beauty is that any given person can be in one or more roles, and they can also change their role over time.
The Stakeholder is someone who’s financially impacted by the product and is more than just the end user.
The Product Owner is the voice of the customer and represents the stakeholder. They convey the needs and desires to the delivery team. They are responsible for prioritizing tasks and answering any feature related questions that the team may have.
The Team Lead aka the Scrum Master facilitates communication, empowers the team to self-optimize its processes, ensures that the team has the resources it needs, and manages issue resolution in a timely manner.
The Architecture Owner is the person who owns the architecture decisions for the team and who facilitates the creation and evolution of the overall solution design.
Now, let’s look at the processes that are involved in following agile, simply put, these are the events that will take place in a team to help them manage their work better.
- Release Planning – Release plans contain a release schedule for a specific set of features. The product owner creates a release plan at the start of each release.
- Iteration Planning – This meeting typically happens monthly which is the assumed length of the sprint. Team members gather at the beginning of the iteration aka sprint to identify the work to be done during that iteration. This is referred to as self-organization. Typically, in a sprint planning, the PO explains the features that have been prioritized for the coming sprint. Once the stories have been shared, the technical team meets and breaks down the work and assigns the task to each other along with estimates in hours or days. These estimates can be challenged by other team members as well and they need to be justified.
- Daily Planning aka stand up – Development teams begin each day with standup meetings to plan the day. These meetings are generally 5 to 15 minutes long. Developers update their task progress, typically not entering too much in detail, if needed they meet after the stand up. We’ve covered the introduction to agile in this article. In the next piece, we will cover some more