0% found this document useful (0 votes)
18 views54 pages

002SE Unit 2 Uploadpptx 2025 02 05 13 17 40pptx 2025 02 14 10 11 08

The document provides an overview of Agile Development in software engineering, detailing its principles, methodologies, and frameworks such as Scrum, Extreme Programming (XP), and Adaptive Software Development (ASD). It emphasizes the Agile Manifesto's focus on collaboration, customer feedback, and adaptability to change, contrasting it with traditional waterfall methods. Key principles include customer satisfaction, frequent delivery of working software, and self-organizing teams that promote effective communication and continuous improvement.

Uploaded by

YASH JOTANGIYA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views54 pages

002SE Unit 2 Uploadpptx 2025 02 05 13 17 40pptx 2025 02 14 10 11 08

The document provides an overview of Agile Development in software engineering, detailing its principles, methodologies, and frameworks such as Scrum, Extreme Programming (XP), and Adaptive Software Development (ASD). It emphasizes the Agile Manifesto's focus on collaboration, customer feedback, and adaptability to change, contrasting it with traditional waterfall methods. Key principles include customer satisfaction, frequent delivery of working software, and self-organizing teams that promote effective communication and continuous improvement.

Uploaded by

YASH JOTANGIYA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 54

Software Engineering

Unit – 2 Agile Development


Contents
 SDLC: Agile Method
 Manifesto
 Various Agile Modelling Techniques
 Scrum, Scrum Reference Card, LSS (Large
Scale Scrum)
 XP
 ASD
 Crystal
2
Agile Method -
Introduction
• The word ‘agile’ means,
 Able to move your body quickly and easily.
 Able to think quickly and clearly.
• Agile Methodology is a people-focused, results-focused
approach to software development that respects our rapidly
changing world.
• It’s centered around adaptive planning, self-organization,
and short delivery times.
• It’s flexible, fast, and aims for continuous improvements in 3
Agile Method

• The aim is to deliver the working model of the software


quickly to the customer.

• In software engineering, Agile is an iterative and flexible


development approach that prioritizes collaboration, customer
feedback, and adaptability.

• “Adaptability” refers to the ability of development teams to


respond and adjust to changes in requirements, priorities, and
circumstances throughout the project lifecycle.
4
How Agile Method
Works?
• It works by first admitting that the old “waterfall” method
of software development leaves a lot to be desired.
• The process of “plan, design, build, test, deliver,” works
okay for making cars or buildings but not as well for
creating software systems.
• In a business environment where hardware, demand, and
competition are all swiftly-changing variables.

5
Agile Manifesto

• A team of software developers published the Agile


Manifesto in 2001, highlighting the importance of the
development team, accommodating changing
requirements and customer involvement.

• The Agile Manifesto states that − We are uncovering


better ways of developing software by doing it and
helping others do it.

6
Agile Manifesto

• Through this work, we have come to value

 Individuals and interactions over processes and tools.

 Working software over comprehensive documentation.

 Customer collaboration over contract negotiation.

 Responding to change over following a plan.

• That is, while there is value in the items on the right, we value
the items on the left more. 7
Agile Process

• In 1980’s the heavy weight, plan based software development


approach was used to develop any software product.

• In this approach too many things are done which were not
directly related to software product being produced.

• This approach is rigid, that means if requirements get


changed, then rework was essential.

• Hence new methods were proposed in 1990’s which are


known as agile process.
8
Agile Process

• The agile processes are the light-weight methods are


people –based rather than plan based methods.

• The agile process forces the development team to focus on


software itself rather than design and documentation.

• The agile process believes in iterative method.

• The aim of agile process is to deliver the working model of


software quickly to the customer.

• For Eg: Extreme programming is the best known of agile


9
Agile Process

Conventional software development methodology

• As the software project makes the progress ,the cost of the


changes increases non linearly.

• It is easy to accommodate changes during the requirement


gathering stage, at this stage to accommodate the changes-
usage scenarios are modified, list of functions can be
extended, or written specification be edited.

10
Agile Process

• As the progresses and if the customer suggest the


changes during the testing phase of the software
development life cycle then to accommodate these
changes the architectural design needs to be modified
and ultimately these changes will affect other phases of
software development cycle.

• These changes are actually costly to execute.

11
Agile Methodology

• The agile method claim that if the software development is


carried out using the agile approach then it will allow the
software team to accommodate changes late in a software
project without dramatic cost and time impact.
• In other words, if the incremental delivery is combined with
agile practices such as continuous unit testing and pair
programming then the cost of changes can be controlled.

12
Agile Methodology
• The following graph represents how the software
development approach has a strong influence on the
development cost due to changes suggested.

13
Agile Principles
• The Twelve Principles are the guiding principles for the
methodologies that are included under the title “The Agile
Movement.”
• They describe a culture in which change is welcome, and
the customer is the focus of the work.
• They also demonstrate the movement’s intent as described
by Alistair Cockburn, one of the signatories to the Agile
Manifesto, which is to bring development into alignment
with business needs.
14
Agile Principles

15
Agile Principles

16
Agile Principles

1) Customer satisfaction and valuable software:


• Customer satisfaction through early and continuous
software delivery.
• Customers are happier when they receive working
software at regular intervals, rather than waiting
extended periods of time between releases.

17
Agile Principles

2) Dynamic in development:
• Accommodate changing requirements throughout the
development process.
• The ability to avoid delays when a requirement or feature request
changes.
3) Working software is delivered frequently:
• Deliver working software frequently, from a couple of weeks to a
couple of months, with a preference to the shorter timescale.

18
Agile Principles

4) Cooperation between business people and developers :


• Collaboration between the business stakeholders and
developers throughout the project.
• Better decisions are made when the business and technical
team are aligned.
• Business people and developers must work together daily
throughout the project.

19
Agile Principles

5) Motivate the project developers:


• Support, trust, and motivate the people who are involved.
• Motivated teams are more likely to deliver their best work than
unhappy teams.
6) F2F Communication:
• Enable face-to-face interactions
• Communication is more successful when development teams are
co-located.

20
Agile Principles
7) Progressive measure:
• Working software is the primary measure of progress.
• Delivering functional software to the customer is the ultimate
factor that measures progress.
8) Sustainable development:
• Agile processes to support and promote a consistent development.
Teams establish a repeatable and maintainable speed at which
they can deliver working software, and they repeat it with each
release.
• The sponsors, developers, and users should be able to maintain a
21
constant pace indefinitely.
Agile Principles
9) Attention to technical design:
• Continuous attention to technical excellence and good design
enhances agility.
• The right skills and good design ensures the team can maintain
the pace, constantly improve the product, and sustain change.
10) Simplicity:
• Simplicity–the art of maximizing the amount of work not done–is
essential.

22
Agile Principles

11) Need of Self-organizing:


• Self-organizing teams encourage great architectures,
requirements, and designs.
• Skilled and motivated team members who have decision-
making power, take ownership, communicate regularly with
other team members, and share ideas that deliver quality
products.

23
Agile Principles

12) Being effective:


• At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.
• Self-improvement, process improvement, advancing skills, and
techniques help team members work more efficiently.

24
Agile Process Models
Extreme Programming (XP)

Adaptive Software Development


(ASD)
Dynamic Systems Development
Method (DSDM)

Scrum

Feature Driven Development (FDD)

Crystal

Agile Modelling (AM)

25
Extreme Programming (XP)
• The most widely used agile process, originally proposed by Kent
Beck.
• It is lightweight, efficient, low-risk, flexible, predictable way to
develop a software.
• Follows Object Oriented approach.
• Five values of XP:
1. Communication
2. Simplicity
3. Feedback
4. Courage 26
Extreme Programming (XP)
• Extreme Programming (XP) focuses on producing higher quality
software, sharing knowledge, and taking care of the software teams
wellbeing.
• XP is a good choice for mixed-skill level teams, especially ones
where junior and senior programmers work together. It could also
work well for teams with tight deadlines, smaller budgets, and
frequently changing project requirements.
• Extreme programming would not be recommended to remote teams,
as it performs best when applied to small teams that work from the
same location. 27
Extreme Programming (XP)

When to use?
• Constantly changing demands or requirements.
• Customer are not sure about the functionality of the system.
• Small projects consisting of small teams as face to face
meeting is easier to achieve.
• Projects involving new technology or Research projects.

28
Extreme Programming (XP)

29
Extreme Programming (XP)
XP - Planning
• User story-cards
• Release planning
• Small releases
• Iterative process
• Stand up meetings - F2F at same location

30
Extreme Programming (XP)
XP – Design
• Simple design:

It is always good to keep the things simple to meet the current


requirements
• Spike solution:

For answering the tough technical problem


• Refactoring:

Reduction in the redundancy, elimination of unused functionalities


• Encourage the use of CRC (class-responsibility-collaborator) cards 31
Extreme Programming (XP)
CRC cards (Class-Responsibility-Collaborator)

32
Extreme Programming (XP)

XP – Coding
• Customer availability - as part of the project.
• Paired programming - Driver/Supporter.
• Collective code ownership - All contribute, one person
doesn’t become bottleneck of the project.

33
Extreme Programming (XP)

XP - Testing
• Unit testing
• Continuous integration
• No overtime
• Conduct the release plan meeting to change the scope or
to reschedule the project delivery

34
Adaptive Software Development
(ASD)
• Adaptive Software Development has evolved from RAD
practices.

• Jim Highsmith published Adaptive Software Development in


2000.

• This is a technique for building complex software systems using


iterative approach.

• ASD focus on working in collaboration and team self-


organization.
35
Adaptive Software Development
(ASD)

36
Adaptive Software Development
(ASD)
Speculation
• The adaptive cycle planning is conducted.
• In this cycle planning mainly three types of information is used
to define the set of release cycles
• Customer’s mission statement
• Project constraints
• Delivery date, budgets, user description etc.
• Basic requirements of the project
37
Adaptive Software Development
(ASD)
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 offense
• Work hard
• Posses the required skill set
• Communicate problems and help each other
• Criticize without any hate 38
Adaptive Software Development
(ASD)
Learning
• Emphasize on learning new skills and techniques.
• There are three ways by which the team members learn
• Focus groups - Direct Feedback from the end-user about the
component being develop.
• Formal technical review - Performed by a committee of 3-5
people ensuring the quality of the software.
• Postmortems- self assessment by the team and make
appropriate improvements.

39
Scrum
• Scrum is a framework that helps agile teams to work together. Using
it, the team members can deliver and sustain the complex product.

• This model is developed by Jeff Sutherland and Ken Schwaber in


1995.

• Scrum is an agile process model which is used for developing the


complex software systems. It is a lightweight process framework.

• Lightweight means the minimum overhead of the process in order to


40
Scrum
Scrum Principles
• There are small working teams on the projects due to which there is
maximum communication and minimum overhead.
• The task of people must be partitioned into small and clean
packets/partitions.
• The process must accommodate the technical or business changes, if
they occur.
• The process should produce software increments.
• During product building, constant testing and documentation must be
conducted.
41
Scrum terminology

• Product backlog: a prioritized list of project requirements or features that

provide business value for the customer. Items can be added to the

backlog at any time (this is how changes are introduced). The product

manager assesses the backlog and updates priorities as required.

• Sprint backlog: consist of work units that are required to achieve a

requirement defined in the backlog that must be fit into a predefined

time-box14 (typically 30 days).


42
Scrum

43
Scrum Reference Card
Product Owner
 The product owner is the project’s key stakeholder and represents
users, customers and others in the process.
Scrum Master
 Typically a Team Leader
 Responsible for enacting Scrum values and practices
 Remove impediments / politics, keeps everyone productive
Project Team
 5-10 members; Teams are self-organizing
 Cross-functional: QA, Programmers, UI Designers, etc.
 This team does not include any of the traditional SE roles such as
programmer, designer, tester or architect.
 Everyone on the project works together to complete the set of work
they have collectively committed to complete within a sprint 44
Roles - Product Owner

45
Roles - Scrum Master

46
Roles (Scrum)

47
Scrum Development Activities
Backlog
• It is a list of project requirements or features that must be
provided to 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.
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 (2 to 4
weeks).
• Thus sprints allow the team members to work in stable and 48
Scrum Development Activities
Meetings
• There are 15 minutes daily meetings to report the completed
activities, obstacles and plan for next activities.(Development
Team)
• 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 ?
Demo
• During this phase implemented functionalities are demonstrated
to the customer
Review
• Activity to Introspect and Adapt 49
LSS (Large Scale Scrum)

50
Crystal

• Crystal method is an agile software development approach that


focuses primarily on people and their interactions when working on a
project rather than on processes and tools
• Properties of Crystal method:
1. Frequent delivery
2. Reflective improvement
3. Communication
4. Personal Safety
5. Focus
6. Easy access to expert/users
7. Technical Tools
51
The Crystal Family

Crystal method depends on three dimensions:

• First, Team size

• Second, Criticality

• Third, the priority of the project

52
The Crystal Family
 CLEAR - 6 or less people involved, small projects, requires some
documentation.
 YELLOW - 7 to 20 people, Small to medium project, feedback is
collected from customer, automated testing is conducted.
 ORANGE - 20-40 people, medium project, teams are divided as per
functional skills, 1-2 years, incremental development with delivery
every 3-4 months.
 RED - 40-80 people, Large projects, teams are formed as per work
required,
 MAROON - 80-200 people, similar to crystal red.
 Diamond and Sapphire - very large teams, used in extremely critical
53
The Crystal Family

54

You might also like