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:
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:
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:
Ə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 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ı:
Metodun işləməsi üçün aşağıdakı
mövqelər aydınlaşdırılmalıdır:
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:
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:
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:
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:
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:
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.