Agile Software Development: Principles, Methods, and Practical Applications - Prof. Michae, Lecture notes of Computer Science

A comprehensive overview of agile software development methodologies, contrasting them with the traditional waterfall model. It delves into the core values and principles of the agile manifesto, explores popular agile methods like scrum, kanban, and extreme programming, and introduces the hybrid approach of scrumban. Valuable for understanding the benefits and challenges of agile development, and for applying these principles in real-world software projects.

Typology: Lecture notes

2023/2024

Uploaded on 12/02/2024

prabhat-kalle
prabhat-kalle ๐Ÿ‡บ๐Ÿ‡ธ

1 document

1 / 30

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Project
Management
Agile Methods in Practice
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Partial preview of the text

Download Agile Software Development: Principles, Methods, and Practical Applications - Prof. Michae and more Lecture notes Computer Science in PDF only on Docsity!

Software Project

Management

Agile Methods in Practice

In the Beginning: Waterfall Method

  1. Requirements
  2. Design
  3. Implementation
  4. Verification
  5. Maintenance

Does this look familiar?

In the Beginning: Waterfall Method

Best suited for:

โ— Projects with well-defined, fixed requirements โ— Less complex objectives with predictable outcomes โ— Industries requiring high reliability, like aerospace or defense

In 1985, the United States Department of Defense adopted the waterfall model in its DOD-STD-2167 standard for software development contractors.

Rethinking Project Management: Agile Methodology

โ— Problems associated with the Waterfall approach need to be addressed.

โ— Agile is a software development methodology (philosophy) that emphasizes iterative progress, collaboration, and flexibility.

โ— Has enjoyed widespread adoption in software development.

Other Common Challenges Agile Addresses

5. Poor Communication and Collaboration

6. Scope Creep

7. Resource Allocation

8. Timeline Constraints

9. Quality Control

10. Team Collaboration

11. Lack of Stakeholder Engagement

12. Inflexibility

Addresses Common Project Challenges

  1. Resistance to Change
  2. Insufficient Planning
  3. Changing Requirements
  4. Lack of Management Support (N/A)

We anticipated these. My expectations went something like this:

โ€œYour plan will be wrong and thatโ€™s OK. Change it when needed.โ€

Agile Manifesto - Four core values

  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 plan

Agile Manifesto - 12 Guiding Principles

  1. Customer satisfaction through early and continuous delivery of valuable software or products
  2. Welcome changing requirements, even late in development
  3. Deliver working software frequently
  4. Business people and developers must work together
  5. Build projects around motivated individuals.
  6. The most efficient and effective 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 enhances agility
  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. the team reflects on how to become more effective, then tunes and adjusts its behavior

Some Popular Agile Methods

  1. Scrum
  2. Kanban
  3. Extreme Programming (XP)
  4. Lean Development
  5. Crystal
  6. Dynamic Systems Development Method (DSDM)
  7. Feature-Driven Development (FDD)

*plus scaled versions of some of these

3 Popular Agile Methods

  1. Scrum
  2. Kanban
  3. Extreme Programming (XP)

Scrum

โ— Key concepts: โ—‹ Sprints โ—‹ Product Backlog โ—‹ Sprint Backlog โ— Roles: โ—‹ Product Owner โ—‹ Scrum Master โ—‹ Development Team โ— Scrum Workflow โ—‹ Sprint Planning โ—‹ Daily Scrum โ—‹ Sprint Review โ—‹ Sprint Retrospective โ— Suitable projects: โ—‹ Complex projects with changing requirements, team size of 5-9 members

Kanban

โ— Key concepts โ—‹ Visualizing workflow โ—‹ Work in Progress (WIP) limits โ— Kanban board โ— Suitable projects โ—‹ Ongoing work with varying priorities โ—‹ Maintenance projects

Kanban Board

Uses a visual representation of the state of each โ€œwork itemโ€ represented on a โ€œKanban cardโ€. The location of the card on the board and, perhaps, its color conveys information about the item and its status.

The card will contain information about the work item:

โ— Description โ— Assignee โ— Estimated time for completion

Example status columns: Requested -> in progress - > in review -> done

Extreme Programming (XP)

โ— Key practices โ—‹ Pair programming โ—‹ Test-Driven Development (TDD) โ— Suitable projects โ—‹ Small to medium-sized teams โ—‹ Projects with changing requirements