2. Agile
development
Agility means the ability to move quickly and easily or to adapt to change smoothly.
Agility = the capability of a team or organization to:
·
Respond quickly to changes in requirements, market, or technology.
·
Deliver value continuously to customers.
·
Adapt processes and practices to improve efficiency.
·
Embrace feedback and adjust direction whenever needed.
Agile development
is a software development methodology
that focuses on flexibility, collaboration, and delivering working software in
small, iterative cycles. Instead of following a strict step-by-step plan (like
the traditional Waterfall model),
Agile allows teams to adapt to changes quickly and continuously improve the
product.
Popular Agile Frameworks:
·
Scrum – works in short
sprints with defined roles (Product Owner, Scrum Master, Development Team).
·
Kanban – focuses on
visualizing work, limiting work in progress, and continuous delivery.
·
Extreme Programming
(XP) – emphasizes engineering practices like pair programming, test-driven
development, and continuous integration.
·
Dynamic Systems
Development Method (DSDM) – a more structured agile method used in
business projects.
Example: Instead of building a full e-commerce app at once, agile
delivers features step by step (Login → Browse Products → Cart → Payment).
·
Agile = Flexible software development
method.
·
Works in small iterations (sprints) → 1–4 weeks.
·
Focus → Customer collaboration,
adaptability, continuous delivery.
·
Principles → working software, quick
feedback, team collaboration.
·
Frameworks → Scrum, Kanban, XP, DSDM.
Agile
Process-
The Agile process is the step-by-step
workflow teams follow to develop software in an iterative
and flexible way.
Agile Process Steps
1.
Requirement Gathering → Collect high-level
requirements (user stories).
2.
Planning → Break work into sprints (small time-boxed cycles).
3.
Design &
Development → Build features in small increments.
4.
Testing → Continuous testing
within each sprint.
5.
Review & Feedback → Demo to
stakeholders, get feedback.
6.
Deployment → Deliver working
software frequently.
7.
Retrospective → Team reflects on
what went well and what to improve.
8.
Repeat → The cycle continues
until the product is complete.
Example
(E-commerce):
·
Sprint 1: Build login system
·
Sprint 2: Product catalog
·
Sprint 3: Cart system
·
Sprint 4: Payment integration
Key Principles of Agile :
1.
Individuals and
interactions over processes and tools
2.
Working software over comprehensive
documentation
3.
Customer
collaboration over contract negotiation
4.
Responding to change over following a
fixed plan
12
Policies/Principles of Agile Development
1. Customer satisfaction by delivering
valuable software early and continuously.
2.
Welcome changing
requirements, even late in development.
3.
Deliver working
software frequently (weeks, not months).
4.
Business people and
developers work together daily.
5.
Build projects around
motivated individuals and trust them.
6.
Face-to-face
communication is the most effective way to convey information.
7.
Working software is
the primary measure of progress.
8.
Sustainable
development – teams should maintain a constant pace.
9.
Continuous attention
to technical excellence improves agility.
10.
Simplicity – maximize the
amount of work not done.
11.
Self-organizing teams create the best
architectures and designs.
12.
Regular reflection
(retrospective) on how to become more effective, then adjust.
Agile policies
focus on:
·
Fast delivery
·
Flexibility
·
Customer involvement
·
Team collaboration
·
Continuous
improvement
Human
Factors in Agile (exam-friendly):
·
Teamwork &
Collaboration – cross-functional teams work together.
·
Communication – direct and clear
interaction (daily stand-ups).
·
Motivation &
Trust – self-motivated, trusted individuals.
·
Customer Involvement – regular feedback
and collaboration.
·
Adaptability &
Sustainable pace – flexible to change, avoid burnout.
Agile values people over process – success
depends on teamwork, communication, trust, and customer collaboration.
Extreme
Programming (XP) is one of the agile software development
methodologies that focus on high-quality
code, continuous feedback, and flexibility to change requirements. It is especially
useful when requirements are uncertain or change frequently.
Key Practices of XP:
1.
Pair Programming → Two programmers
work together at one computer (one writes, one reviews).
2.
Test-Driven
Development (TDD) → Write tests before writing code.
3.
Continuous
Integration → Code is integrated and tested frequently (many times a
day).
4.
Small Releases → Deliver software
in small, frequent updates.
5.
Refactoring → continuously
improve and simplify the code without changing functionality.
6.
Simple Design → Keep the system as
simple as possible.
7.
Collective Code
Ownership → anyone can improve any part of the code.
8.
Sustainable Pace → Avoid overtime and
burnout.
9.
Coding Standards → Follow consistent
coding rules.
10. On-site Customer → Customer
representative is available to provide quick feedback.
Advantages of XP:
·
High quality and clean code.
·
Adapts quickly to changes.
·
Strong customer satisfaction (continuous involvement).
·
Early bug detection through testing.
Example:
If you are building an online banking system:
·
Developers work in pairs,
·
Write tests before coding a “transfer money” feature,
·
Release a small working version (login + balance check),
·
Get customer feedback, and then improve in the next
cycle.
XP Values
1.
Communication – Clear, constant
communication within the team and with customers.
2.
Simplicity – Keep design and
code as simple as possible.
3.
Feedback – Continuous
feedback from tests, customers, and teammates.
4.
Courage – Courage to accept
changes, refactor code, and try new ideas.
5.
Respect – Team members
respect each other’s ideas, efforts, and contributions.
XP Process Steps
1.
Planning → Collect user
stories, estimate effort, prioritize with customer.
2.
Design → Keep it simple;
create basic design for current stories.
3.
Coding → Use pair programming, follow coding standards,
collective ownership.
4.
Testing → Apply Test-Driven Development (TDD), unit +
acceptance tests.
5.
Release → Deliver small,
frequent releases to the customer.
6.
Feedback → Customer reviews,
team retrospectives, adapt to changes.
7.
Refactoring &
Improvement → continuously clean and improve the code.
Adaptive Software Development (ASD) is a software
development methodology that emphasizes flexibility and responsiveness to
change. It's a dynamic approach that thrives on iterative development,
collaboration, and continuous learning to adapt to evolving project
requirements and market conditions. ASD is particularly well-suited for
complex, innovative, and rapidly changing environments where traditional, rigid
development models fall short.
Key Characteristics of ASD:
·
Iterative and Incremental:
ASD involves breaking down the
project into short cycles or iterations, with each cycle focusing on delivering
functional components and incorporating feedback.
·
Continuous Adaptation:
The process is designed to adapt to
changing requirements, technological advancements, and stakeholder feedback
throughout the project lifecycle.
·
Collaboration:
ASD emphasizes open communication,
teamwork, and collaboration among team members and stakeholders.
·
Learning:
ASD encourages teams to learn from each
iteration and use that knowledge to refine the approach for subsequent cycles.
·
Speculation and Adaptation:
Instead of detailed upfront planning,
ASD relies on speculating on the best approach and adapting plans based on new
information and feedback.
·
Risk-Driven:
ASD acknowledges that change is
inevitable and incorporates risk management throughout the development process.
What Is Scrum?
Scrum is an agile framework
designed to help teams address complex problems while delivering high-value
products in an iterative, adaptable manner. It's based on empirical process
control, grounded in the three pillars of transparency, inspection,
and adaptation
Scrum
Principles & Values
Core
principles that underpin Scrum include:
·
Transparency: Teams work openly,
ensuring visibility into all aspects of the process Geeks for
Geeks, Amazon Web Services.
·
Reflection (Inspection): Regular
opportunities to assess and adapt processes
·
Adaptation: Rapid
re-prioritization based on feedback and shifting requirements
The five
Scrum values
1. Commitment
2. Courage
3. Focus
4. Openness
5. Respect
Roles
·
Product Owner: Represents
stakeholders, prioritizes the backlog, and ensures value delivery
·
Scrum Master: Acts as
facilitator, coach, and impediment remover; ensures adherence to Scrum practices.
·
Development Team: A self-organizing
group (typically 3–9 members) responsible for delivering product increments.
What Is
DSDM?
The Dynamic
Systems Development Method (DSDM) is an agile project delivery
framework initially created in 1994 to bring discipline to Rapid
Application Development (RAD) efforts. Over time, DSDM evolved beyond software
into a comprehensive project management approach across various domains
Principles
of DSDM
DSDM is
governed by eight guiding principles that ensure value-driven,
controlled, and collaborative delivery
Focus
on the Business Need
1. Deliver on Time
2. Collaborate
3. Never Compromise
Quality
4. Build Incrementally
from Firm Foundations
5. Develop Iteratively
6. Communicate
Continuously and Clearly
7. Demonstrate Control
Limitations:
·
Implementation can be costly
·
Requires significant structure and management
support
·
Less widely adopted compared to Scrum or
Kanban, especially in regions like the U.S.—some find it rigid or enterprise-heavy.
Lifecycle
Phases of DSDM
DSDM
organizes work into structured phases, ensuring systematic progress and
alignment.
The relation between Rational Unified Process (RUP) and Agile.
Rational Unified Process
(RUP)
- A software
development process framework created by IBM.
- Structured,
phase-based: Inception → Elaboration → Construction → Transition.
- Focuses on
documentation, architecture, and discipline.
RUP vs Agile
- RUP = more structured, heavy
documentation.
- Agile = lightweight, adaptive,
customer-driven.
- Both are iterative
& incremental (not like Waterfall).
Agile Unified Process
(AUP)
To make RUP more Agile, Scott Ambler created AUP
- Keeps
RUP’s phases (Inception, Elaboration, Construction, and Transition).
- Applies agile
principles: short iterations, daily stand-ups, test-driven
development, continuous integration, customer collaboration.
- Lightweight
→ less documentation, more working software.
·
RUP = disciplined, structured, heavy.
·
Agile = flexible, lightweight, fast.
·
AUP = a bridge → RUP made Agile (iterative, simple,
customer-focused).
The Agile Unified Process (AUP) is a simplified version of the Rational Unified Process
(RUP) that follows Agile
principles.
It was introduced by Scott Ambler
to make RUP more lightweight and flexible.
Characteristics of AUP
·
Agile + RUP → Combines
structured RUP with Agile practices.
·
Iterative & Incremental → Develop software
in short cycles.
·
Simple &
Lightweight → Avoids heavy documentation.
·
Adaptable → can easily adjust
to changing requirements.
·
Model-driven +
Code-focused → Uses simple models but emphasizes working code.
Phases of AUP
1.
Inception → Define scope,
goals, initial requirements, and risks.
2.
Elaboration → Refine
architecture, plan iterations, identifies major use cases.
3.
Construction → iteratively build
the system (coding + testing).
4.
Transition → Deliver system to
users, perform final testing and deployment.
5.
Production → Operate, support,
and maintain the software.
Example of Agile :
1)Spotify (Music App)
·
Spotify uses Agile +
Scrum + Kanban (called the “Spotify Model”).
·
Instead of building the full app at once, they release
features in small increments.
o
First sprint: basic music streaming.
o
Next sprint: playlists.
o
Next sprint: offline mode.
o
Later: podcasts, lyrics, AI recommendations.
·
They continuously gather user feedback and improve features.
2) Swiggy
/ Zomato (Food Delivery Apps)
·
Started with a basic
ordering system (restaurants + delivery).
·
Later sprints: added real-time
tracking, online payments,
offers/coupons, rating system.
·
Customers test each feature early, and the company adapts
fast.
3) Amazon (E-commerce)
·
Amazon adds features gradually instead of waiting for a
big release.
·
Example: They first launched basic book-selling, then step by step added electronics, clothing, 1-click checkout, Prime
delivery, and Alexa integration.
·
Agile allows them to test features quickly with real
customers.
4)
Google Maps
·
Started with basic maps.
·
Added directions → real-time traffic → street view →
offline maps → live location sharing. Every update was delivered in small increments using Agile.
Agile is used in real companies like Spotify, Amazon, Swiggy, Zomato
where features are delivered step by step
with continuous customer feedback.
Assignment 2
· What
is Agile Development?
· What
are the core values of the Agile?
· What
are principles of Agile?
· Explain
the Agile process
· Explain
Extreme Programming (XP)
· What is Agile Unified Process (AUP)?
· How does Agile handle changing requirements?
· What is Adaptive Software Development (ASD)?
· Who introduced ASD?
· What are the main phases of ASD?
· How is ASD different from the Waterfall model?
· Is ASD iterative or sequential? Explain.
· What is Scrum in Agile methodology?
· What are the 3 main roles in Scrum?
· Define a sprint in Scrum.
· What is the duration of a sprint?
· How does Scrum handle changing requirements?
· What is DSDM in Agile development?
·
Who developed
DSDM and when?
·
What are the main
goals of DSDM?
·
Is DSDM iterative
or sequential?
·
Name any two
principles of DSDM.
· What is the Agile Unified Process (AUP)?
· Who developed AUP?
· How is AUP related to RUP (Rational Unified Process)?
· What are the main goals of AUP?
· Is AUP iterative or sequential?
0 comments:
Post a Comment