Agile Mudel - JOstapjuk/Konspeekt_Agiil GitHub Wiki

Agile Mudel

  • Definitsioon oma sõnadega

    Agile lähenemine on paindlik ja koostööpõhine tarkvaraarenduse metoodika, mis keskendub iteratiivsele arendusele, tihedale tagasisidele ja kiirele reageerimisele muutustele. Selle eesmärk on luua tarkvara kiiremini, suurendades samas kvaliteeti ja rahulolu.

  • Peamised omadused

    1. Iteratiivsus: Agile arendus toimub lühikeste tsüklitena (sprintidena), mis võimaldab pidevat täiustamist ja kiiret kohandamist.
    2. Kliendi kaasamine: Klient või lõppkasutaja on tihedalt kaasatud arendusprotsessi igas etapis, tagades, et arendus vastab vajadustele.
    3. Töötav tarkvara: Prioriteediks on töötava tarkvara loomine iga iteratsiooni lõpus, mitte ainult dokumentatsioon.
    4. Muutustele avatus: Agile meeskonnad on valmis kiiresti muutma oma tööplaani ja arendusprioriteete vastavalt tagasisidele või uutele nõudmistele.
    5. Tiimide koostöö: Meeskonnad töötavad tihedas koostöös ja suhtlevad pidevalt, et tagada projekti edukas lõppviimistlus.
  • Iteratsiooni näide

    Näide: Tarkvaraarenduse projektis, kus meeskond töötab veebirakenduse loomise kallal. Esimeses sprintis keskenduvad nad kasutajaliidese loomisele ja API-iga ühenduse tegemisele. Teises sprintis lisatakse täiendavad funktsioonid, nagu kasutaja autentimine ja andmete sisestamine. Iga sprint lõppeb töötava versiooniga, mida saab kasutaja testida ja tagasisidet anda.

  • Lisa skeem või joonis

{111E5F70-465E-4879-B81F-5892C0F67303}

  • Eelised

    1. Paindlikkus: Agile muudab meeskonnad võimekaks kiirelt reageerima muutuvatele nõudmistele ja probleemidele.
    2. Kiirem toote turule toomine: Lühikeste arendusperioodide jooksul suudab meeskond kiiresti välja tuua töötava tarkvara, mida saab testida ja täiustada.
    3. Kliendi rahulolu: Kuna klient on pidevalt kaasatud ja saab anda tagasisidet, suureneb lõpptoote vastavus klientide ootustele.
  • Puudused

    1. Halb planeerimine võib viia hajutatud eesmärkideni: Kui ei ole piisavalt ette planeeritud, võib iga sprinti tulemus olla väiksem ja vähem fokusseeritud.
    2. Ressursid ja ajakava võivad muutuda: Kuna projekti nõuded võivad iga iteratsiooniga muutuda, on võimalik, et ajakava ja ressursid ei ole alati kooskõlas.
    3. Raske keerukate projektide haldamine: Väga suured ja keerulised projektid võivad Agile meetodi puhul muutuda raskesti hallatavaks, kuna tuleb pidevalt muuta arenduse suunda.

2. Võrdlus: Agile vs Waterfall

  • Tabel või nimekiri võrdluseks

    Võrdle Agile ja Waterfall mudeleid järgmiste omaduste alusel:

    Kriteerium Agile Waterfall
    Lähenemine Iteratiivne ja paindlik Järjekindel ja lineaarne
    Tagasiside sagedus Pidev ja regulaarne iga sprinti lõpus Harv, ainult pärast täieliku arenduse lõppu
    Sobivus projekti tüübi järgi Väikesed ja keskmised projektid, kus on vajalik paindlikkus Suured ja fikseeritud nõuetega projektid
    Riskide juhtimine Väheneb igas iteratsioonis, kuna arendust kontrollitakse pidevalt Riskid võivad ilmneda hilisemates etappides, kuna testimine toimub hiljem
    Funktsionaalsuse valmimise järjekord Funktsioonid arenevad samm-sammult, testimine on pidev Kõik funktsioonid arendatakse enne testimist

Agile Model

Definition in Your Own Words

The Agile approach is a flexible and collaborative software development methodology that focuses on iterative development, frequent feedback, and quick adaptation to change. The main goal is to deliver working software faster while improving quality and customer satisfaction.


Key Features

  • Iterative Development
    Agile projects progress in short cycles called sprints, allowing for constant improvement and quick response to changes.

  • Customer Involvement
    Clients or end-users are actively involved throughout the development process to ensure the product meets real needs.

  • Working Software as Priority
    Each sprint ends with a working version of the product, not just documentation or design.

  • Openness to Change
    Agile teams are flexible and ready to shift priorities based on feedback or changing requirements.

  • Team Collaboration
    Continuous communication and teamwork are crucial for successful project delivery.


Example of an Iteration

Scenario: A team is building a web application.

  • Sprint 1: Focus on creating the user interface and connecting to the backend API.
  • Sprint 2: Add features like user authentication and data input forms.
  • After each sprint, a working version is delivered for user testing and feedback.

Diagram

{111E5F70-465E-4879-B81F-5892C0F67303}


Advantages

  • Flexibility
    Teams can quickly respond to changes in requirements or problems that arise.

  • Faster Time to Market
    Short development cycles allow teams to release working software early and often.

  • Customer Satisfaction
    Continuous involvement and feedback from the client help ensure the end product meets expectations.


Disadvantages

  • Poor Planning Risks
    Without proper planning, each sprint may lack clear focus or alignment with overall goals.

  • Resource and Schedule Changes
    Changing requirements can impact timelines and resource allocation.

  • Complexity in Large Projects
    Managing very large or complex projects can be challenging due to constant shifting in direction.


Agile vs. Waterfall Comparison

Criteria Agile Waterfall
Approach Iterative and flexible Sequential and linear
Feedback Frequency Continuous (after every sprint) Rare (usually after final product delivery)
Project Suitability Small to medium, where flexibility is needed Large projects with fixed, well-defined scope
Risk Management Lower risk due to constant testing Risks emerge later due to late testing
Function Delivery Incremental; testing throughout All functions delivered at the end, then tested