Layihə zamanı hansı metoddan istifadə etməli ? Agile yoxsa waterfall ?

Aydan Samedova
Pragmatech
Published in
6 min readAug 15, 2020

Layihəni həyata keçirdiyiniz zaman qarşınıza çıxan ilk suallardan biri “Hansı inkişaf metodologiyasından istifadə etməliyik?”. Araşdırdığınız zaman qarşınıza iki əsas seçim çıxacaq. İki əsas, ən populyar metodologiya bunlardır:

Waterfall (şəlalə): daha düzgün “ənənəvi” yanaşma adlandırıla bilər.
Agile(çevik): Sürətli Tətbiq İnkişafının xüsusi bir növü və Waterfall-dan daha yenisi.

Waterfall metodu

Proqram təminatına xətti bir yanaşmadır. Bu metodologiyada hadisələrin ardıcıllığı belədir :

  1. Sənəd tələblərini toplayın
  2. Dizayn
  3. Kod və vahid testi
  4. Sistem testini həyata keçirin
  5. İstifadəçi qəbulu testini (UAT) həyata keçirin
  6. Hər hansı bir problemi həll edin
  7. Hazır məhsulu təhvil verin

Waterfall metodunda bunların hər biri proqram inkişafının müəyyən bir mərhələsini təmsil edir. Hər bir mərhələ arasında adətən bir mərhələ qapısı da var, məsələn, dizayn başlamazdan əvvəl tələblər müştəri tərəfindən nəzərdən keçirilməli və təsdiqlənməlidir.

Müsbət cəhətləri :

Müştərilər inkişaf dövrünün əvvəlində nəyin veriləcəyi ilə razılaşırlar. Bu planlaşdırma və dizayn işlərini daha sadə edir. İnkişaf daha asanlıqla ölçülür, çünki işin bütün həcmi əvvəlcədən məlumdur. Layihə boyunca, komandanın müxtəlif üzvlərinin iştirakı və ya layihənin aktiv mərhələsindən asılı olaraq digər işləri davam etdirməsi mümkündür. Məsələn, iş analitikləri nə etmək lazım olduğunu öyrənə və sənədləşdirə bilər, tərtibatçılar digər layihələr üzərində işləyirlər. Kodlaşdırma davam edərkən testçilər tələb sənədlərindən test skriptləri hazırlaya bilər. Baxışlar, təsdiqlər, status görüşləri və s. İstisna olmaqla, tələblər mərhələsindən sonra müştərinin iştirakı qətiliklə tələb olunmur. Sonradan edilən dəyişikliklər layihəyə daha az təsir etmiş olur.

Mənfi cəhətləri :

Tələblərin müştəri üçün diqqətli şəkildə toplanması və sənədləşdirilməsi, ümumiyyətlə proqram inkişafının ən çətin hissəsidir. Müştərilər bəzən təfərrüatlarla qorxudurlar və layihənin əvvəlində təqdim olunan xüsusi detallar bu yanaşma ilə tələb olunur. Başqa bir potensial çatışmazlığı müştərinin təqdim olunan proqram məhsulundan narazı qalma ehtimalıdır. Görüləcək işlər sənədləşdirilmiş tələblərə əsaslandığından, müştəri demək olar ki, iş başa çatana qədər nəyin çatdırılacağını görə bilmir. O vaxta qədər dəyişikliklər həyata keçirmək çətin (və maddi cəhətdən ziyan) ola bilər.

Agile (çevik planlama) metodu

  1. İşə yarayan strategiyalardır. Düzgün istifadə edə bilsəniz əgər müsbət nəticələr alacaqsınız və qarışıq problemləri daha asan həll edə biləcəksiz .

2. Agilə- işi sistemə, çərçivəyə salır. Tapşırıqlar və cədvəllər yaratmaq əvəzinə, bütün vaxtlar “vaxt qutusu” adlanan mərhələlərə çevrilir. Hər bir işin müəyyən bir müddəti var, işin başlanğıcında planlaşdırılan çatdırılmaların siyahısı var.

3. Müştəri razılıgı ən önəmli şərtdir. İlk gündən müştəri nə istədiyini bilməz və müştərinin belə bir haqqı vardır. Çünki insan olaraq ortada konkret birşey görmədən tam fikri izah etmək çetin olur. Işin açarlarından biri də elə budur. Müştərinin nə istədiyini biləcəksiniz.

4. Layihənin deadline-nı doğru hesablamaq üçün : hər şey aydın olacaq, layihəni nə vaxt bitirəcəksiniz, maddi xərciniz nə qədər çıxacaq- bunları bilmək işinizi xeyli asanlaşdıracaq. Ən pis vəziyət sonradan hesablanmamış çıxan ziyanlardır. Müddət uzana bilər , təbii haldır ki, problem çıxa bilər, əks vəziyətin qarantisini vermək olmaz. Amma müddət uzansa belə keyfiyyətli iş çıxması şərtdir.

Agile-dan istifadə etməyin əgər istifadə məqsədi:

1.Biz də agile strategiyasından istifadə edirik demək üçün ;

2.Layihəni daha tez bitirmək üçün ;

3.Maddi xərcləri azaltmaq üçün olacaqsa;

Çevik planlama(düzgün planlama) lazımdır amma bu asan olmayacaqdır. Vərdişlər dəyişilməlidir və bu zaman alacaqdır, zamanla hər addımda səhvlər düzəldiləcək . Çevik strategiya sizin yaratdıgınız strategiyadır, özünüzə uyğun strategiyanı yaradın. Hazır strategiyalardan daha keyfiyyətli olacaq amma daha asan olmayacaq. Əvvəla anlamaq lazımdır mən necə insanam, mənə işləmək üçün nə lazımdır. Əks halda düşünsək ki, kənardan bir-birini tanımayan 15 proqramist çağırıb işi bitirməyə cəhd edək, təbii ki nəticə uğursuz olacaqdır.

Çevik bildirinin təməlindəki əsaslar və müsbət cəhətləri :

  1. Müştərinin tez-tez və erkən görülən işləri görmək, inkişaf layihəsi boyunca qərar və dəyişiklik etmək imkanı var.
  2. Müştəri, bütün layihə boyunca geniş və birbaşa layihə qrupu ilə işləyərək güclü bir maddiyat qazanır.
  3. İnkişaf daha çox istifadəçi yönümlüdür, bu isə müştərinin daha çox və tez istiqamətləndirməsinin nəticəsidir.

Ən önəmli şərt proqramistlərin işini vaxtından tez və dəvamlı təhvil verərək müştəri razılığı yaratmaqdır. Bu cümləyə daha yaxından nəzər yetirək :

“Dəvamlı təhvil” — əgər bunu həyata keçirəcək sistemi hazırlamamısınızsa işiniz çətin olacaq.

“Müştəri razılığı” — nə izləyirsiniz mi? Hansı yol ilə keçəcək bu həyata? Necə biləcəksiniz ki müştəri həqiqətən razıdır ? Bunun üçün sistem qurmağınız vacibdir.

“Vaxtından tez” — nə qədər bu sistem ile həyata keçərsə yaxşıdır. Deadline bitənə yaxın bir problem çıxa bilər. Bu səbəbdən çalışın işi zamanından əvvəl bitirmiş olasınız. Hər dəfə müştəri görülən işə razılıq bildirdikdən sonra işin dəvamı aparılmalıdır.

Çalışan team özü qısa zaman aralığı təyin edərək layihəni bir neçə həftədə yaxud bir neçə ayda sistemli şəkildə müştəriyə təqdim etməlidir.

“Çalışan” sözünə diqqət edək. Müştərinin işini edən deməkdir çalışan, yəni slide ilə təqdimat xoş gələcək bəli, ama pişiyin şəklini çəkməklə pişiyi göstərmək arasında fərqi anlayırsınız. Siz pişiyi göstərin ki hansı vəziyətə qədər gətirmisiniz, hansı inkişafdadır. Şərt deyil ki, aslan olsun pişik olsun amma öz işiniz olsun.

Bizə ehtiyaclarnızı deyin sonra iş bitənə qədər uzaq qalın -modeli yoxdur və olmayacaq. İş sahibləri və proqramistlər layihə boyunca hər gün birlikdə çalışmalıdırlar. Çeviklik yalnızca proqramistlərin edə biləcəyi birşey deyil qarsılıqlı iş münasibəti olmalıdır.

Mənfi cəhətləri :

  1. Müştərilərin cəlb edilməsi layihə üçün əla olsa da, iştirak üçün vaxtı və ya marağı olmayan bəzi müştərilər üçün problem yarada bilər.
  2. Çevik bir layihədəki yaxın iş əlaqələri, komanda üzvləri eyni fiziki məkanda yerləşdikdə asanlıqla idarə olunur, bu da həmişə mümkün olmur. Bununla birlikdə, bu problemi həll etmək üçün müxtəlif üsullardan, məsələn veb kameralar, əməkdaşlıq vasitələri və s. istifadə olunur.

Timebox.

Qrup nəinki vaxt çərçivəsi içində layihələrini etməyi sevirlər, eyni zamanda layihələri ümumiyyətlə iterasiya adlandırılan daha kiçik vaxt qutularına bölməyə üstünlük verirlər. İterasiya çevik qruplar üçün vacibdir, çünki onlar ən dəqiq təyin olunmuş planı hazırlayacaqları vaxt blokunu təmsil edirlər.Bir iterasiya əvvəlində, seçilmiş tələblərin hamısının iterasiya daxilində tamamlanacağını düşünərək, daxil ediləcək uyğun miqdarda tələbləri seçmək üçün bir qrup müştəri ilə birlikdə çalışacaqdır. Komanda daha sonra seçilmiş tələbləri kiçik hissələrə bölmək üçün birlikdə çalışacaq. Bir iterasyonun sonunda komanda, müştəri və ya müştəri vəkili tərəfindən araşdırılması üçün bir növ proqram təminatını buraxır.

Çevikdə iki əsas spikes növü var:
Texniki — komanda texniki seçimləri, yeni texnologiyaların təsirini və s.
Funksional — inkişaf qrupu yeni funksiyaların həllinə təsirini qiymətləndirdikdə və ya müəyyən xüsusiyyətləri iş ehtiyacına necə uyğun gəlir.

Team.

Gözlənilən iş prosesi : qrup üzvləri dünən nə etdi , sabah nə edəcək ,çətinlik çəkdiyi hissə varmı? Qrup işi olması üçün hər cür şərait yaradılmalıdır. Hər qrupun düzgün idarəsi üçün qrup liderləri qoyulur. Qrup lideri o zaman doğru deadline qoya bilər ki, qrup üzvlərini yaxşı tanısın lakin hər vəziyyətdə qrup üzvləri ilə ortaq qərar alınmalıdır.

Adətən ən böyük səhv detallı texniki tapşırıq çıxarmamaqdan qaynaqlanır. Əgər texniki tapşırıq izahlı şəkildə çıxarılarsa qoyulan deadline-dan öncə yaxud vaxtında layihə bitmiş olacaqdır.

Team inkişafa yönümlü olmalıdır. Sabit sürəti sona qədər aparmalıdır. Texniki mükəmməllik və yaxşı dizayn məsələsindəki düzgün yanaşma çevikliyi artıracaqdır. Görülən iş elə keyfiyyətdə olmaldır ki, layihənin son 3 həftəsinə qalmış müştəri dəyişiklik istəsə o dəyişiklik layihədə ciddi problem yaratmamalıdır. Qurulan team özü birlik olmalı səhvləri üzərində müzakirələr aparmalı və bir birinə güvənməlidir. Müzakirələrin əsas mövzusu necə daha keyfiyyətli iş görə bilər sualına cavab tapmaqdır.

Nəticə

Layihəyə başlayarkən əvvəlcə hansı metoddan istifadə edəcəynizə qərar verin.

Agile(Çeviklik) metodu- işin düzgün yönləndirilməsinin tempinin təskil olunmasını prinsipini güdür, vaxtından tez ve dəvamlı nəticələr əldə edildiyi, hərşeyin açıq və asan izlənildiyi işi birlikdə yaradıb razılıq ilə ortaya çıxarılan fərqli istəklərin normal qarşılandığı çalışma formasıdır.

Waterfall(şəlalə) metodu - Müştərilər üçün layihə başlamazdan əvvəl əvvəlində plan qurulur. İş prosesi bitənə qədər müştərilər qarışmır. Mərhələlər vaxtından əvvəl başa çatır.

Mənbələr :

https://www.youtube.com/watch?v=A7c4g-bzUrM&t=4432s

https://www.seguetech.com/

--

--