Estimat — tapşırığı yerinə yetirmək, funksionallığı hazırlamaq və ya bütövlükdə layihəni həyata keçirmək üçün tələb olunan əmək xərclərinin kəmiyyət qiymətləndirməsidir. Mobil inkişafda estimatlar sprintlərin planlaşdırılması, xərclərin müəyyən edilməsi və müştəri gözləntilərinin idarə edilməsi üçün istifadə olunur. Project Management Institute, 2024-ün məlumatına görə, layihənin ilkin mərhələlərində qiymətləndirmə xətası 100%-ə çata bilər ki, bu da estimatı inkişafın ən çətin fənlərindən birinə çevirir.
Əsas məqamlar
Estimat (ing. estimate — qiymətləndirmə) — tapşırığı yerinə yetirmək üçün tələb olunan vaxt və ya səyin miqdarının proqnozlaşdırılmasıdır. Mobil inkişafda estimatlar saatlar, günlər, stori-pointlər və ya pul ekvivalenti ilə ifadə olunur. Estimatın məqsədi dəqiq proqnoz deyil, qərarlar qəbul etmək üçün qeyri-müəyyənliyin azaldılmasıdır.
Estimat — xəta marjası olan proqnozdur. Öhdəlik (commitment) — tapşırığı müəyyən tarixə yerinə yetirmək vədidir. Fərq kritikdir: estimat “yəqin ki, 5 gün” deyir, öhdəlik isə “5 günə edərik”. Menecerlər tez-tez bu anlayışları qarışdırır, estimatı səhv etmək hüququ olmayan son tarixə çevirirlər.
Qiymətləndirmə prosesi nəticəsi qədər vacibdir. Komanda tapşırığın qiymətləndirməsini müzakirə edərkən gizli tələblər, asılılıqlar və risklər üzə çıxır. Yekun rəqəm qeyri-dəqiq olsa belə, müzakirə bütün iştirakçılara tapşırığı anlamaq imkanı verir. Buna görə kollektiv qiymətləndirmə metodları (Planning Poker) fərdi metodlardan daha effektivdir.
Bir neçə qiymətləndirmə metodu mövcuddur, hər biri layihənin müxtəlif mərhələləri və detallaşdırma səviyyələri üçün uyğundur. Metodun seçimi mövcud məlumatlardan və tələb olunan dəqiqlikdən asılıdır.
| Metod | Tip | Dəqiqlik | Nə vaxt istifadə etməli |
|---|---|---|---|
| Planning Poker | Ekspert, kollektiv | Yüksək (sprintdə) | Sprint üçün tapşırıqların qiymətləndirilməsi |
| T-Shirt sizing | Ekspert, sürətli | Orta | Epiklərin ilkin qiymətləndirilməsi |
| Analoq qiymətləndirmə | Tarixə əsaslanan | Orta | Keçmişdə oxşar tapşırıqlar |
| Three-point (PERT) | Ehtimallı | Orta səviyyədən yüksək | Yüksək qeyri-müəyyənlikli tapşırıqlar |
| Parametrik | Formula əsaslanan | Məlumatlardan asılıdır | Eyni tipli ölçülə bilən tapşırıqlar |
Planning Poker — Agile-də ən məşhur qiymətləndirmə metodudur. Hər bir proqramçı Fibonaççi ədədləri (1, 2, 3, 5, 8, 13, 21) olan kart dəstəsi alır. Tapşırığı müzakirə etdikdən sonra hamı eyni anda kartı göstərir. Qiymətlər fərqlənirsə — minimal və maksimal qiyməti verən proqramçılar öz məntiqlərini izah edir, sonra təkrar səsvermə keçirilir. Metod nüfuzlu şəxslərin təsirini aradan qaldırır və daha dəqiq qiymətləndirmə verir.
T-Shirt sizing — köynək ölçüsünə görə kobud qiymətləndirmə: XS, S, M, L, XL, XXL. Metod ilkin mərhələlərdə, detallar məlum olmayanda böyük tapşırıqları (epikləri) tez qiymətləndirmək üçün istifadə olunur. Sonra hər bir belə tapşırıq dekompozisiya edilir və Planning Poker-də qiymətləndirilir. T-Shirt sizing hər tapşırığa 5-10 dəqiqə çəkir, ancaq yalnız böyüklük sırasını verir.
PERT üç qiymətləndirmədən istifadə edir: optimist (O), pessimist (P) və ən çox ehtimal olunan (M). Yekun qiymətləndirmə düsturla hesablanır: (O + 4M + P) / 6. Metod qeyri-müəyyənliyi nəzərə alır və tək qiymətləndirmədən daha realist nəticə verir. PERT yüksək riskli və ya yeni texnologiyalı tapşırıqlar üçün xüsusilə faydalıdır.
Estimatın dəqiqliyi layihənin mərhələsindən və məlum olan informasiyanın miqdarından asılıdır. Qiymətləndirmə nə qədər tez aparılsa, xəta marjası bir o qədər yüksək olur — bu normaldır və planlaşdırmada nəzərə alınmalıdır.
Qeyri-müəyyənlik konusu (Cone of Uncertainty) — layihə irəlilədikcə qiymətləndirmə xətasının necə azaldığını təsvir edən modeldir. Konsepsiya mərhələsində xəta marjası 400% təşkil edir (tapşırıq 1 aydan 4 aya qədər çəkə bilər). Sprint anında — 20% (1-1.2 ay). Bu modelin dərk edilməsi ilkin mərhələlərdə dəqiq qiymətləndirmə tələb etməməyə kömək edir.
Nisbi qiymətləndirmə (stori-point-lərlə) mütləq qiymətləndirmədən (saatlarla) daha dəqiqdir, çünki insanlar tapşırıqları müqayisə etməkdə vaxtı qiymətləndirməkdən daha yaxşıdır. “Bu tapşırıq o birindən iki dəfə mürəkkəbdir” — “bu tapşırıq 8 saat çəkəcək” ifadəsindən daha etibarlı mühakimədir. Nisbi qiymətləndirmələr konkret proqramçıdan asılı deyil və ifaçı dəyişdikdə dəqiqliyini qoruyur.
Estimatın dəqiqliyini sistemli yanaşma, kollektiv müzakirə və keçmiş səhvlərin təhlili ilə artırmaq olar. Bir neçə sübut edilmiş təcrübə mövcuddur.
2 gündən çox qiymətləndirilən hər bir tapşırıq dekompozisiya edilməlidir. Prinsip: tapşırığı 50% dəqiqliklə qiymətləndirmək mümkün deyilsə, o çox böyükdür. Onu anlaşılan və qiymətləndirilə bilən addımlara bölün. Dekompozisiyadan sonra ümumi qiymətləndirmə çox vaxt ilkindən 1.5-2 dəfə böyük olur.
Qiymətləndirmə tarixçəsi aparın və faktiki xərclərlə müqayisə edin. Məsələn: “3 stori-point olaraq qiymətləndirilən tapşırıqlar orta hesabla 4 gün çəkir, 2 gün yox”. Proqnozlaşdırma üçün komandanın velocity-sindən istifadə edin: komanda sprintdə 20 stori-point bağlayırsa, 30 planlaşdırmayın. Keçmiş qiymətləndirmələrin dəqiqlik təhlili estimasiya bacarığı üçün ən yaxşı məşqdir.
Lövbərləmə — ilk səsləndirilən qiymətləndirmənin bütün iştirakçılara təsir göstərdiyi psixoloji effektdir. Lövbərləmədən qaçmaq üçün Planning Poker-də hamı kartları eyni anda göstərir, növbə ilə yox. Kalibrləşmə — qiymətləndirmələrin faktlarla mütəmadi yoxlanılması: 10-20 sprintdən sonra komanda rəy əlaqəsi sayəsində daha dəqiq qiymətləndirməyi öyrənir.
Hər bir tapşırıq gizli risklər ehtiva edir: proqramçının xəstəliyi, API ilə problem, tələblərin dəyişməsi. Qiymətləndirməyə risk-adjusted factor əlavə edin: yüksək riskli tapşırıqlar üçün — 1.5-2 çarpanı, aşağı riskli üçün — 1.1-1.2. Müştəriyə hansı risklərin nəzərə alındığını və onların müddətlərə necə təsir etdiyini şəffaf şəkildə göstərin.
Qiymətləndirmə səhvləri əksər komandalarda, onların yetkinlik səviyyəsindən asılı olmayaraq təkrarlanır. Bu səhvləri bilmək onları düzəltmək üçün ilk addımdır.
Ən geniş yayılmış səhv — ən yaxşı ssenari üzrə qiymətləndirmə: “hər şey ideal getsə, 3 günə edərik”. Reallıqda heç nə ideal getmir: buglar, tələblərlə bağlı suallar, asılı tapşırıqlar. Həll yolu: optimist ssenariyə görə yox, ən çox ehtimal olunan ssenariyə görə qiymətləndirin. Dəyişkənliyi nəzərə almaq üçün PERT-dən istifadə edin.
Menecer “cümə gününə qədər lazımdır” dedikdə, proqramçı şüuraltı olaraq qiymətləndirməni bu son tarixə uyğunlaşdırır. Təzyiq altında qiymətləndirmə həmişə aşağı salınır və müddətlərin pozulmasına gətirib çıxarır. Həll yolu: qiymətləndirmə son tarixdən əvvəl olmalıdır, əksinə yox. Əvvəlcə komanda qiymətləndirir, sonra tərəflər müddətlər barədə razılaşır.
Tapşırığın mürəkkəbliyi (nə qədər düşünmək) və vaxt (nə qədər etmək) — fərqli metrikalardır. Tapşırıq sadə, lakin uzun sürən (10 ekran kodlaşdırmaq) ola bilər. Yaxud mürəkkəb, lakin sürətli (legacy-də bug tapmaq). Stori-point-lərdə adətən mürəkkəblik qiymətləndirilir, vaxt isə komandanın velocity-sindən çıxarılır.
Proqramçı 8 saat fasiləsiz bir tapşırıq üzərində işləmir: görüşlər, kod-icmal, həmkarlara kömək, inzibati işlər iş vaxtının 30-50%-ni aparır. Kontekst dəyişmələri estimatda nəzərə alınmalıdır: real olaraq proqramçı gündə 3-4 saat kod yazır.
Tez-tez verilən suallar
İnkişaf — yüksək qeyri-müəyyənlikli yaradıcı prosesdir. Tikinti və ya istehsaldan fərqli olaraq, hər addımın məlum olduğu yerdə, IT-də hər bir tapşırıq unikaldır. Naməlum naməlumlar (unknown unknowns) — qeyri-dəqiqliyin əsas səbəbidir. Təcrübəli komanda belə qiymətləndirmələrin 30-50%-də səhv edir. Bu normaldır və planlaşdırmada nəzərə alınmalıdır.
Stori-point-lər sprint planlaşdırması üçün daha yaxşıdır, çünki onlar nisbidir və ifaçıdan asılı deyil. Saatlar müqavilələr və xarici hesabatlıq üçün lazımdır, lakin daha az dəqiqdir. Optimal kombinasiya: tapşırıqlar stori-point-lərlə qiymətləndirilir, müddətlər isə komandanın velocity-si vasitəsilə təqvim günlərinə çevrilir.
Naməlum texnologiyaları olan tapşırıqlar üçün əvvəlcə Spikodan (məhdud vaxtda tədqiqat) istifadə edin. Tədqiqatdan sonra komanda mürəkkəbliyi anlayır və realist qiymətləndirmə verə bilər. Adi qiymətləndirməyə 2-3 çarpanı əlavə edin və gözlənilməz çətinliklər üçün 50% bufer qoyun.
Dekompozisiyanı göstərin — tapşırığı hər birinin qiymətləndirməsi ilə alt tapşırıqlara bölün. Vaxtın nədən ibarət olduğunu izah edin: inkişaf, test etmə, kod-icmal, sənədləşdirmə. Alternativlər təklif edin: əhatə dairəsini azaltmaq, funksionallığı sadələşdirmək və ya mərhələlərə bölmək. Tələblər dəyişmədən qiymətləndirməni heç vaxt aşağı salmayın.
Yenidən qiymətləndirmə tapşırıq haqqında yeni məlumat yarandıqda lazımdır: əlavə tələblər üzə çıxdıqda, texniki məhdudiyyətlər aşkar edildikdə və ya prioritet dəyişdikdə. Sprint daxilində tapşırıqlar yenidən qiymətləndirilmir — diqqət tamamlamaya yönəldilir. Sprintlər arasında backlog grooming çərçivəsində yenidən qiymətləndirilir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun