Agile software development methodologies - kirillsats/FirstAppBuketov GitHub Wiki
The aim of the lesson:
The aim is to familiarise you with different software development methods: the Iterative/Incremental approach and the Waterfall method.
The Iterative/Incremental approach is a development method in which a system is built incrementally in small, iterative steps.
Agile software development methodologies are a set of principles and practices for developing software in a more flexible, iterative, and collaborative way. The main goal of Agile is to deliver high-quality software by emphasizing customer collaboration, quick responses to changes, and focusing on individuals and interactions over processes and tools.
Agile methodologies are a response to traditional, more rigid project management approaches (like Waterfall), which often do not adapt well to changes and the fast pace of modern software development. Key Characteristics of Agile:
Iterative Development: Software is developed in small, manageable chunks (iterations or sprints), typically lasting from 1 to 4 weeks.
Customer Collaboration: Regular feedback from stakeholders or customers is incorporated throughout the development process to ensure the software aligns with their needs.
Embracing Change: Agile encourages adapting to changes even late in the development process, allowing teams to respond quickly to new requirements or market changes.
Cross-functional Teams: Agile teams are self-organizing and composed of members with different skills, ensuring the ability to deliver complete software features.
Frequent Deliverables: Working software is delivered at the end of each iteration, allowing teams to demonstrate progress and gather feedback.
Popular Agile Methodologies:
Scrum: One of the most widely used Agile frameworks, Scrum organizes work into sprints, with roles such as Product Owner, Scrum Master, and Developers. It includes key events like Sprint Planning, Daily Standups, Sprint Reviews, and Retrospectives.
Kanban: A methodology focused on continuous delivery and visualizing the workflow. It uses a Kanban board to track tasks as they move from one stage to another during execution.
Benefits of Agile:
Quick response to changes in requirements.
Frequent delivery of working software, allowing for faster feedback.
Improved communication within the team and with customers.
Greater flexibility and adaptability in uncertain and changing market conditions.
Agile methodologies are widely used in software development but can also be adapted for other types of projects that require flexibility and the ability to quickly respond to changes.