RAJIV GANDHI PROUDYOGIKI VISHWAVIDYALAYA, BHOPAL
New Scheme Based On AICTE Flexible Curricula

CD604 (B) Agile Software Development

CSE-Data Science / Data Science — VI Semester

Unit – I | Fundamentals of Agile Process

Unit I: Fundamentals of Agile Process

Agile Software Development is an approach to software development that focuses on delivering useful software in small increments, obtaining continuous customer feedback, encouraging collaboration and adapting to changing requirements.


Unlike traditional development approaches where requirements are generally defined at the beginning and development follows a relatively fixed plan, Agile development uses iterative and incremental development.

Introduction and Background

Software projects often face changing requirements, uncertain technologies, evolving customer expectations and pressure to deliver products quickly. Traditional software development approaches may become difficult to manage when requirements continuously change.


Agile methods emerged as lightweight approaches that emphasize working software, customer collaboration, frequent delivery, communication and responsiveness to change.


Agile development does not mean that planning, documentation or design are completely eliminated. Instead, these activities are performed at an appropriate level while keeping the development process flexible.

Characteristics of Agile Development

1. Iterative Development

Software is developed through repeated cycles called iterations or increments.

2. Customer Collaboration

Customers and stakeholders continuously provide feedback throughout development.

3. Frequent Delivery

Working software is delivered regularly instead of waiting until the entire project is completed.

4. Adaptability

Agile teams can respond to changing business and technical requirements.

5. Team Collaboration

Developers, testers, customers and other stakeholders work closely together.

6. Continuous Improvement

Teams regularly inspect their work and improve their process through feedback and retrospectives.

Agile Manifesto

The Agile Manifesto defines four fundamental values that guide Agile software development.

Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.

The phrase "over" does not mean that the second item has no value. It means that Agile gives greater emphasis to the first item when making development decisions.

Principles of Agile Development

The Agile approach is based on a collection of principles that encourage frequent delivery, collaboration, quality and adaptability.


  1. Satisfy customers through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development.
  3. Deliver working software frequently.
  4. Business people and developers should work together regularly.
  5. Build projects around motivated individuals and provide them with the support and environment they need.
  6. Prefer direct communication for effective information sharing.
  7. Working software is an important measure of progress.
  8. Maintain a sustainable pace of development.
  9. Give continuous attention to technical excellence and good design.
  10. Simplicity is important because unnecessary work should be avoided.
  11. The best architectures, requirements and designs emerge from self-organizing teams.
  12. Teams should regularly reflect on their work and adapt their behavior for continuous improvement.

Agile Stakeholders

A stakeholder is a person, group or organization that has an interest in the software project or can be affected by its outcome.


Customer

Defines business needs, provides feedback and helps determine whether the developed product provides value.

Product Owner

Represents business interests, manages product priorities and helps maximize product value.

Development Team

Designs, develops, tests and delivers working software.

Project Management

Helps coordinate resources, organizational objectives, risks and project constraints.

Challenges of Agile Development

Changing Requirements

Continuous changes can make planning and estimation difficult.

Team Communication

Agile requires strong communication and collaboration among team members.

Distributed Teams

Geographical separation can make collaboration and rapid communication more difficult.

Customer Availability

Agile benefits from regular customer involvement, which may not always be available.

Estimation Difficulties

Changing scope and incremental requirements can make precise long-term estimation difficult.

Organizational Resistance

Organizations accustomed to traditional processes may find Agile adoption challenging.

Agile vs Traditional Development

Basis Agile Development Traditional Development
Development Iterative and incremental Usually sequential
Requirements Can evolve during development Usually defined early
Customer Involvement Frequent Often concentrated at specific stages
Delivery Frequent increments Often major delivery near the end
Change Welcomed and accommodated Can require formal change management
Planning Adaptive More plan-driven
Testing Often integrated throughout development May be concentrated in later stages

Overview of Agile Development Models

1. Scrum

Scrum is an Agile framework based on short development cycles called Sprints. It emphasizes teamwork, inspection, adaptation and frequent delivery.

2. Extreme Programming

Extreme Programming, commonly called XP, focuses strongly on software quality, customer feedback, continuous testing, pair programming and frequent releases.

3. Feature Driven Development

Feature Driven Development (FDD) organizes development around designing and building useful features.

4. Crystal

Crystal is a family of Agile methodologies that emphasizes people, communication, teamwork and adapting the process to project characteristics.

5. Kanban

Kanban is a visual workflow approach that helps teams visualize work, limit work in progress and improve the flow of tasks.

6. Lean Software Development

Lean Software Development applies Lean principles to software development, emphasizing value delivery, elimination of waste and continuous improvement.

Advantages of Agile Development

Faster Delivery

Working software can be delivered in smaller increments.

Customer Satisfaction

Continuous feedback helps ensure that the product meets customer expectations.

Flexibility

Teams can adapt to changing requirements more easily.

Better Collaboration

Agile encourages communication between developers, customers and stakeholders.

Early Risk Detection

Frequent development and feedback can expose problems earlier.

Continuous Improvement

Agile teams regularly inspect their process and identify improvements.

Quick Revision

Agile = Iterative + Incremental + Collaborative + Adaptive Development


Four Agile Values: Individuals & Interactions, Working Software, Customer Collaboration, Responding to Change.


Major Agile Models: Scrum, XP, FDD, Crystal, Kanban and Lean Software Development.


Key Idea: Deliver valuable working software frequently and respond effectively to changing requirements.

Important RGPV Exam Questions

Handwritten Notes

Get exam-oriented handwritten notes for CD604(B) Agile Software Development Unit I, including important definitions, diagrams, explanations and revision material.