Sei sulla pagina 1di 37

AGILE DEVELOPMENT

PROCESS
What is agile development?
• Agile means “the ability to respond to changes” – changes from
requirements, technology and people
• It is an iterative and incremental process
• Direct collaboration with customers
• Each iteration lasts from one to three weeks
• Delivers multiple software increments
• Engineering actions are carried out by crossed functional teams
• A team of software developers published the agile Manifesto in 2001,
highlighting the importance of the development team,
accommodating changing requirements and customer involvement
Agile MANIFESTO
(PRINCIPLES OF AGILE PROCESS MODEL)
Agile Manifesto
1. Our highest priority to satisfy the customer through early and
continuous delivery of valuable software
2. Welcome changing requirements, even late in development
3. Deliver working software frequently from a couple of weeks to a
couple of month, with a preference to the shorter time scale
4. Build projects around motivated individuals: give them
environment and support they need, and trust them to get the job
done
5. Agile process promote sustainable development, the sponsors,
developers and users should be able to maintain a constant pace
indefinitely
Agile Manifesto
6. Business people and developers must work together daily
throughout the project
7. Working software is the primary measure of progress
8. The most efficient and effective method of conveying information
to within a development team is face to face conversation
9. Continues attention to technical excellence and good design
enhance agility
10. Simplicity: the art of maximizing the amount of work not done is
essential
Agile Manifesto
11.the best architectures, requirements and designs emerge from
self-organizing teams
12.At regular interval, the team, reflect on how to become more
effective, then tunes and adjust its behavior accordingly
Agile methods
• The most widely-used Agile methodologies include:
• Extreme Programming (XP)
• Agile Scrum Methodology
• Lean Software Development
• Crystal
• Dynamic Systems Development Method (DSDM)
• Feature Driven Development (FDD)
When to use agile ?
Extreme
Programming-XP
Extreme programming -XP
Extreme programming -XP
Extreme programming -XP
XP features

■ XP is the most suitable for:


■ Small and medium size projects
■ New technologies
■ Projects with unclear requirements
■ Risky projects

■ XP improves skills by cross training

■ No more than 20 developers in a team

■ Using of XP in life-critical projects is questionable


Extreme programming -XP
• A spike is a product-testing method originating from Extreme
Programming that uses the simplest possible program to explore
potential solutions. It is used to determine how much work will be
required to solve or work around a software issue.
The 12 Practices
XP is based on 12 Practices
• The Planning Game
• Small Releases
• Metaphor
• Simple Design
• Testing
• Refactoring
• Pair Programming
• Collective Ownership
• Continuous Integration
• 40-Hour Workweek
• On-site Customer
• Coding Standards
1 - The Planning Game
• Planning for the upcoming iteration
• Uses stories provided by the customer
• Technical persons determine schedules, estimates, costs, etc
• A result of collaboration between the customer and the developers
2- Small Releases
• Small in terms of functionality
• Less functionality means releases happen more frequently
• Support the planning game
• Frequent feedback
• Tracking
3 – Metaphor
• Try to design a system that is easy to explain using real-life
analogies.
• Your systems are complex, try to use a design, where the
relationship and interactions between sub-components are clear
and resemble something that people with common sense have
already seen.
4 – Simple Design
• Keep it simple
• Always use the simplest possible design that gets the job done.
• The requirements will change tomorrow, so only do what’s needed to
meet today’s requirements
• Do as little as needed, nothing more
5- Testing

• XP teams focus on validation of the software at all times

• Programmers develop software by writing tests first,


and then code that fulfills the requirements reflected in
the tests.

• Customers provide acceptance tests that enable them to


be certain that the features they need are provided.
6 – Refactoring
• Changing how the system does
• Improves the quality of the system in some way
• Programming team look for possible software improvements and
make these improvements
7 – Pair Programming
• Two Developers, One monitor, One Keyboard
• One “drives” and the other thinks
• Switch roles as needed
• This helps develop common ownership of code and spreads
knowledge across the team.
• This practice ensures that all code is reviewed as it is written and
results in better Design, testing and better code.
8 – Collective Ownership
• The idea that all developers own all of the code
• No single person "owns" a module.

• Any developer is expected to be able to work on any


part of the codebase at any time.
9 – Continuous Integration
• New features and changes are worked into the system
immediately
• Code is not worked on without being integrated for
more than a day
10 – 40-Hour Week
• The work week should be limited to 40 hours
• Regular overtime is a symptom of a problem and not a long term
solution
• Multiple consecutive weeks of overtime are treated as a sign
that something is very wrong with the process and/or schedule.
11 – On-Site Customer
• Development team has continuous access to the customer
who will actually be using the system.

• Gives quick and continuous feedback to the development


team.
12 – Coding Standards
• All code should look the same
• It should not possible to determine who coded what based on the
code itself
SCRUM METHODOLOGY
What Is Scrum?
• Scrum is an agile process that allows us to focus on delivering the
business value in the shortest time.
• It rapidly and repeatedly inspects actual working software. It
emphasizes accountability, teamwork, and iterative progress toward
a well-defined goal.
• The Scrum Framework usually deals with the fact that the
requirements are likely to change or most of the time not known at
the start of the project.
Scrum master and scrum team
ADVANTAGES
Quiz 2
1. Define SRS.
2. Enlist extreme programing practices
3. What is the difference bw product backlog and sprint backlog?

Potrebbero piacerti anche