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