Methodologies: Agile

Resources

2_1_2 Agile.pptx2648.2KB
1_2 Sys Development Methodologies.pptx945.7KB
allSlides-SA.pdf4607.7KB

What is it?

A methodology is a formalized approach to implementing the SDLC (i.e., it is a list of steps and deliverables). Each methodology is unique and differs based on order and focus on some particular part of SDLC steps.

Software processes can be improved by process standardization. This leads to improved communication, faster release, better quality.

Types of methodologies:

  • Plan-driven = activities are planned in advance, and progress measured against the plan
  • Agile = planning is incremental, and it is easy to change the process depending on customer requirements.

Classes of methodologies:

  • Structured Development = step by step approach
    • Waterfall Development
    • Parallel Development
  • Rapid Application Development
    • Phased
    • Prototyping
  • Agile Development
    • eXtreme Programming
    • SCRUM

Waterfall and V-model

  • Sequential and plan-driven methodology, you must plan and schedule all of the process activities before starting work on them.
Waterfall
V-Model

Agile

  • Agile is an iterative approach that focuses on collaboration, customer feedback and small rapid releases.
  • All agile development methodologies are based on the agile manifesto and a set of twelve principles.
    • Individuals and interactions over processes and tools
    • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan
  • Iterative (start every time from scratch) and incremental
  • Agile development
    • Agile is PM philosophy with values and principals but NOT strict institutions how to build the process
    • Kanban, SCRUM are frameworks that have instructions how to set up process
    • TDD and BDD can be integrated into SCRUM or Kanban
    • It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams. And being flexible depending on customers needs.
  • Behavior Driven Development (BDD) Framework enables software testers to complete test scripting in plain English. BDD mainly focuses on the behavior of the product and user acceptance criteria. Cucumber is one of the best tools used to develop in the BDD Framework.
  • Picture (Given, And, When, Then)

DevOps culture

  • DevOps supports Agile’s release cycle. Collaboration between dev and operation teams are important to bring the product into production.
  • Both DevOps and agile offer a structure and framework that can speed software delivery. You do not need to choose between DevOps or agile—instead, you can make use of both methodologies.
  • image
  • Differences:
  • Agile
    DevOps
    Agile refers to an iterative approach which focuses on collaboration, customer feedback, and small, rapid releases.
    DevOps is considered a practice of bringing development and operations teams together. Collaboration is important, without string framework rules.
    Agile process focusses on constant changes.
    DevOps focuses on constant testing and delivery.
    Agile offers shorter development cycle and improved defect detection.
    DevOps supports Agile’s release cycle.
SuperMade with Super