Agile Methodology


Agile methods are system development methodologies that propose incremental implementations, respond to rapidly changing requirements, and reduce the emphasis on rigorous requirements.

  • E.g., Scrum and extreme programing
  • rooted in the Manifesto for Agile Software Development
    • 4 basic premises:
      • Individuals and interactions are more important than processes and tools
      • Working software is preferable to comprehensive documentation
      • Customer collaboration replaces contract negotiation
      • Responding to change is key, rather than following a plan
  • tends to break work up into smaller units
    • done more quickly and with less up-front planning
  • focuses on adapting to needs rather than predicting them
  • major milestones are subject to change as project advances
  • work is broken up into short working sessions
    • called sprints
    • can last days to a few weeks

12 Agile Principles

  1. Ensure customer satisfaction via early and continuous delivery of software
  2. Welcome changing requirements, even late into the development process
  3. Deliver working software frequently (in weeks rather than months)
  4. Ensure daily cooperation between developers and business people
  5. Projects should be built around motivated individuals who get the support, trust, and environment they need to succeed
  6. Face-to-face conversations are the most efficient way to convey information inside the development team
  7. Progress is measured by having working software
  8. Development should be done at a sustainable pace that can be maintained on an ongoing basis
  9. Pay 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. Teams should reflect on how to become more effective and then implement that behavior at regular intervals

Specialized Agile Terms

  • Backlogs are lists of features or tasks that are required to complete a project
  • Sprint retrospective are held at the end of sprints to discuss what went well and what didn’t and what can be improved for the next sprint
  • Planning poker is a tool for estimation and planning used in Agile development processes
    • estimators are given cards with values for the amount of work required for a task
    • estimators are asked to estimate, and each reveals their “bid” on the task
    • this is done until agreement is reached
    • goal is to have estimators reach the same estimate through discussion
  • Timeboxing describes the use of timeboxes, which is a previously agreed-upon time that a person or team uses to work on a specific goal
    • limits time to work on a goal to the timeboxed time
      • rather than until completion
    • once over, the work is assessed to see what should occur next
  • User stories are collected to describe high-level user requirements
  • Velocity tracking is conducted by adding up the estimates for the current sprint’s effort and then comparing to what was completed
    • tells the team if they are on track

Types of Agile Methodologies

Scrum

Scrum is a hands-on system consisting of simple steps:

  1. The system owner makes a prioritized wish list.
  2. The scrum team selects an item toward the top of the wish list and plans the implementation during an event called “sprint.”
  3. The team completes the list of objectives while assessing progress in daily meetings called scrums.
  4. The sprint ends with the system ready to be released.
  5. A new sprint starts, using another item on the wish list.
  6. This process continues until the prioritized wish list is clear.

Extreme Programming (XP)

Systems are developed by a team of fewer than a dozen individuals working in a communal workspace, where they freely share ideas and assist each other in the development project.

  • system is developed incrementally by repeated daily cycles
  • informal processes
  • regular system updates

What are the benefits of Agile methodology?

  • Quick
  • increases customer satisfaction
  • values employees
  • reduces rework