Drag

Sizə Faydalı Məlumat

Marketinq 12/23/2024 4:46:00 PM
Agile Nədir

Raqəmsal texnologiyalar getdikcə daha çox həyatımıza daxil olur. Bəzi hallarda bu texnologiyalar bizə sadəcə yeni servislər və yeni imkanlar deyil, internet və telekommunikasiyalar sahəsində tamamilə yeni perspektivlər təqdim edir. Lakin yeni servislərin, onlayn-mağazaların, CRM sistemlərinin, mobil tətbiqlərin, messencerlərin və digər rəqəmsal platformaların istifadəçilərin tələblərinə maksimum cavab verməsi üçün sadəcə texniki tərəfə deyil, daha çox ümumi yanaşma və hətta fəlsəfəyə də fikir vermək lazımdır.

Məhz bu cür yanaşma IT sahəsindən bizə Agile fəlsəfəsini gətirib çıxarıb, hansı ki, onun əsas prinsipləri bir çox başqa sahələrdə də tətbiq oluna bilər. Bu fəlsəfə nədir və harada faydalı ola bilər?

Agile nədir: qısa tarixçə
Çox vaxt sadəcə “agile” sözünün mexaniki tərcüməsi bu anlayışın tam mənasını açıqlamır. Google Tərcüməni “agile” sözünü “çevik” kimi tərcümə edir, amma əks tərcümədə bu sözü dərhal “flexible” kimi qəbul edir ki, bu da eyni zamanda “çevik” deməkdir.

Fərqin əsası, “flexible” sözünün mexaniki çeviklik nəzərdə tutmasında, “agile” anlayışının isə dərindən düşüncə çevikliyi, yaxud mental elastikliyi əhatə etməsidir. Kontekstdən asılı olaraq, “agile” sözünü “tez reaksiya verən”, “çevik”, “hərəkətli”, “manevrə qabiliyyətlə” kimi başa düşmək olar.

Bu anlayışların hamısını birdənə qəbul etdikdə, “agile” mövzusunun daha tam izahı ortaya çıxır. Bəs, fəlsəfə buradə necə əlaqəlidir? Buna açıqlıq gətirmək üçün “Agile Manifestinin yaradılma tarixi” D. Blinov, 2021 çox mühüm rol oynayır.

İlk olaraq, Agile Manifesti nədir? Bu, proqram təminatını hazırlayarkən riayət edilməsi lazım olan əsas prinsiplər və dəyərləri müəyyənləşdirən bir sənəddir. Manifestin detallı izahını daha sonra verəcəm, amma indi məqsədimiz kimi, əsasən tarixi aspektə toxunuruq.

IT texnologiyalarının inkişafı ilə birlikdə proqram təminatı üzərində işlər daha geniş miqyas alıb, və bu şəraitdə aydın şəkildə texniki tapşırıq (TT) hazırlamaq getdikcə çətinləşdi. Sifarişçilər çox vaxt nə istədiklərini tam dəqiq başa düşmür.

Agile Manifest: 12 Prinsip və 4 Dəyər

Beləliklə, Agile Manifest proqram təminatının hazırlanması və müştərilərlə qarşılıqlı əlaqə zamanı riayət olunmalı əsas dəyərləri və iş prosesində əsaslanmalı prinsipləri müəyyən edir [agilemanifesto, 2001]. Bəs Agile Manifest hansı dəyərləri irəli sürür?

Agile-in 4 əsas dəyəri:

  1. İnsan prosessdən və ya alətdən daha önəmlidir.
  2. İşlək məhsul onu təsvir edən sənəddən daha vacibdir.
  3. Əməkdaşlıq müqavilə şərtlərinin razılaşdırılmasından daha vacibdir.
  4. Dəyişikliklərə hazırlıq ilkin texniki tapşırıqdan (TT) daha önəmlidir.

Manifest müəlliflərinin qeyd etdiyi kimi, "sağ tərəfdə yazılanların əhəmiyyətini başa düşsək də, solda yazılanlar daha vacibdir" [Agilemanifesto, 2001]. Qısaca desək, bu yanaşma insanın birinci, kompüterdə olanların isə ikinci dərəcəli olduğunu göstərir. Buna görə də, əvvəlcə müştərinin məsələsini həll etmək, sonra isə inkişaf mərhələsinə keçmək lazımdır. Bu, Agile-in əsas prinsiplərinin işarə etdiyi əsas yanaşmadır, hansı ki, onları qısa formada təqdim edirik.

Agile-in 12 prinsipi:

  1. Ən yüksək prioritet müştəri tələblərinin ödənilməsidir.
  2. Dəyişikliklər hər hansı bir mərhələdə qəbul edilə bilər.
  3. Yeni funksional məhsulların mümkün qədər tez-tez buraxılması.
  4. Layihə boyunca inkişaf etdiricilər və müştərilər birlikdə çalışmalıdır.
  5. Peşəkarlar üçün şərait yaratmaq, dəstək təmin etmək və onların peşəkarlığına etibar etmək lazımdır.
  6. Ən yaxşı kommunikasiya üsulu – birbaşa ünsiyyətdir.
  7. İşlək məhsul – düzgün istiqamətdə səylərin əsas göstəricisidir.
  8. İnvestorlar, inkişaf etdiricilər və istifadəçilər sabit və davamlı ritmi qorumaq imkanı əldə etməlidirlər.
  9. Keyfiyyət və təkmilləşdirməyə daim diqqət yetirilməlidir.
  10. Lazımsız işlərin minimallaşdırılması sənəti kimi sadəlik mühüm şərtdir.
  11. Ən yaxşı tələblər, memarlıq və texniki həllər keyfiyyətli komandada yaranır.
  12. Komanda daim effektivliyi artırma yollarını axtarmalıdır.

Bu prinsiplər, Agile Manifestin iterativ yanaşmanı vurğuladığını göstərir, burada iş prosesi əldə edilən nəticələrin daimi təhlili və növbəti mərhələlərin tənzimlənməsi ilə paralel şəkildə həyata keçirilir. Layihənin hər mərhələsi PDCA ardıcıllığını təkrarlayan bir sıra fəaliyyətlərdən ibarətdir:

  • Plan (planlaşdırma).
  • Do (icra).
  • Check (yoxlama).
  • Act (zərurət olduqda düzəliş və növbəti dövr).

Əsasən, Agile inkişafı müştəri və onun tələblərinə əsaslanaraq məsələlərin çevik həlli yanaşmasıdır. Prinsipcə, müştəri xidmətini və xidmətin təkmilləşdirilməsini istəyən hər biznes bu yolu seçməlidir.

Agile fəlsəfəsi və idarəetmə İnternetdə zaman-zaman "Agile nədir: metodologiya, yoxsa fəlsəfə?" mövzusunda araşdırmalar mövcuddur.

Ən məntiqlisi Agile-i çevik metodlar və yanaşmalar birliyi, eləcə də Agile fəlsəfəsi kimi fərqləndirməkdir. Agile layihələrdə istifadə edilən əsas metodlara və yanaşmalara baxaq.

Agile-in əsas metodları:

  • Scrum
  • Kanban
  • eXtreme Programming (XP)
  • DSDM
  • FDD

Scrum metodu Scrum adı məşhur Amerika oyunu olan Reqbi ilə əlaqəlidir. Bu idman növündə müdafiə və hücum xəttlərinin qurulması və uğurun komanda işindən asılı olması ilə iş dünyasında komanda işinin vacibliyi arasında oxşarlıq var.

Scrum termini ilk dəfə 1980-ci illərin əvvəllərində yapon tədqiqatçılar Hirotaki Takeuçi və İkudjiro Nonaka tərəfindən istifadə olunub. Scrum 1993-cü ildə amerikalı proqramçı Ceff Sazerlend tərəfindən metod kimi təqdim edilib.

Bu metod Ceff Sazerlendin "Scrum. Layihələrin idarə edilməsində inqilabi metod" C. Sazerlend, 2017 kitabında ətraflı izah olunub. Microsoft, Amazon, Yahoo, Siemens Healthcare kimi nəhəng şirkətlər bu metodu qəbul edib.

Scrum-un ixtisaslaşmalardan və tətbiq olunan fərqli nüanslardan asılı olmayaraq bir neçə əsas prinsipləri var:

Scrum-un əsasları:

  • Product Backlog (layihənin tələbləri).
  • Sprint Backlog (müəyyən dövr üçün görüləcək tələblər).
  • Sprint Goal (sprinin məqsədi).
  • Sprint Burndown Chart (tələblərin icrası zamanı yenilənən diaqram).

Metodun işləməsi üçün aşağıdakı mövqelər aydınlaşdırılmalıdır:

  1. Məhsul sahibi (Product Owner) – qərar qəbul edən şəxs, ideal olaraq sifarişçini təmsil edən və qərar qəbul etmək, düzəlişlər etmək və nəticələri təsdiqləmək səlahiyyətinə malik olan biri.
  2. İnkişaf komandası (Delivery Team) – optimal olaraq 10 nəfərə qədər olmalıdır.
  3. Scrum master – layihənin gedişatına nəzarət edən şəxs.
  4. Aydın tələblər (Product Backlog), ən azı başlanğıc mərhələdə, və hər tələbin prioriteti.
  5. Vaxt dövrü (Sprint Backlog) – hər tapşırığın və ya əlaqəli tapşırıqlar blokunun icrası üçün.
  6. 15 dəqiqədən çox olmayan gündəlik iclaslar.
  7. Hazır məhsulun nəzərdən keçirilməsi.
  8. Hər tapşırıq blokundan sonra yekunların çıxarılması.

Scrum Agile metodlarından biri olsa da, yeganə deyil.



Kanban
Scrum-dan fərqli olaraq, Kanban-da Product Owner və Scrum Master kimi nüanslar önəmli deyil. Scrum-u şərti olaraq "struktur yanaşması" kimi xarakterizə etmək olar, Kanban isə "tarazlıq yanaşması" təklif edir. Kanban, prosesi tam şəffaf etməyi və vəzifələrin bərabər paylanmasını nəzərdə tutur.

Bu yanaşma, həmçinin dayanmaları və ya təcili işləri demək olar ki, istisna edir. Bütün "proses ardıcıllığı" mərhələlərə və ya dövrlərə deyil, konkret tapşırıqların icrası mərhələlərinə bölünür:

  • "Planlaşdırılır".
  • "Hazırlanır".
  • "Test edilir".
  • "Tamamlanır".
    Əslində, çox vaxt CRM sistemləri belə bir prinsipə uyğun layihələndirilir və burada dərhal hansı əməliyyatın hansı mərhələdə olduğu görünür: satış, alış, layihə təsdiqi və s. Eyni prinsiplə Gantt diaqramı qurulur ki, bu da prosesi əsas hissələri ilə vizual olaraq sinxronlaşdırır və hər bir tapşırığın hansı mərhələdə olduğunu göstərir.

eXtreme Programming (XP)
Burada ad özü hər şeyi izah edir. Adətən bir neçə gün və ya hətta həftə davam edən bütün proseslər ekstremal dərəcədə sürətli və qısa olur. Məsələn, eXtreme Programming (XP) praktikasında "cütlənmiş proqramlaşdırma" tətbiq edilir, burada bir inkişaf etdirici kodu yazır, digəri isə dərhal yazılmış kodu səhvlər və uyğunsuzluqlar baxımından yoxlayır. Testlər yazılmış kodun tamlıqla işləyən bloklarından dərhal sonra həyata keçirilir və dərhal düzəlişlər edilir, əgər nəsə düzgün işləmirsə.

Bu metod daha ətraflı şəkildə müəllifin "Ekstremal Proqramlaşdırma. Testlərlə inkişaf" adlı kitabında təsvir edilib (C. Beck, 2002). Biz bu metodun əsas prinsiplərini qısa şəkildə təqdim edirik:

  • Kodun hazırlanması bütün komanda üçün eyni standartlara uyğun olmalıdır.
  • Kodun yazılmasından əvvəl onun testləri yazılmalıdır.
  • "Dinləmə" prosesi həm inkişaf etdiricilər, həm də müştərilər tərəfindən həyata keçirilir ki, bu da bütün sualları aradan qaldırmağa və hər kəsin bir-birini düzgün başa düşdüyündən əmin olmağa imkan verir.
  • Növbəti mərhələnin planlaşdırılması həm əvvəlki mərhələnin sonunda, həm də cari mərhələnin həyata keçirilməsi zamanı aparılır, əgər bu zərurətdirsə.
  • Bütün bu tədbirlər proqram təminatının inkişafı üçün dəyişən tələblərlə işləməyə kömək edir və müştəri üçün optimal nəticəni təmin edir.

DSDM
DSDM "Dynamic Software Development Method" (Dinamik Proqram Təminatı İnkişafı Yöntəmi) olaraq şərh olunur. Bu, məqsədlər və resurslar üzrə planlaşdırma ilə başlayır, ardınca layihə və post-layihə mərhələlərini əhatə edir ki, bu da inkişafın uğurlu işləməsini təmin edir.

DSDM-in 9 prinsipi:

  1. Müştərinin mümkün istifadəçi olaraq maksimum cəlb edilməsi.
  2. İnkişaf etdirici komandasının rəhbərliklə əlavə təsdiq olmadan maksimum qərarları özbaşına qəbul etmə haqqı.
  3. Yaxşı etmək həmişə mükəmməl etməyə nisbətən daha vacibdir, amma vaxtında edilməlidir.
  4. Proqramın funksionallığı ilə bağlı kritik problemlərin sürətli şəkildə həll edilməsi vacibdir.
  5. Müştəri ilə geribildirim əsas faktor olaraq optimal nəticəyə çatmaq üçün mühümdür.
  6. Hər hansı bir dəyişiklik geri alınabilir olmalıdır.
  7. Layihə başlamazdan əvvəl əsas tələblər müəyyən edilməlidir.
  8. Testlər inkişaf prosesinə tam şəkildə daxil edilməlidir.
  9. Proses iştirakçıları arasında sıx əməkdaşlıq uğurun açarıdır.

Göründüyü kimi, burada daha əvvəl danışdığımız digər metodlarla çox şey ortaqdır. Bu, təbii ki, Agile-ə aiddir. Metod haqqında daha ətraflı məlumatı "DSDM: Dynamic Systems Development Method" adlı kitabda tapa bilərsiniz (J. Stapleton, 1999). Kitabın nəşr tarixi keçmiş olsa da, əsas postulatlar hələ də aktualdır.

FDD
FDD "Feature Driven Development" (Xüsusiyyət Yönümlü İnkişaf) olaraq şərh olunur. Maraqlıdır ki, bu metod Agile manifestindən əvvəl yaranıb, amma tam olaraq Agile fəlsəfəsinə uyğundur.

FDD mərhələləri:

  1. Ümumi modelin inkişafı, məhsulun həll etməli olduğu tapşırıqların müəyyən edilməsi.
  2. Sistem funksiyalarının siyahısının tərtibi, bunlar həll edilməsi lazım olan tapşırıqlara əsaslanır.
  3. Hər bir funksiyanın inkişafının planlaşdırılması.
  4. Əvvəlcədən müəyyən edilmiş bütün funksiyaların layihələndirilməsi.
  5. Əslində inkişaf.

FDD-də Agile metodikalarının digər üsullarına nisbətən sistemin əvvəlcədən modelləşdirilməsinə daha çox diqqət yetirilir. Lakin bu, digər metodların üstünlüklərini heç də azaldır.

Agile-in Üstünlükləri
Ən əsas üstünlük Agile-in dəyişikliklərə sürətlə cavab vermə qabiliyyətidir, çünki müasir dünyada dəyişikliklər çoxdur. Rəqəmsal dünya, necə deyərlər, reallığın əksidir və burada da dəyişikliklər daimi olur.

Agile tətbiqinin optimal variantı kiçik inkişaf komandalarıdır, burada işçilər bir otaqda birləşir və qərarları bir şəxs qəbul edir.

Agile inkişafının əsas üstünlükləri:

  • Bütün maraqlı tərəflərin prosesə yüksək səviyyədə cəlb edilməsi, bu da anlaşılmazlıqları və gecikmələri istisna edir.
  • Sürətli və proqnozlaşdırıla bilən inkişaf vaxtları.
  • Dərhal düzgün işləməyən və ya gözlənilən kimi işləməyən hər şeyi düzəltmək imkanı.
  • Nəticə və biznes üçün dəyərə fokuslanmaq, "incəsənət uğruna incəsənət"ə çevrilmə riski olmadan.

Agile-in Əskiklikləri
Agile metodlarının zəif tətbiqi böyük layihələr və mürəkkəb iyerarxiya ilə təşkilatlar üçün keçərlidir. Əgər hər bir kiçik dəyişiklik əvvəlcə marketinq şöbəsi ilə, sonra marka meneceri ilə, sonra PR direktoru ilə, sonra baş direktorla və nəhayət direktorlar şurasının ayda bir dəfə keçirilən iclasında təsdiqlənməlidirsə, Agile metodları burada işləməz.

Bundan əlavə, Agile metodlarının həyata keçirilməsi komandanın birgə işini və müştərinin daimi iştirakı ilə əlaqəlidir, buna görə də uzaqdan iş şəraitində Agile-in tətbiqi çətinləşir. Lakin, IT şirkətlərinin rəhbərləri belə hər zaman "Ofisdə işləmək daha yaxşı və effektivdir" mövzusunda çoxsaylı arqumentlər tapır.

Bəzən Agile inkişafının mənfi cəhətləri olaraq, proqram təminatının yekun versiyasının heç vaxt buraxılmaması riski göstərilir, çünki Agile davamlı plan düzəlişlərini və nəticələrin təkmilləşdirilməsini nəzərdə tutur, bu da perespektivizmə meyl göstərərək vaxtın itirilməsi riski yaradır.

Bu narahatlıqlar müəyyən dərəcədə süni ola bilər. Əgər başlanğıcda biznes məqsədi, məhsulun tələbləri və inkişaf zamanı yönələcək meyarlar dəqiq müəyyən edilibsə, perespektivizm heç bir təhlükə yaratmaz və müştərilər işləyən məhsuldan tam razı olacaqlar.

Beləliklə, Agile prinsiplərinin üstünlükləri açıqca nəzərə çarpır. Agile metodlarının tətbiq sahəsi artıq yalnız IT sahəsindən kənara çıxmış və istehsal avadanlıqları, sənaye mexanizmləri və hətta istehlak mallarının inkişafında geniş istifadə edilməyə başlanmışdır. Məsələn, Britax B-Agile uşaq arabasının arxasız təkərləri və qatlanan çərçivəsi bu yanaşmanı təcəssüm etdirir.

 

AĞLINIZDA MARAQLI İDEYA VAR ?

BİZƏ YAZIN