Agile Methodology
Agile #
Agile methodology is less a concrete development process and more a set of development guidelines and philosophies.
It is an iterative development approach that embraces change and emphasizes collaboration and rapid delivery of products, prioritizing code, programs, and the software itself over documentation. Changes in requirements are inevitable, and responding to them is realistic. Traditional development processes involve lengthy design times and high overhead for rework.
It is important to respond to rapid environmental changes.
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
It is suitable for small and medium-sized business systems or e-commerce applications where requirements are prone to change.
Types of Agile Methodologies #
- Extreme Programming (XP)
- Pair Programming
- Test Driven Development (TDD)
- Scrum
Extreme Programming #

- Actively applying good practices
- XP Practices
- Small, frequent releases - rapid feedback and continuous improvement
- The customer is part of the development team
- People-centric work, not process-centric
- Pair programming
- Simple design and test-driven development
- Improving code quality through refactoring
Pair Programming #
- Two people form a pair, one codes, and the other reviews.
- Roles are swapped every 30 minutes.
- Advantages
- Shared responsibility for code
- Informal review performed
- Encourages refactoring for code improvement
- Productivity - Although two people develop as a pair, productivity does not decrease compared to developing individually.
Test Driven Development #
- Write test cases first, then develop code that passes them.
- Create test cases for each task.
- Requirements > Story Card > task
- Requirements are expressed as story cards, and story cards are broken down into tasks.
- The relationship between requirements and code becomes clear.
- Emphasizes integration testing and prevents errors from being introduced into existing software during integration.
Scrum #
- A project management framework/software development process framework focused on management within the Agile development process.
- Planning - Iteration of sprints.
- Project Planning -> Product Backlog: A prioritized list of requirements.
- Sprint Cycle
- A Scrum team of 3 to 9 members performs small projects to develop product increments within one month.
- Sprint Planning -> Sprint Backlog: Selects the list of requirements from the product backlog to be developed in the current sprint cycle.
- Daily Scrum meeting.
- Perform a sprint review and retrospective before the ongoing sprint cycle ends.
- Scrum Team Composition
- Development Team
- Product Owner: Creates and manages the product backlog.
- Scrum Master: Project manager, facilitates meetings, acts as an external communication channel.