1. What is Agile?
- Agile is a mindset and framework for software development focused on flexibility, collaboration, and customer satisfaction.
- It emphasizes iterative development, where requirements and solutions evolve through collaboration between cross-functional teams.
- Based on the Agile Manifesto:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
- Scrum:
- Roles: Scrum Master, Product Owner, Development Team.
- Artifacts:
- Product Backlog: List of features/requirements.
- Sprint Backlog: Tasks for the current sprint.
- Increment: Completed and potentially shippable product.
- Ceremonies:
- Sprint Planning.
- Daily Scrum (Standups).
- Sprint Review.
- Sprint Retrospective.
- Kanban:
- Visual management using a Kanban board.
- Key principles:
- Visualize workflow (columns: To Do, In Progress, Done).
- Limit work in progress (WIP).
- Focus on continuous delivery.
- Extreme Programming (XP):
- Focuses on technical excellence and best practices.
- Key practices:
- Pair Programming.
- Test-Driven Development (TDD).
- Continuous Integration (CI).
- Refactoring.
- Lean Software Development:
- Originates from Lean manufacturing.
- Key principles:
- Eliminate waste.
- Build quality in.
- Deliver fast.
- SAFe (Scaled Agile Framework):
- Designed for large enterprises.
- Combines Scrum, Kanban, and Lean at scale.
- User Stories: Small, manageable descriptions of functionality (e.g., “As a user, I want to reset my password so I can access my account”).
- Story Points: Unit to estimate the effort required for a task.
- Burn-Down/Burn-Up Charts: Visual representation of project progress.
- Velocity: Amount of work a team can complete in a sprint.
- Lead Time: Time taken from task creation to completion.
- Cycle Time: Time taken for a task to be actively worked on.
- Cumulative Flow Diagram: Tracks work items across stages.
- Faster time-to-market.
- Improved customer satisfaction.
- Flexibility to adapt to changing requirements.
- Better collaboration and team communication.
- Difficulty in scaling for large organizations.
- Resistance to change from traditional processes.
- Lack of proper documentation in some cases.
- Scrum/Kanban Boards: Jira, Trello, Azure DevOps, Monday.com.
- Collaboration Tools: Slack, Microsoft Teams, Zoom.
- CI/CD Integration: Jenkins, Circle CI, GitHub Actions.