0% found this document useful (0 votes)
16 views

SE CH 2

Agile is an iterative software development methodology that emphasizes adaptability, customer satisfaction, and rapid delivery of working software. It includes various models like Extreme Programming (XP), Scrum, and Feature Driven Development (FDD), each with unique processes and principles. While Agile offers advantages such as improved collaboration and customer satisfaction, it also has challenges like difficulty in effort estimation and potential project misalignment.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

SE CH 2

Agile is an iterative software development methodology that emphasizes adaptability, customer satisfaction, and rapid delivery of working software. It includes various models like Extreme Programming (XP), Scrum, and Feature Driven Development (FDD), each with unique processes and principles. While Agile offers advantages such as improved collaboration and customer satisfaction, it also has challenges like difficulty in effort estimation and potential project misalignment.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

AGILE

DEVELOPMENT

SOFTWARE ENGINEERING

PREPARED BY : RICHA RAWAT


WHAT IS AGILE?
• Agile is an iterative software development methodology that helps
developers create and deliver applications more quickly and efficiently.

• Able to move quickly and easily.

• Able to think quickly and clearly.


Agile Process Model

• Agile SDLC model is a combination of iterative and incremental process models with
focus on process adaptability and customer satisfaction by rapid delivery of working
software product.
• Agile Methods break the product into small incremental builds.
• Every iteration involves functional teams working simultaneously on various areas like
planning, requirements analysis, design, coding, unit testing, and acceptance testing.
• A simple meaning of Agile is -> ready to move in quick and easy way.
•Agile is being very popular now a days in software development area.
•It includes constant stakeholder collaboration and continues improvements at each phase.

•There are some Terminologies


•Continues Planning
•Learning and Improvement
•Early Delivery
PRINCIPLES TO ACHIEVE AGILITY
The Agile Alliance defines 12 agility (agile spirit) achieve agility.

1) Customer Satisfaction and Valuable Software


2) Dynamic And Development
3) Working Software is delivered Frequently
4) Corporation between business people and developers
5) Motivate the project developers
6) Face to face communication
7) Attention to technical design
8) Simplicity
9) Need to self organizing
10) Maximum result and good hard work
11) Regular Analysis and work on improving
12) Better Productive Environment
Advantages

• Customer satisfaction by rapid, continuous delivery of useful software.

• Customers, developers and testers constantly interact with each other.

• Daily cooperation between business people and developers.

• Continuous attention to technical excellence (quality) and good design.

• Regular adaptation to changing circumstances.


Disadvantages
• In case of some software, it is difficult to estimate the effort required at
the beginning of the software development life cycle.

• The project can easily get “off track” if the customer representative is not
clear about final outcome, that they want.

• Only senior programmers are capable of taking the kind of decisions


required during the development process.
Characteristics (quality)AGILE SOFTWARE
PROCESS

• An agile process must be adaptable(modifiable)


• It must be incremental(In each development the increment should contain some
functionality that can be tested and verified by customer.)
• Requires customer feedback(that we used to create the next increment of the
process)
• Software increment must be delivered Short span of time
• Must be iterative(so that each increment can be evaluated regularly).
(Iterative meaning design of a product or application is improved by repeated review
and testing.)
AGILE PROCESS MODELS

1) Extreme Programming (XP)


2) Adaptive Software Development (ASD)
3) Dynamic Systems Development Method (DSDM)
4) Scrum
5) Feature Driven Development (FDD)
6) Crystal
1) EXTREME PROGRAMMING (XP)
• Extreme programming (XP) is one of the most important software development
frameworks of Agile models.

•It is suggested by Kent Back in 2000.

•It is used to improve software quality and responsiveness to customer requirements.

• It uses the concept of object-oriented programming.

• A developer focuses on the framework activities like planning, design, coding and
testing.
XP values
Following are the values for extreme programming:

1. Communication

•Building software development process needs communication between the developer


and the customer.

•Communication is important for requirement gathering and discussing the concept


and to get the important feedback.

2) Simplicity

• XP focuses on the current needs instead future needs to incorporate in the design .

• The simple design is easy to implement in code.


3) Feedback

• The feedback for the software product cab be obtained from the developers of the
software ,customers, and other software development team.

•Feedback guides the development process in the right direction.

4. Courage/Trust
In every development process there will always be a pressure situation. The courage
or the discipline to deal with it surely makes the task easy.

5. Respect
Agile process should inculcate the habit to respect all team members, other stake
holders and customer.
EXTREME PROGRAMMING (XP)
1. XP – PLANNING
• Planning starts with the requirements gathering which enables XP team to
understand the rules for the software.

•Here instead of making larger document user stories are written by the customer in
which what they need is mentioned.

•The customer and developer work together for the final requirements.

•The developer breaks down the user stories into small release and a plan for
releasing small functionalities is prepared.

•Divide the development into small iteration. iterative development helps in quick or
agile development.
2. XP – DESIGN
• The XP design follows the 'keep it simple' principle.

•Simple design always takes less time than the complex design .It
is always good to keep the things simple to meet the current
requirements.
3. XP – CODING

•Most essential requirement of XP is customer availability. In Extreme programming


the customer not only helps the developer team but it should be a part of the project.

•The coding is started after the initial design work is over.

•After the initial design work is done, the team creates a set of unit tests which can test
each situation that should be a part of the release.

•The developer is focused on what must be implemented to pass the test.

•Two people are assigned to create the code. It is an important concept in coding
activity, this will increase the quality of coding.
4. XP – TESTING
•Validation testing of the system occurs on a daily basis. It gives the XP team a
regular indication of the progress.

•All the code must be tested using unit testing before its release.
Face book, Google, Twitter, and
Microsoft are all real-life examples
of extreme programming and have
successfully used them to grow
their businesses.
2) ADAPTI V E SOFTWARE DEVELOPMENT
(ASD)

•Adaptive Software Development (ASD) was proposed by Jim High smith.


•This is a technique for building complex software systems using iterative approach.
•ASD focuses on human collaboration and self-organization.
•It is derived from rapid application development.
•ASD “life cycle” incorporates three phases namely:
1. Speculation
2. Collaboration
3. Learning
ASD Life Cycle
The adaptive life cycle is divided into the following three main phases.
SPECULATION
•In this phase the adaptive cycle planning is conducted.
•In this cycle planning some types of information is used:
•Customer’s mission statement
•Component Based Focus
•User Time Boxing
•Delivery date, budgets etc.…
•Basic requirements of the project
COLLABORATION
•In this, collaboration among the members of development team is a
key factor.
•For successful collaboration and coordination it is necessary to
have following qualities in every individual
•Assist each other without resentment
•Work hard
•Possess the required skill set
•Communicate problems and help each other
LEARNING
• Emphasize is on learning new skills and techniques.
• There are three ways by which the team members learn
• Focus groups
• The feedback from the end-users is obtained.
• Formal technical review
• This review is conducted for better quality.
• Post-mortems
• Team analyses its own performance and makes
appropriate improvements.
3) DYNAMIC SYSTEMS DEVELOPMENT
METHODS (DSDM)

•In this agile method, the project deadline is met using the incremental
prototyping approach.
•This is an iterative development process.
•Various phases of this life cycle model
•Feasibility study
•By analyzing the business requirements and constraints the
viability of the application is determined
DYNAMIC SYSTEMS DEVELOPMENT METHODS
(DSDM)

•Business study
•The functional and informational requirements are identified and
then the business value of the application is determined

•Functional model iteration


•Produces a set of incremental prototype that demonstrate
functionality for the customer.
•Design and build iteration
•Each prototype is revisited during the functional model iteration to
ensure that the business requirements are satisfied by each
software component.
•Sometimes, If possible design and build activities can be carried
out in parallel
•Implementation
•The software increment is placed in the working environment.
•If changes are suggested or if end user feels it incomplete then the
increment is placed in iteration for further improvement.
4) SCRUM

•This model is developed by Jeff Sutherland , Ken Schwaber and mike


beedle in 1990.
•Scrum is an agile process model which is used for developing the
complex software systems.
•It is a lightweight process framework.
•Scrum is simple to understand
•Scrum framework help the team to work together
SCRUM workflow activities
SCRUM DEVELOPMENT ACTIVITIES
1. Backlog
• It is a list of project requirements or features that must be provided by the
customer.
• The items can be included in the backlog at any time.
• The product manager analyses this list and updates the priorities as per
the requirements.

2. Sprint
• These are the work units that are needed to achieve the requirements
mentioned in the backlogs.
• Typically the sprints have fixed duration or time box (of 2 to 4 weeks).
• Thus sprints allow the team members to work in stable and short-term
environment.
3. Meetings/Daily Srum
• There are 15 minutes daily meetings to report the completed activities,
obstacles and plan for next activities.
• Following are three questions that are mainly discussed during the meetings.
• 1) What are the tasks done since last meeting ?
• 2) What are the issues that team is facing ?
• 3) What are the next activities that are planned ?
4. Srum Masters
5. Product Owner
Advantages

• Freedom and Adaption


• High- Quality, low-risk product
• Reduce the development time up to 40%
• Srum customer satisfaction is very important
• Reviewing the current sprit before moving to new one

Disadvantages

• More efficient for small team size


• No changes in the sprint
5) FEATURE DRIVEN DEVELOPMENT
(FDD)
• Originally Peter Coad suggested this approach for object oriented software engineering.

• Stephen Palmer and John Flesing has extended and enhanced Coad’s work.
• In FDD, the feature means client valued function.
• It is an iterative and incremental software process model.
• Various phases in the FDD life cycle
1. Develop overall model
• The high-level walkthrough of scope and detailed domain walkthrough are conducted to
create overall models.
2. Build feature list
• List of features is created and expressed in the following form
• <action> the <result> <by for of to> a(n) <object>
• For Ex. “Display product-specifications of the product”
3. Plan by feature
• After completing the feature list the development plan is created
4. Design by feature
• For each feature the sequence diagram is created
5. Build by feature
• Finally the class owner develop the actual code for their classes
6) CRYSTAL
•Alistair and Highsmith suggested the crystal family of agile methods.
•In this method, a set of methodologies are defined which contains the
core elements that are common to all.
•This method also contains roles, process patterns, work products and
practice that are unique to each.
•Thus the crystal family is actually a set of agile processes that are
useful for different types of projects.
•The agile team has to select the members of the crystal family that is
most appropriate for their ongoing project and environment.
THANK YOU

You might also like