“Bir feature daha” adətən kiçik iş deyil
Layihə başladıqdan sonra ən çox eşidilən cümlələrdən biri budur:
“Bir feature də əlavə edək.”
Bəzən bu, həqiqətən də kiçik bir düzəlişdir.
Bəzən isə eyni cümlə ilə tamamilə yeni bir iş ortaya çıxır.
Problem istəyin özündə deyil.
Problem ondadır ki, “sadəcə kiçik bir əlavədir” kimi görünən istək çox vaxt qiymət, müddət və scope dəyişikliyi kimi nəzərə alınmır.
Görünən istək
“Sadəcə bir düymə / sahə əlavə edək”
Gizli mürəkkəblik
- Yeni biznes qaydaları və validasiya
- Mövcud məlumatlarla uyğunluq
- Digər axınlara, modullara və API-lərə təsir
- Əlavə test və təhvil işi
- İstifadəçinin öyrənməli olduğu yeni davranış
“Kiçik” görünən əlavə sistemin sərhədlərini genişləndirə bilər.
Yeni istək pis şey deyil
Layihə gedərkən yeni ideyaların ortaya çıxması tamamilə normaldır.
İstifadəçi axını göründükcə, demo keçirildikcə və ya real məlumatlarla işləməyə başladıqca əvvəl görünməyən ehtiyaclar üzə çıxa bilər.
Mən belə istəkləri avtomatik rədd etmirəm.
Amma hər yeni istəyi avtomatik olaraq mövcud layihənin scope-una da daxil etmirəm.
Çünki hər “kiçik əlavəni” sərhədsiz şəkildə qəbul etdikdə məhsul yavaş-yavaş əvvəl planlaşdırdığımız məhsuldan fərqli bir şeyə çevrilir.
Əvvəl bu üç suala baxıram
Yeni tələb gələndə ilk növbədə üç suala cavab axtarıram:
- Bu, hansı konkret problemi həll edir?
- Razılaşdırılmış ilk versiyanın tərkibinə daxildir, yoxsa mövcud scope-u genişləndirir?
- Bunu indi etməsək, məhsul həqiqətən işləməyəcək, yoxsa sadəcə olsa yaxşı olar?
Əgər cavab “olsa yaxşı olar”dırsa, bu, onun pis fikir olduğu demək deyil.
Sadəcə həmin ideyanın cari versiyaya aid olmaması mümkündür.
1-ci sual
Bu, hansı konkret problemi həll edir?
2-ci sual
İlk versiyaya daxildir, yoxsa scope-u genişləndirir?
3-cü sual
İndi olmasa məhsul işləməz, yoxsa “olsa yaxşı olar”?
Kritikdir və ya ilkin vədə daxildir
Mövcud scope-a əlavə et
“Olsa yaxşı olar” / yeni scope
Backlog — növbəti mərhələ
“Kiçik” görünən şey niyə böyüyür?
Ekrana bir düymə, bir sahə və ya bir status əlavə etmək ilk baxışda çox sadə görünə bilər.
Amma bunun arxasında tez-tez bunlar dayanır:
- yeni biznes qaydaları
- mövcud məlumatlarla uyğunluq
- digər axınlara təsir
- əlavə test və təhvil işi
- istifadəçinin öyrənməli olduğu yeni davranış
Ona görə məsələ əslində bu deyil:
“Bu feature-ı yazmaq neçə saat çəkəcək?”
Əsas sual budur:
“Bu dəyişiklik sistemin sərhədlərini genişləndirirmi?”
Ona görə mən “bir feature də əlavə edək” cümləsini eşidəndə əvvəlcə implementasiyanın həcminə yox, scope-un dəyişib-dəyişmədiyinə baxıram.
Nə indi, nə sonra?
Mənim üçün yaxşı yanaşma belədir:
- İlk versiyanın vədini qoru.
- Əsas axını işlək saxla.
- Yeni ideyaları backlog-a əlavə et, hamısını cari versiyaya yığma.
Bəzi istəklər həqiqətən indi edilməlidir — onsuz məhsul yarımçıq görünəcək.
Bəziləri isə növbəti mərhələyə aiddir.
Bu fərqi açıq şəkildə müəyyən etmək vacibdir.
Əks halda layihə əslində bitmir.
Sadəcə getdikcə uzanır.
Sərhəd saxlamaq “yox” demək deyil
Scope-u qorumaq müştərini və ya komandanı dayandırmaq demək deyil.
Bu, razılaşdırılmış işi tamamlayıb növbəti işi ayrıca qərar kimi qiymətləndirmək deməkdir.
Əks halda hər həftə yeni bir “kiçik” əlavə gəlir, ilkin razılaşma isə yavaş-yavaş öz mənasını itirir.
Mənim üçün yaxşı nəticə mümkün qədər çox feature çıxarmaq deyil.
Yaxşı nəticə əvvəl vəd etdiyimiz problemi həll edən, istifadə edilə bilən bir versiyanı ortaya çıxarmaqdır.
Qalan hər şey ayrıca qərardır.
Ayrıca scope.