Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
4 views36 pages

Chapter 2

Agile software development is an iterative approach that emphasizes collaboration, flexibility, and the rapid delivery of working software. It prioritizes customer satisfaction, adaptability to changing requirements, and the importance of team interactions over processes. While Agile offers advantages such as quicker deployment and improved quality, it also presents challenges like unpredictability and less documentation.

Uploaded by

tuyisengeeric034
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)
4 views36 pages

Chapter 2

Agile software development is an iterative approach that emphasizes collaboration, flexibility, and the rapid delivery of working software. It prioritizes customer satisfaction, adaptability to changing requirements, and the importance of team interactions over processes. While Agile offers advantages such as quicker deployment and improved quality, it also presents challenges like unpredictability and less documentation.

Uploaded by

tuyisengeeric034
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

Chapter 2 Agile Software

Development
1. What is agile?
2. Why agile
3. Advantages of Agile Software
development
4. Disadvantages of Agile Software
development
5. 4 Core Values of agile
6. 12 principles of agile
Fall-2024-Dr. Josbert UNES Ruhengeri
What is agile?
⚫ Agile is a process that allows a team to more
efficiently manage a project by breaking it
down into several stages.

⚫ Each of which allows for consistent


collaboration with stakeholders to
promote stable improvements at every
stage.

Fall-2024-Dr. Josbert UNES Ruhengeri


What is agile?
⚫ It is based on the Agile Manifesto:

➢ A set of principles for software


development that prioritize individuals
and interactions, working software,
customer collaboration, and
responding to change.

Fall-2024-Dr. Josbert UNES Ruhengeri


What is agile?
⚫ Agile Software Development is an
iterative and incremental (piece-by-
piece) approach that emphasizes the
importance of delivering a working
product quickly and regularly.

Fall-2024-Dr. Josbert UNES Ruhengeri


What is agile?
⚫ It involves close collaboration between
the development team and the
customer to ensure that the product
meets their needs and expectations.

Fall-2024-Dr. Josbert UNES Ruhengeri


Why Agile is Used?
1. Creating Tangible Value: Agile places a high
priority on creating tangible value as soon as
possible in a project.

2. Concentrate on Value-Added Work: Agile


methodology promotes teams to concentrate on
producing functional and value-added product
increments.

➢ Hence reducing the amount of time and energy


allocated to non-essential tasks.
Fall-2024-Dr. Josbert UNES Ruhengeri
Why Agile is Used?
3. Agile as a Mindset: It gives team
members more authority and promotes a
cooperative and happy work environment.

4. Quick Response to Change: Agile


promotes a culture that allows teams to
respond quickly to regularly shifting
priorities and requirements.

Fall-2024-Dr. Josbert UNES Ruhengeri


Why Agile is Used?
5. Regular Demonstrations: Agile techniques place a
strong emphasis on regular demonstrations of
project progress.

➢ Stakeholders/customers may clearly see the


project’s status, upcoming problems, and
upcoming new features due to this transparency.

6. Cross-Functional Teams: Agile adopts self-organizing,


cross-functional teams that share information effectively,
communicate more effectively and feel more like a unit.

Fall-2024-Dr. Josbert UNES Ruhengeri


Some of the real life examples
of agile model:
⚫ Restaurant orders:
⚫ Preparation of some of the food before
opening the shop (sprint planning).

⚫ continuous delivery of orders (adhoc stories).

⚫ number of successful orders (velocity/speed).

Fall-2024-Dr. Josbert UNES Ruhengeri


4 Core Values of Agile Software
Development

Fall-2024-Dr. Josbert UNES Ruhengeri


12 Principles of Agile Software
Development
⚫ The Agile Manifesto is based on four values
and twelve principles that form the basis, for
methodologies.

Fall-2024-Dr. Josbert UNES Ruhengeri


12 Principles of Agile Software
Development
1. Ensuring customer satisfaction through the
quick delivery of software.

2. Being open to changing requirements in the


stages of the development.

3. Frequently delivering working software with


a main focus on favorite for timeframes.

4. Promoting collaboration between business


stakeholders and developers as an element.
Fall-2024-Dr. Josbert UNES Ruhengeri
12 Principles of Agile Software
Development
5. Structuring the projects around individuals.

6. Prioritizing face to face communication when


needed.

7. Considering working software as the measure


of the progress.

8. Adopting development by allowing teams to


maintain a step until further notice.

Fall-2024-Dr. Josbert UNES Ruhengeri


12 Principles of Agile Software
Development
9. Placing attention on excellence and good design
practices.

10. Recognizing the simplicity to maximize


productivity by minimizing the work.

11. Encouraging self organizing teams as the


approach to design and build systems.

12. Regularly focusing on how to enhance


effectiveness and to make adjustments
accordingly.
Fall-2024-Dr. Josbert UNES Ruhengeri
The Agile Software Development
Process

Fall-2024-Dr. Josbert UNES Ruhengeri


The Agile Software Development
Process
1. Requirements Gathering: The customer’s
requirements for the software are collected and
prioritized.

2. Planning: The development team creates a


plan for delivering the software.
➢ including the strategy that will be used for
delivered each iteration.

3. Development: The development team works


to build the software, using frequent and rapid
iterations.
Fall-2024-Dr. Josbert UNES Ruhengeri
The Agile Software Development
Process

4. Testing: The software is carefully tested to


ensure that it meets the customer’s
requirements and is of high-quality.

5. Deployment: The software is deployed and


put into use.
6.Maintenance: The software is maintained to
ensure that it continues to meet the
customer’s needs and expectations.

Fall-2024-Dr. Josbert UNES Ruhengeri


Design Process of Agile software
Development

⚫ In Agile development, Design and


Implementation are considered to be
the central activities in the software
process.

⚫ The design and Implementation phase


also incorporates other activities such as
requirements elicitation and testing.

Fall-2024-Dr. Josbert UNES Ruhengeri


Design Process of Agile software
Development

⚫ Iteration occurs across activities. Therefore,


the requirements and the design are
developed together, rather than separately.

⚫ The allocation of requirements and the design


planning and development as executed in a
series of increments.

⚫ An agile process focuses more on code


development rather than documentation.
Fall-2024-Dr. Josbert UNES Ruhengeri
Example of Agile Software
Development Plannification
⚫ Requirement analysis and Gathering – 1.5
Months.

⚫ Design of System – 2 Months

⚫ Coding phase – 4 Months

⚫ System Integration and Testing – 2 Months

⚫ User Acceptance Testing – 5 Weeks


Fall-2024-Dr. Josbert UNES Ruhengeri
Advantages of Agile Software
Development
⚫ Deployment of software is quicker (and
thus helps in increasing the trust of the
customer).

⚫ Can better adapt to rapidly changing


requirements and respond faster.

⚫ Helps in getting immediate feedback which


can be used to improve the software in
the next increment.
Fall-2024-Dr. Josbert UNES Ruhengeri
Advantages of Agile Software
Development
⚫ People – Not Process. People and interactions
are given a higher priority than processes and
tools.

⚫ Continuous attention to technical excellence and


good design.

⚫ Increased collaboration communication:


emphasize collaboration and communication among
team members, stakeholders, and customers.

Fall-2024-Dr. Josbert UNES Ruhengeri


Advantages of Agile Software
Development
⚫ Flexibility and adaptability: Agile
methodologies are designed to be flexible and
adaptable, making it easier to respond to
changes in requirements, priorities, or market
conditions.

⚫ Improved quality and reliability: Agile


methodologies place a strong emphasis on
testing, quality assurance, and continuous
improvement.

Fall-2024-Dr. Josbert UNES Ruhengeri


Advantages of Agile Software
Development
⚫ Enhanced customer satisfaction: Agile
methodologies prioritize customer
satisfaction and focus on delivering value to
the customer.

⚫ Increased team confidence and


motivation: Agile methodologies promote a
collaborative, helpful, and positive work
environment.

Fall-2024-Dr. Josbert UNES Ruhengeri


Disadvantages of Agile Software
Development
⚫ It is difficult to evaluate the effort required at
the initial stages of the software development
life cycle.

⚫ Agile Development is more code-focused


and produces less documentation.

⚫ Agile development is deeply dependent on the


inputs/needs of the customer.

Fall-2024-Dr. Josbert UNES Ruhengeri


Disadvantages of Agile Software
Development
⚫ Face-to-face communication is harder in large
organizations.

⚫ Only senior programmers are capable of


making the kind of decisions required during
the development process.

⚫ Lack of predictability: Agile Development


depend on customer feedback and continuous
iteration, which can make it difficult to predict
project outcomes, timelines, and budgets.
Fall-2024-Dr. Josbert UNES Ruhengeri
Disadvantages of Agile Software
Development
⚫ Lack of control over the project scope.

⚫ Lack of emphasis on testing: Agile Development


places a greater emphasis on delivering working
code quickly, which can lead to a lack of focus
on testing and quality assurance.

⚫ Lack of structure and governance: Agile


development focused on coding development,
which can lead to a lack of governance and
inaccuracy.

Fall-2024-Dr. Josbert UNES Ruhengeri


Practices of Agile Software
Development
⚫ Scrum: is an agile project
management methodology or framework used
primarily for software development projects with the
goal of delivering new software capability every 2-
4 weeks.

⚫ Kanban: Kanban is a visual system that helps teams


manage their work and improve their processes.

⚫ Continuous Integration: Continuous Integration is


the practice of frequently merging code changes into
a shared repository.
Fall-2024-Dr. Josbert UNES Ruhengeri
Practices of Agile Software
Development
⚫ Scrum: is an agile project
management methodology or framework used
primarily for software development projects with the
goal of delivering new software capability every 2-
4 weeks.

Fall-2024-Dr. Josbert UNES Ruhengeri


Practices of Agile Software
Development
⚫ Test-Driven Development: Test-Driven
Development (TDD) is a development practice
that involves writing automated tests before
writing the code.

⚫ Pair Programming: Pair programming involves two


developers working together on the same code.
This helps to improve code quality and share
knowledge

Fall-2024-Dr. Josbert UNES Ruhengeri


Advantages of Agile Software Development
over traditional software development
approaches
⚫ Increased customer satisfaction: Agile
development involves close collaboration
with the customer, which helps to ensure that
the software meets their needs and
expectations.

⚫ Faster time-to-market: Agile development


emphasizes the delivery of working software
in short iterations, which helps to get the
software to market faster.

Fall-2024-Dr. Josbert UNES Ruhengeri


Advantages of Agile Software Development
over traditional software development
approaches
⚫ Agile development involves regular/many
testing and feedback.

⚫ Improved team collaboration: Agile development


emphasizes collaboration and communication
between team members.

⚫ Adaptability to change: responds quickly to


changing business needs and market demands.

Fall-2024-Dr. Josbert UNES Ruhengeri


Advantages of Agile Software Development
over traditional software development
approaches
⚫ Increased transparency: Agile Development
involves many communication and collaboration
between the team and the customer.

⚫ Higher productivity: Agile Development focus on


teamwork and collaboration, which helps to
improve productivity and reduce waste of time.

Fall-2024-Dr. Josbert UNES Ruhengeri


Summary

⚫ Agile software development is a popular approach


to software development that emphasizes
collaboration, flexibility, and the delivery of
working software in a very short time based on
and iterations).

Fall-2024-Dr. Josbert UNES Ruhengeri


Key points

⚫ Agile emphasizes breaking down the


development process into smaller,
manageable units known as iterations or
sprints.

⚫ Agile prioritizes close collaboration among


teams, including developers, testers, product
owners, and stakeholders.

Fall-2024-Dr. Josbert UNES Ruhengeri


Key points

⚫ Agile methodologies recognize that


requirements can change based on market
conditions, user feedback, or other factors.

⚫ Agile is faster in delivering software to


customers and focuses on code rather than
design and documentation.

Fall-2024-Dr. Josbert UNES Ruhengeri

You might also like