Skip to main content
  1. Resources/
  2. Study Materials/
  3. Information & Communication Technology Engineering/
  4. ICT Semester 5/
  5. Software Engineering (4353202)/

3 mins· ·
Milav Dabgar
Author
Milav Dabgar
Experienced lecturer in the electrical and electronic manufacturing industry. Skilled in Embedded Systems, Image Processing, Data Science, MATLAB, Python, STM32. Strong education professional with a Master’s degree in Communication Systems Engineering from L.D. College of Engineering - Ahmedabad.
Lecture 10: Agile Development

Lecture 10: Agile Development

Unit 2: Software Development Life Cycle (4353202)

Lecture Agenda

  • Recap of Spiral and RAD Models
  • What is Agile Development?
  • The Agile Manifesto: Values and Principles
  • Extreme Programming (XP)
  • Scrum: Roles, Events, and Artifacts
  • Key Takeaways

Recap of Spiral and RAD Models

The Spiral Model is a risk-driven iterative approach for large projects. The RAD Model prioritizes speed and prototyping for modular systems.

What is Agile Development?

Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "big bang" launch, an agile team delivers work in small, but consumable, increments.

The Agile Manifesto

Values

  • 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 12 Principles of Agile

(Abridged)

  1. Customer satisfaction through early and continuous delivery.
  2. Welcome changing requirements, even late in development.
  3. Deliver working software frequently.
  4. Business people and developers must work together daily.
  5. Build projects around motivated individuals.
  6. The most efficient method of conveying information is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development.
  9. Continuous attention to technical excellence and good design.
  10. Simplicity—the art of maximizing the amount of work not done—is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective.

Extreme Programming (XP)

XP is an agile framework that aims to produce higher quality software and a higher quality of life for the development team. It is the most specific of the agile frameworks regarding appropriate engineering practices.

Core Practices of XP:

  • The Planning Game
  • Small Releases
  • Metaphor
  • Simple Design
  • Test-Driven Development (TDD)
  • Refactoring
  • Pair Programming
  • Collective Ownership
  • Continuous Integration
  • 40-hour week (Sustainable Pace)
  • On-site Customer
  • Coding Standards

Scrum

Scrum is a framework for developing, delivering, and sustaining complex products. It is designed for teams of ten or fewer members, who break their work into goals that can be completed within time-boxed iterations, called sprints.

graph LR A[Product Backlog] --> B[Sprint Planning] B --> C[Sprint Backlog] C --> D[Sprint (2-4 weeks)] D --> E[Daily Scrum] E --> D D --> F[Working Increment] F --> G[Sprint Review] G --> H[Sprint Retrospective] H --> A

Scrum: Roles, Events, and Artifacts

Roles

  • Product Owner: Owns the product backlog and prioritizes work.
  • Scrum Master: Facilitates the process and removes impediments.
  • Development Team: Self-organizing team that does the work.

Events

  • Sprint: A time-box of one month or less.
  • Sprint Planning: Plan the work for the upcoming sprint.
  • Daily Scrum: A 15-minute daily stand-up meeting.
  • Sprint Review: Inspect the increment and adapt the backlog.
  • Sprint Retrospective: A meeting to improve the process.

Artifacts

  • Product Backlog: A prioritized list of everything that is known to be needed in the product.
  • Sprint Backlog: The set of Product Backlog items selected for the Sprint.
  • Increment: The sum of all the Product Backlog items completed during a Sprint.

Key Takeaways

  • **Agile** is an iterative approach focused on delivering value and responding to change.
  • The **Agile Manifesto** outlines the core values and principles.
  • **Extreme Programming (XP)** is a disciplined approach with specific engineering practices.
  • **Scrum** is a framework for managing complex projects with defined roles, events, and artifacts.

Next Unit

Unit 3: Requirement Analysis and Design

First Lecture: Requirement Gathering and Analysis

Q & A

Questions & Discussion