Agile is the ability to respond and adapt to change. Software development is done iteratively, where requirements and solutions evolve through collaboration between self-organizing and cross-functional teams. Agile development enables teams to deliver value faster, with greater focus on quality and predictability. Scrum and Kanban are two of the most widely used Agile methodologies.
Do read the Agile Manifesto when you get started with Agile. Understanding the 12 Principles behind Agile is an important first step.
Agile Mindset Advantages
Iterative Development: Development is typically done iteratively in short (2-4 weeks) sprints. The objective is to have a potentially shippable product at the end of each sprint.
Incremental Development: Requirements are not detailed at the beginning, but enhanced incrementally with each sprint. Focus in NOT on documentation, but getting the work done. With frequent demo’s to stakeholders, the requirements can be improved upon iteratively. This ensure there are no surprises at the end of the release cycle. This feedback loop is the most important aspect of Agile that makes it stand out over other traditional models like Waterfall.
Face-to-face Communication: Agile recommends co-location as face-to-face communication works the best. In today’s COVID-19 hit world, this is difficult and teams need to use technology to ensure efficient and effective usage of tools can be a good alternative
Focus on Quality: Usage of CI/CD (Continuous Integration/Continuous Development) tools, Test-Driven Development (TDD), Pair Programming (when needed), Domain-Driven Development, Code Refactoring are all concepts used actively in Agile to ensure the end output is of the best possible quality.
Agile Concepts
Requirements are captured using a different concept in the backlog.
Epic. These are “large”requirements that get eventually broken down into smaller requirements (stories). As you can see from the image above. Epics are a good way to organize the requirements and create a hierarchy of the same. Epics help teams break their work down, while continuing to work towards a bigger goal.
Story. User stories are a few sentences in simple language that outline the desired outcome. User Stories should be written from a customer perspective. They typically follow a simple template:
As a <user type>, I want <some goal> so that <some reason>.
Refer the article on User Stories by Mountain Goat Software that gets into further details.
Stories can be split further into Tasks and Subtasks (refer image above). Each of the task or sub-task can be assigned to individuals to eventually get the story completed (“done”).
Task. A task or a sub-task is a small item of work that helps complete a story.
Agile Tools
There are several web-based applications available that can be used for running your Scrum or Kanban boards. These are the two most popular Agile concepts. Tools like Atlassian JIRA, Wrike, Trello (now a part of Atlassian), Rally, Backlog, are some examples.
Image Credits: [1]