Ekstremal Proqramlaşdırma və SCRUM Arasındakı Fərq

Ekstremal Proqramlaşdırma və SCRUM Arasındakı Fərq
Ekstremal Proqramlaşdırma və SCRUM Arasındakı Fərq

Video: Ekstremal Proqramlaşdırma və SCRUM Arasındakı Fərq

Video: Ekstremal Proqramlaşdırma və SCRUM Arasındakı Fərq
Video: How to Replace Your HTC Puccini Battery 2024, Noyabr
Anonim

Extreme Programming vs SCRUM | XP və SCRUM

Bu illər ərzində proqram sənayesində istifadə edilən bir sıra müxtəlif proqram təminatı inkişaf metodologiyaları olmuşdur, məsələn, Şəlalə inkişaf metodu, V-Model, RUP və bir neçə başqa xətti, iterativ və kombinə edilmiş xətti-iterativ üsullar. Çevik model (daha doğrusu, bir qrup metodologiya) bu ənənəvi proqram təminatının inkişaf etdirilməsi metodologiyalarında aşkar edilmiş çatışmazlıqları aradan qaldırmaq üçün Çevik manifest tərəfindən təqdim edilmiş daha yeni proqram təminatı inkişaf modelidir.

Agile metodları iterativ inkişafa əsaslanır və əsas idarəetmə mexanizmi kimi istifadəçilərin rəyindən istifadə edir. Agile ənənəvi metodlardan daha çox insan mərkəzli yanaşma adlandırıla bilər. Çevik model, müştərinin bəzi üstünlükləri erkən həyata keçirə bilməsi üçün sistemi çox kiçik və idarə oluna bilən alt hissələrə bölməklə məhsulun işlək versiyasını çox erkən təqdim edir. Agile-in sınaq dövrü müddəti ənənəvi üsullarla müqayisədə nisbətən qısadır, çünki sınaq inkişafa paralel aparılır. Bütün bu üstünlüklərə görə, hazırda Agile metodları ənənəvi metodologiyalara üstünlük verilir. Scrum və Extreme proqramlaşdırma Çevik metodların ən məşhur variantlarından ikisidir.

SCRUM nədir?

Yuxarıda qeyd edildiyi kimi, SCRUM Agile metodları ailəsinə aid olan artımlı və təkrarlanan layihə idarəetmə prosesidir. SCRUM, inkişaf dövrünün əvvəlində müştəri iştirakına yüksək üstünlük verməyə əsaslanır. Müştəri tərəfindən mümkün qədər erkən və tez-tez testlərin daxil edilməsini tövsiyə edir. Stabil versiya mövcud olduqda hər nöqtədə sınaq aparılır. SCRUM-un təməli layihənin əvvəlindən sınaqdan keçməyə və layihənin sonuna qədər davam etməyə əsaslanır.

SCRUM-un əsas dəyəri “keyfiyyət komandanın məsuliyyətidir” və bu, proqram təminatının keyfiyyətinin bütün komandanın (yalnız sınaq komandasının deyil) məsuliyyət daşıdığını vurğulayır. SCRUM-un digər vacib cəhətlərindən biri proqram təminatını daha kiçik idarə olunan hissələrə bölmək və onları çox tez müştəriyə çatdırmaqdır. İşləyən məhsulun çatdırılması son dərəcə vacibdir. Sonra komanda proqram təminatını təkmilləşdirməyə və hər bir əsas addımda davamlı olaraq təqdim etməyə davam edir. Bu, çox qısa buraxılış dövrləri (sprintlər adlanır) və hər dövrün sonunda təkmilləşdirmə üçün rəy əldə etməklə əldə edilir.

SCRUM inkişaf komandasının düzgün işləməsi üçün bir neçə əsas rolu müəyyən edir. Bunlar Məhsul sahibi (müştərini təmsil edən və məhsulun geridə qalmasını təmin edən), Scrum ustası (skrum görüşləri keçirməklə, sprint geri planını saxlamaqla və qrafikləri yandırmaqla komandanın təşkilatçısı və koordinatoru kimi çıxış edən) və digər komanda üzvləridir. Komanda ənənəvi rollardan ibarət ola bilər, lakin onlar əsasən özünü idarə edən komandalardır. Əsas Scrum artefaktları Məhsul ehtiyatı/buraxılış geriliyi (istək siyahısı), Sprint geri planları/nöqsan ehtiyatları (hər iterasiyada tapşırıqlar), Burn down charts (qalan iş tarixə qarşı)dır. Əsas SCRUM mərasimləri Məhsul yığılması görüşü, Sprint görüşü və Retrospektiv görüşdür.

Ekstremal Proqramlaşdırma nədir?

Extreme Programming (qısaldılmış XP) Agile modelinə aid proqram təminatının işlənib hazırlanması metodologiyasıdır. Ekstremal proqramlaşdırma mərhələləri çox kiçik davamlı addımlarla həyata keçirir (ənənəvi metodlarla müqayisədə). Yalnız bir gün və ya bir həftə çəkən ilk keçid qəsdən natamamdır. Proqram təminatının inkişafı üçün konkret məqsədləri təmin etmək üçün başlanğıcda avtomatlaşdırılmış testlər yazılır. Sonra tərtibatçılar kodlaşdırmanı həyata keçirirlər. Diqqət, proqramlaşdırmanı cütlər kimi etməyə yönəldir. Bütün testlər keçdikdən sonra kodlaşdırma tamamlanmış sayılır. Növbəti mərhələ dizayn və arxitekturadır ki, bu da eyni proqramçılar dəsti tərəfindən kodun refaktorinqi ilə məşğul olur. Bu mərhələnin sonunda natamam (lakin funksional) məhsul maraqlı tərəflərə təqdim olunur. Bundan dərhal sonra növbəti mərhələ (ən mühüm funksiyaların növbəti dəstinə diqqət yetirir) başlayır.

Ekstremal Proqramlaşdırma ilə SCRUM arasındakı fərq nədir?

Extreme Programming və SCRUM başa düşülən şəkildə çox oxşar və uyğunlaşdırılmış metodologiyalardır. Bununla belə, bu iki üsul arasında incə, lakin əhəmiyyətli fərqlər var. SCRUM sprintləri 2-4 həftə davam edir, tipik XP iterasiyaları isə daha qısadır (son 1-2 həftə). Adətən, SCRUM komandaları sprintlərdə dəyişikliklərə icazə vermir, lakin XP komandaları iterasiyalardakı dəyişikliklərə bir az daha çevikdir. Məsələn, sprintin planlaşdırılmasından sonra həmin sprintin elementləri dəsti dəyişməz qalır, lakin üzərində işləməyə başlamamış funksiya istənilən vaxt XP-də başqa funksiya ilə dəyişdirilə bilər. XP və SCRUM arasındakı digər fərq ondan ibarətdir ki, XP-də hazırlanmış funksiyaların sırası müştəri tərəfindən ciddi şəkildə prioritetdir, SCRUM komandası isə maddələrin sırasına qərar verir (məhsul ehtiyatı SCRUM-un Məhsul sahibi tərəfindən prioritetləşdirildikdən sonra).

XP-dən fərqli olaraq, SCRUM heç bir mühəndislik təcrübəsi qoymur. Məsələn, XP sınaq əsaslı inkişaf (TDD), cüt proqramlaşdırma, refaktorinq və s. kimi təcrübələrlə idarə olunur. Lakin bəziləri hesab edir ki, özünü təşkil edən komandalar üçün bir sıra təcrübələrin məcburi edilməsi mənfi təsir göstərə bilər və bunu hesab etmək olar. XP-nin çatışmazlığı. Ekstremal proqramlaşdırmanın digər çatışmazlığı ondan ibarətdir ki, təcrübəsiz komandalar heç bir avtomatlaşdırılmış test və ya TDD (və ya sadəcə olaraq sındırılma) olmadan refaktora meyl edə bilərlər. Buna görə də, bəziləri SCRUM-un nəzər salmaq üçün daha yaxşı olduğunu təklif edir (çünki bu, sadəcə olaraq diqqət mərkəzində olan vaxt qutusu iterasiyaları vasitəsilə böyük təkmilləşdirmələr gətirir) və XP yuxarıda qeyd olunan təcrübələrin dəyərini kəşf etmiş bir qədər yetkin komandalar üçün uyğundur (onlardan xahiş edildiyi üçün istifadə etmək əvəzinə) bunu etmək üçün).

Tövsiyə: