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

Chapter 3 Agile Process

Uploaded by

shaqo1950
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)
6 views

Chapter 3 Agile Process

Uploaded by

shaqo1950
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/ 20

Advanced to

Software Engineering
Software Engineering

Agile Process Models


Topics covered

■ Agile methods
■ Agile Approaches
■ Plan-driven and agile development
■ Agile project management
What is Agile Method?
The Agile Method in software engineering refer to a group of
methodologies that emphasize flexibility, collaboration, and customer-
centric development.

Agile approaches are designed to handle changing requirements and deliver


software incrementally, where flexibility and customer responsiveness
are key.
Agile methods aim to reduce overheads in the software process and to be
able to respond quickly to changing requirements without excessive
rework
Popular Agile Frameworks
 Scrum
 Kanban
 Extreme Programming (XP)
4
The Principles of Agile
■ The Agile Manifesto is a brief document built on 12 principles
for agile software development.
■ The Agile Manifesto was published in 2001 and is the work of 17
software development practitioners who observed the increasing need for
an alternative to documentation-driven and heavyweight software
development processes.
12 Principles of Agile Methods
1. Face-to-face conversation is the most effective form of communication.
2. Working software is the primary measure of progress.
3. Maintain a sustainable pace of work.
4. Continuous attention to technical excellence and good design.
Cont…
6. Simplicity, the art of maximizing the amount of work not done is essential.
7. Self-organizing teams.
8. Regular reflection on how to become more effective.
9. Customer satisfaction through early and continuous delivery.
10.Welcome changing requirements, even late in development.
11.Deliver working software frequently.
12. Collaboration between business stakeholders and developers.
Agile Approaches
1. Scrum is one of the most popular Agile frameworks, focusing on
delivering work in short, time-boxed iterations, lasting 1 to 4 weeks.

2. Kanban is a visual framework focused on continuous delivery and


improvement. It helps teams manage workflows and optimize efficiency.

3. Extreme Programming (XP) emphasizes technical excellence and


customer satisfaction through frequent releases of functional software.
This approach aims to produce higher-quality software, and higher quality of
life for the development team.
Cont…
4. Dynamic Systems Development Method (DSDM) is a comprehensive
Agile framework that emphasize high-stakes projects requiring strong
alignment with business goals.

5. Spotify Model, this approach focuses on team autonomy and alignment.


Teams work independently on different features or parts of the product.
Agile method Applicability

Agile is applicable in various sectors and sizes, from small applications to


large-scale enterprise systems where adaptability, frequent feedback, and
customer-centricity are key.
However, the suitability of Agile depends on the specific requirements,
constraints, and nature of the project or industry.

In Agile there should be a clear commitment from the customer to become


involved in the development process and where there are not a lot of
external rules and regulations that affect the software.

9
SIZE
■ Small Software Products
- Mobile apps, simple web applications, or small tools.
- Approach: Agile practices like Scrum or Kanban work well. Teams can iterate
quickly with short sprints, making rapid adjustments based on user feedback.
■ Medium-Sized Software Products
- E-commerce platforms, or mid-sized enterprise applications.
- Approach: Agile frameworks Scrum are effective. Large Software Products
■ Large Software Products
Enterprise Resource Planning (ERP) systems, large-scale SaaS platforms, or
complex financial systems.
- Approach: Scaled Agile frameworks like SAFe (Scaled Agile Framework), LeSS
(Large Scale Scrum), or Spotify model can be used to coordinate multiple Agile
teams working on different components of the product.
Problems with Agile Methods
 It difficult to keep the interest of customers who are involved in the
process.
 Lack of Predictability, it can be hard to predict the exact timeline or cost
of a project.
 Inconsistent documentation makes it difficult for new team members to
onboard or for teams to maintain the system long-term.
 Team Misalignment, team members may be unsuited to the intense
involvement that characterizes agile methods.
 Prioritizing changes can be difficult where there are multiple stakeholders.
 Maintaining simplicity requires extra work
 Overreliance on Specific Individuals, if the team becomes too reliant on
specific individuals, progress can stall if those individuals are unavailable
or leave the project.
11
Plan-driven
and
Agile Development
Plan-driven and agile development

 Plan-driven development is a structured approach that works best when


requirements are stable, and the project needs predictability.
It is particularly suitable for projects where requirements are well understood
and unlikely to change, as it is lacks the flexibility to handle frequent changes,

 Agile development Specification, design, implementation, and testing are inter-


leaved and the outputs from the development process are decided through a
process of negotiation during the software development process

 Understanding the project’s context and requirements helps determine


whether plan-driven development, Agile, is the most appropriate.

13
When to Use Plan-Driven Development:
■ Clear Structure and Process
■ Predictable Costs and Timelines
■ Well-suited for Large, Complex Projects
■ Stability in Requirements
■ Good for Highly Regulated Industries
Comparison of Plan-Driven Development vs. Agile:
Plan-driven and Agile Specification

15
Technical, Human, Organizational Issues
 Most projects include elements of plan-driven and agile processes. Deciding on
the balance depends on:

 Is it important to have a very detailed specification and design


 Is an incremental delivery strategy,
 How large is the system
 What type of system is being developed?
 What is the expected system lifetime?
 What technologies are available to support system development?
 How is the development team organized?
 Are there cultural or organizational issues that may affect the system
development?
 How good are the designers and programmers in the development team?
 Is the system subject to external regulation? 16
Pair programming
 Pair programming is an agile software development technique in which two
programmers work together.

 This helps develop common ownership of code and spreads knowledge


across the team.
 It serves as an informal review process as each line of code is looked at by
more than 1 person.

 Measurements suggest that development productivity with pair


programming is similar to that of two people working independently.

17
What is an Agile project
Management?
Cont…
Agile Project Management is the principal responsibility of software
project managers that is to manage the project, as the software is
delivered on time and within the planned budget for the project.

They supervise the work of software engineers and monitor

Agile Project Management Answer those :


What should be delivered?
When it should be delivered? and
Who will work on the development of the project?
How well the software development is progressing.
Key Principles of Agile Project Management:
■ Individuals and Interactions over Processes and Tools: Focus on
fostering collaboration and communication among team members rather
than relying solely on tools and processes.
■ Working Software over Comprehensive Documentation: Prioritize
delivering functional products that add value rather than spending too much
time on detailed documentation.
■ Customer Collaboration over Contract Negotiation: Involve customers
throughout the process, fostering continuous feedback and ensuring the
product meets their needs.
■ Responding to Change over Following a Plan: Agile is adaptable to
changing requirements, even late in the development process, rather than
adhering strictly to the original plan.

You might also like