2. Agenda
• Introduction
• What is Agile Methodology?
• Why Agile?
• Agile Manifesto
• Agile Methods
• What is Scrum?
• Components of Scrum
• Roles
• Artifacts
• Meetings
• Pros/Cons
• Q & A Session
3. Introduction
Classical methods of software development have
many disadvantages:
Huge effort during the planning phase
Poor requirements conversion in a rapid changing
environment
New methods:
Agile Software Development
Methodology
4. What is Agile ?
• “Agile” term means “Able to move quickly and easily”
• Agile methodology is an alternative to traditional project
management
• Agile software development is a group of software development
methods based on iterative and incremental development, where
requirements and solutions evolve through collaboration
between self-organizing, cross-functional teams.
5. Why Agile ?
• Helps teams respond to unpredictability through incremental,
iterative work measures, known as Sprints
• It promotes adaptive planning, evolutionary development and
delivery, a time-boxed iterative approach, and encourages rapid
and flexible response to change
• People-based rather than Plan-based: In an agile paradigm,
every aspect of development ( requirements, design, etc.) is
continually revisited throughout the lifecycle.
• When a team stops and re-evaluates the direction of a project
every two weeks, there’s always time to steer it in another
direction
6. Agile Manifesto
A Statement of Values
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
• http://www.agilemanifesto.org
7. Agile Methods
• Agile methods:
• Scrum
• Extreme Programming
• Adaptive Software Development (ASD)
• Dynamic System Development Method (DSDM)
• Test driven development (TDD)
• …
13. Scrum in 100 words
Scrum is an agile process that allows us to focus on delivering
the highest business value in the shortest time.
It allows us to rapidly and repeatedly inspect actual working
software (every two weeks to one month).
The business sets the priorities. Our teams self-manage to
determine the best way to deliver the highest priority
features.
Every two weeks to a month anyone can see real working software
and decide to release it as is or continue to enhance for
another iteration.
18. Product Owner Role
Define the features of the product
Decide on release date and content
Be responsible for the profitability of the product
Prioritize features according to market value
Adjust features and priority every iteration, as needed
Accept or reject work results
19. Scrum Development Team Role
Typically 5-10 people
Cross-functional
QA, Programmers, UI Designers, etc.
Members should be full-time
May be exceptions (ex.System Admin, etc.)
Teams are self-organizing
Membership can change only between sprints
20. Scrum Master Role
Represents management to the project
Responsible for enacting Scrum values and practices
Removes impediments
Ensure that the team is fully functional and productive
Enable close cooperation across all roles and functions
Shield the team from external interferences
36. Meetings - Daily Scrum Meeting
Is NOT a problem solving session
Is NOT a way to collect information about WHO is
behind the schedule
Is a meeting in which team members make commitments
to each other and to the Scrum Master
Is a good way for a Scrum Master to track the
progress of the Team
56. Pros/Cons
Advantages:
Customer satisfaction by rapid, continuous delivery of useful software.
People and interactions are emphasized rather than process and tools.
Customers, developers and testers constantly interact with each other.
Working software is delivered frequently (weeks rather than months).
Face-to-face conversation is the best form of communication.
Close, daily cooperation between business people and developers.
Continuous attention to technical excellence and good design.
Regular adaptation to changing circumstances.
Even late changes in requirements are welcomed
57. Pros/Cons
Drawbacks:
In case of some software deliverables, especially the large ones, it is
difficult to assess the effort required at the beginning of the software
development life cycle
There is lack of emphasis on necessary designing and documentation.
The project can easily get taken off track if the customer representative is
not clear what final outcome that they want.
Only senior programmers are capable of taking the kind of decisions required
during the development process. Hence it has no place for newbie programmers,
unless combined with experienced resources.