Agile Scrum ilə böyüyən bir komanda

QueryPie İnkişafı # 3: İnkişaf Prosesi Giriş

Əlavə: https://medium.com/p/cfaa4b71c263/

Dünyada gümüş güllə yoxdur. Buna baxmayaraq, insanlar hər cür istəklərə qarşı həssasdırlar və həmişə gümüş güllə axtarırlar.

Çevik Manifesti 2001-ci ildə elan olunduqda, Çevil proqram təminatı sənayesində gümüş güllə olmaq üçün namizəd oldu. On yeddi il sonra Çevik artıq axtardığımız gümüş güllə deyil. Ancaq komandanızı böyütmək və işinizi müvəffəqiyyətə aparmaq üçün praktik və əla bir vasitə oldu.

Karyerama 2004-cü ildə veb tərtibatçısı kimi başlamışam. 2011-ci ildən bu günə qədər bir çox inkişaf qruplarında aparıcı işləyən baş inkişafçı olmuşam. Bir komanda lideri olduğumdan sonra daim inkişaf layihələrimdəki bütün hədəflərə necə nail ola biləcəyim barədə düşünürdüm: planlaşdırma, uyğunluq, keyfiyyət və komandanın böyüməsi kimi məqsədlər.

O narahatlıq nəticəsində Çevik tapdım. Beləliklə, bu Geliştirici Girişində Çevik İnkişafla bağlı təcrübəm izah ediləcəkdir.

Çevik: Güzəştə getməklə davam edin

İdeal olaraq, bir proqram inkişafına bir yanaşma, tam planlaşdırma və proqnozlaşdırma əsasında formalaşmış proqramı vaxtında inkişaf etdirmək olardı. Bu, planlı inkişaf kimi tanınır və proqram Şəlalə modeli adlanan bir prosesə görə hazırlanmışdır. Bunun müvəffəq olması üçün ideal şərtlərin hamısı yerinə yetirilməlidir. Ancaq reallıqda gələcəkdə nələrin baş verəcəyini proqnozlaşdırmaq çətindir və gözlənilməz dəyişikliklərin olacağı qaçılmazdır. Bundan əlavə, proqramın inkişafı prosesi açıq, açıq və gözlənilməzdir.

Bəs, Çevik nədir?

Çevik bir kompromisdir. Çevik, mükəmməl və ideal olanların əvəzinə real dünya şərtlərini qəbul edir. Layihəni yaxşılaşdırmaq üçün daimi dəyişikliyi təmin edir və məhdud mənbələrdən istifadə edir. Bu şəkildə inkişaf etməkdə olan komanda ən yaxşı kompromis hesab edib birlikdə həyata keçirə bilər.

Çevik inkişaf prosesləri çoxdur. Scrum, Kanban və Extreme Programming (XP) yalnız bir neçəsidir. Hər birinin fərqli xüsusiyyətləri və fərqli bir əhatə dairəsi var, lakin bir-biri ilə birlikdə istifadə edilə bilər.

İlk Çevik Scrum ilə yeni bir Komanda Rəhbərinin sınaq və səhvləri

2011-ci ildə mən öz inkişaf qrupumun bir qrup lideri oldum və bir komandanın necə işləyəcəyi barədə düşünməyə başladım. Proqram təminatını inkişaf etdirmə metodologiyalarını öyrənmək Agile'yi maraqlandırdı. Trenchesdən Scrum və XP kitabını oxuyanda ən çox təsirləndim.

Xəndəklərdən Scrum və XP, Henrik Kniberg tərəfindən necə Scrum edirik

Scrum iterasyonu ideal və cəlbedicidir. Komanda bir işi geridə qoyaraq yenidən planlaşdırma və Sprint adlanan qısa iterativ inkişaf dövrü əsasında həll edir və davamlı inkişaf və təkmilləşmə yaradır.

Scrum Prosesi (mənbə: https://en.wikipedia.org/wiki/Scrum_(software_development))

Lakin, vaxtımda şöbəmin təbiəti olduğuna görə Scrumun metodologiyasını komandama təqdim edə bilmədim. Bir çox məsələni düzəltmək ortasında olduq və yeni bir metod üçün yer olmadığı üçün proqram təminatını davam etdirməli olduq. Scrum-u iş prosesimizə yüngülcə daxil etməyə başladıqda, təəccüblü bir şəkildə uğursuz oldu. Mən Scrum ilə işləmək üçün çətin yol tapdım, komanda və müştəri hazır olmalıdır ... bu asan məsələ deyil.

Beləliklə, komandam Scrum-dan əvvəl işlədiyimiz yola qayıtdı. Köhnə metodumuz belə bir şeyə baxdı:

  1. sorğu telefonda və ya e-poçtda alın
  2. sorğunu post qeydində yazın
  3. sonrakı notu divara qoydu
  4. operator sonrakı notu götürərək masasına qaytarır
  5. operator tələbi həll edir
  6. həll edilmiş tələb komandanın ortaq gündəliyinə daşındı

Əminəm ki, komandamın monitorları daim postdan sonrakı qeydlərlə dolu olduğunu eşitməyinizə təəccüblənməyəcəksiniz!

(mənbə: https://happytango.com/…what-a-post-it-note-was/)

Kanban sadə və asan idi, lakin mükəmməllikdən 2% azalıb

2013-cü ildə iş yerlərini dəyişdirdim və komandamın iş prosesini nəzərdən keçirmək üçün başqa bir şans əldə etdim. O dövrdə Kanban və Scrum: hər ikisindən ən çox faydalanan kitab nəşr olundu. Bu kitabı öyrənərək Kanban haqqında çox şey öyrəndim.

Kanban və Scrum: Hər ikisini də Henrik Kniberg və Mattias Skarin edir

Kanban üsulu bir az daha sadədir. Bir neçə ayrı sütun yaratmaq, müvafiq olaraq etiketləmə (məsələn etmək, etmək, yerinə yetirmək) etiketlənməyi və kartlarda / post-bu qeydlərdə sütunlara tapşırıqlar əlavə etməyi tələb edir. Bu vəzifələr daha sonra vəziyyətlərindən asılı olaraq sütundan sütuna keçir. İstifadəsi olduqca asan bir üsuldur və iş prosesini görüntüləmək üçün əla bir yoldur.

sadə kətan lövhəsi (mənbə: https://en.wikipedia.org/wiki/Scrumban)

Bu metod açıq şəkildə görünə bilər, amma Kanban prosesə bir neçə qayda əlavə edir. Kanban'ın bəzi əsas qaydaları, layihələri daha kiçik vəzifələrə bölmək, prioritetləşdirmək və eyni vaxtda görülən işlərin sayını məhdudlaşdırmaqdır. Kanban üsulu ilə maraqlanırsınızsa, daha çox məlumat üçün Kanban və Scrum kitabına müraciət edin.

Kanban metodundan istifadə edərək bir komandanın vəzifələrini idarə etmək çox sadədir. Hər kəs prosesi başa düşə və məhsuldarlığı artırmaq üçün onu izləyə bilər və mənim komandam üçün verdiyi faydalar çox böyük idi.

Ancaq ilk Scrumun uğursuzluğuna görə özümü çox günahkar hiss edirdim. Scrum metodu ilə daha mütəşəkkil bir şəkildə işləmək istədim.

Çevik Scrum'a yeni bir başlanğıc ilə dönüş:

2015-ci ildə bir start-upa qoşulduqda tamamilə yeni bir inkişaf təşkilatına rəhbərlik etmək məcburiyyətində qaldım. Çevik Scrumu iş prosesimə yenidən daxil etmək üçün ən uyğun zamanın olduğunu başa düşdüm.

İlk məhsulun ideyası qərara alındıqda, inkişaf işləri ən yaxşı seqmentlərə bölündü və gerisini doldurmaq üçün ətraflı şəkildə tərtib edildi. Sprintimizi 2 həftəlik dövr üçün təyin etdik. Bu müddət üçün bir ay planlaşdırmağımdan əmin deyildim. Həftədə bir dövr çox qısa hiss etdi. 2 həftəlik tsikl, 1 həftəlik fasilə daxil idi və tərəqqi çox yavaş olsaydı, həftə sonu üçün bunu düzəltmək üçün istifadə etdik.

İlk bir neçə ayda hər hansı bir proqram vasitəsi olmadan, Sprint üçün bir lövhə və post-istifadə etdik. Trello və Jira o dövrdə məşhur idilər, lakin Scrum mədəniyyəti hələ də şirkətimdəki hər kəs üçün, o cümlədən də mənim üçün yeni və tanımadığı bir insan idi. Beləliklə, yeni bir üsul öyrənməyə vaxt ayıra bilmədik, buna görə yalnız ağ lövhəmizə və postumuza etibar etdik.

3-cü Sprintin qrafikini yandırın

Scrum'un sürəti: Davamlı performans yaxşılaşdırılması

Scrumdakı ən vacib konsepsiya konsentrasiyadır. Bu yanaşma, bir insanın yalnız vahid bir işə diqqət etməsi üçün yalnız məhdud bir zaman miqdarı olduğuna əsaslanan bir fərziyyədən başlayır. Beləliklə, bir gün üçün sabit iş saatları təyin etmək və həmin gün görülən iş faizini idarə etmək yaxşıdır. Bu məqsədlə seqmentləşdirilmiş iş vahidini Hekayə adlandırırıq və hekayə kartında bir hekayə nöqtəsi adlandırırıq.

️ Hekayə nöqtələri bir əsər hazırlamaq üçün lazım olan ümumi səyləri ölçmək üçün istifadə olunur. Bir geliştirici 100% bir saat ərzində bir tapşırıq üzərində cəmləşdirirsə, bu bir məqamdır. Hekayə nöqtələrini topladığımız zaman həddən artıq qiymətləndirməməyə və dəyər verməməyə diqqət yetirməliyik. Tapşırıq ölçüsü üçün dəqiq qol tapmaq vacibdir. Xüsusi Sprint üçün təyin etdiyimiz hekayə nöqtələrinə əsaslanaraq, bir Sprint üçün lazım olan müddətdə faktorlandıqdan sonra sürəti hesablaya bilərik.

Sürət = Hekayə nöqtələri / Əsl vaxt alındı:

Məsələn, 10 hekayə hekayələrin 528 nöqtədə yer aldığı gündə səkkiz saat 10 gün ərzində hekayə nöqtələri üzərində işləyirsə, sürət belə olardı: 528 bal / (10 nəfər x 10 gün x 8 saat) = 66%

Sürət Scrum-da iştirak edən bütün heyətləri cəmləməklə hesablanır. Fərdlərin sürəti hesablaması, lazımsız olaraq komanda üzvlərini bir-birlərinə qarşı rəqabətə gətirə bilər ki, bu da uzun müddət zərər verə bilər.

Maraqlıdır ki, aşağıdakı Sprint üçün sürət hədəfləri əvvəlki Sprint cütlüyündə əldə edilmiş sürətin orta səviyyəsinə əsasən hesablanır. Hər Sprint daim yenilənən və çətin bir hədəf yaradaraq həmişə əvvəlki nəticənin orta səviyyəsindən biraz daha yüksək hədəf qoyur. Beləliklə, bir komanda məqsədinə çatdıqda yüksək nailiyyət hissi var. Əgər uğursuz olarsa, növbəti Sprint üçün orta dəyər aşağı düşdüyünə görə daha asan bir hədəf təyin etmə seçimidir. Bu diqqət idarəetmə Scrum komandasına planının dəqiqliyini və icrasını daim inkişaf etdirməyə imkan verir.

Scrum-based Sprint Tərəqqi:

Scrum komandası ümumi çətin bir məqsədi bölüşür, layihəni davam etdirir və hər gün qısa bir iclas keçirir. Buna Gündəlik Scrum yığıncağı və ya Gündəlik Stand-Up Yığıncaq deyilir, çünki daimi olaraq görüşləri mümkün qədər qısa müddətdə keçirmək tövsiyə olunur. Bu seanslarda Scrum üzvləri öz tərəqqilərini bölüşürlər və komandada uğur qazanmağın təzyiq səviyyəsini saxlayırlar.

Scrum yayma dövrü (mənbə: Ken Schwaber və Mike Beedle tərəfindən Scrum ilə Çevik Proqram İnkişafı)

Hər bir sprintdən sonra əks olunma və planlaşdırma üçün vaxt lazımdır. Məqsəd və performansları müqayisə etmək, konsentrasiyanın səviyyəsini hesablamaq və təriflə təsəlli vermək və təsəlli verməklə komanda əlaqələrini yaxşılaşdırmaq bu qədər vacibdir. Heç vaxt kimisə günahlandırmamalısan. Bu bir komandanın səyidir.

Növbəti Sprint üçün planlaşdırma iclasında, tərəqqi və təcrübəyə əsaslanaraq, hekayə kartlarının məzmununu arxa planda və hekayə dəyərlərini dəqiqləşdirə bilərsiniz. Sonra növbəti Sprint üçün konsentrasiyanın hədəfini təyin edin, Sprint-in həcmi və cədvəli ilə razılaşın və yenidən başlayın (bunu necə etmək barədə daha çox məlumat üçün yuxarıdakı kitablara baxın).

İki il ərzində öz Scrum komandamı çalışdırmaq üçün çox təcrübə qazandım. Scrum komandamı tapşırığa yönəltdi və təbii olaraq daha yüksək performansa və dəqiq planlaşdırmaya səbəb oldu. Ancaq ən başlıcası, komanda üzvləri çox inamlı oldular və bir-biri ilə dərin bir əlaqə qura bildilər. Bir komanda olaraq sürətlə böyüdük.

Prosesimizi idarə etmək üçün bir neçə vasitə sınadıq və sonda Jira platformasına qərar verdik. Şəxsən mən Jira'nın həm Kanban həm də Scrum üsulları üçün ən güclü və əlverişli bir vasitə olduğunu düşünürəm.

Ekran görüntüsü: Scrum lövhəsinin aktiv sprintləri (mənbə: https://support.atlassian.com/jirasoftware-cloud/)

Jira-dakı Scrum tipli layihə heyəti, idarəetmə xüsusiyyətləri və müxtəlif hesabatlarla bir Scrum board təmin edir. Sprint hesabatları, Çizelgeleri yandırın, Konsentrasiya qrafikləri və Versiya hesabatları kimi ölçmə vasitələri performansımızı idarə etməyə kömək etdi.

Festa, müvəffəqiyyətli Scrum sayəsində inkişaf platforması:

2017-ci ilin dekabr ayında Festa adlı Cənubi Koreyanın bir satış satış platformasının inkişaf qrupuna qatıldım. Bu zaman Festa konsepsiya sübutunu (POC) hazırladıqdan sonra ilk məhsulunu satışa hazırlamışdı. Məhsul özü istifadəçilərin asan bir ödəmə proseduru ilə bir hadisə üçün bilet ala biləcəyi rahat bir veb sayt idi.

Yeni bir komanda olduğu üçün iş axını və prosesimiz barədə danışmaq lazım idi. Scrum təklif etdim. Təklif qəbul olunduqdan sonra ilk Minimum Dəyişən Məhsul (MVP) barədə qərar verdik və geridə qalan bir əlaqə qurduq.

Diqqəti məhsulun satış qrafiki təşkil edirdi. Məhsulun buraxılış tarixi artıq müəyyən edilmişdi, buna görə layihəni müəyyən bir cədvəldə tamamlamalı oldum. Mənə verilən müddət bir aydan biraz çox idi.

Yeni yaradılan Festa komandası məhsulu vaxtında başa vurub buraxa bilərmi?

Festa veb saytı (mənbə: https://festa.io/)

Son tariximiz bir aya yaxın olduğundan, 1 həftəlik Sprint dövrü barədə qərar verdik. Sprint dövrünü təkrarlayarkən geridə qalmağı sədaqətlə idarə edərək, məhsulumuzun satışına hazırlaşmağın vaxtını çox dəqiq proqnozlaşdıra bildik.

Jirada xüsusi bir xüsusiyyətdən istifadə edərək hekayə kartlarına versiya nömrələrini və həyata keçirilmiş versiya hesabatlarını təyin etdik. Bu xüsusiyyət ilə davamlı olaraq gözlənilən buraxılış tarixini təyin etdik və hədəflərimizə çatmaq üçün inkişaf dairəsini aqressiv şəkildə düzəlddik.

Festa.io scrum ver1.0.0 Hesabatı

Festa komandası ardıcıl olaraq Scrum ilə yaxşı çıxış etdi və məhsulu hədəf tarixində uğurla çıxara bildi. Yuxarıdakı versiya hesabatına baxsanız, hekayə hesabımızın sabit bir yamac ilə artdığını görə bilərsiniz. Bu, komandanın hər zaman məhsulu davamlı bir performansla vaxtında inkişaf etdirməsinin sübutudur.

Yeni Scrum Challenge: CHECKER-də QueryPie İnkişafı

2018-ci ildə Cənubi Koreyada SQLGate adlı güclü IDE alətini inkişaf etdirən yeni bir startap olan CHECKER-də işə başladım. Əvvəlcə sadəcə yeni mühitdə özümə yer tapmağı düşündüm və yeni mövqeyimdən rahat olduğumdan nəticələr çıxarmağa başladım. Bəzi düzəlişlərdən sonra yenidən komandamın oyununu necə yaxşılaşdıracağım barədə düşünməyə başladım. Scrum-u komandama təklif etdikdə.

Çevik Scrum prosesini təqdim edərkən ən vacib amil nədir? İnanıram ki, bu prosesin qəbulunda iştirak edən insanlar üçün nüfuzdur. Etibar qəbul üçün əsasdır və yeni bir şey sınamağa hazırdır. Yarım ildən çox müddətdə CHECKER-in vacib üzvü olandan sonra rəhbərliyim və komanda üzvlərimin etimadını uğurla qazandım. Hər kəsin səyləri sayəsində etibarlı bir Scrum komandası yaratdıq.

CHECKER, yüksək səviyyəli idarəçilərin səyləri ilə sürətli və aktiv və istedadlı heyət üzvlərini təmin edən çiçəklənən bir başlanğıc şirkətidir. Onların uğur qazanmaq həvəslərindən və yeni çağırışlara hazır olmalarından ilhamlandım. Buna görə şirkətin məhsuldarlığını artıracaq və işimizi uğurla böyüdəcək bir Scrum prosesi yaratmaq mənim üçün ən böyük məmnuniyyətdir.

CHEQUER-in hazırkı Scrum problemi bu məqalədə daha çox məlumat əldə edə biləcəyiniz QueryPie-dir.

Artıq Jira vasitəsilə Scrums idarə etmək üçün çox təcrübə topladım, buna görə də ilk Sprint üçün planımı icra etməkdə komandama rəhbərlik edə bildim. İlkin konsentrasiyamız hədəfi təcrübəyə əsaslanaraq 64% olaraq təyin olundu (70% fikrimdəki ideal hədəfdir). Ekipaj üzvlərinin sayı dörd, ilk Sprint isə cəmi səkkiz gün idi. Bu amillərə əsaslanaraq hədəf alınacaq: 4 nəfər x 8 gün x gündə 8 saat x 64% Konsentrasiya = 164 Hekayə nöqtələri.

QueryPie xidmət ver1.0.0 Hesabatı

Yuxarıdakı şəkildəki, geriliyi necə təşkil etdiyimi və Version 1.0.0 üçün hədəf qurduğumu görə bilərsiniz. Hədəf tarixi 1 Mart idi. Sprint başladıqdan bir neçə gün sonra versiya hesabatını gördükdə, gözlənilən başa çatma tarixinin 5 Mart olacağı proqnozlaşdırıldı. Həftə sonu işləmədiyimi başa düşmək üçün bir neçə saniyə çəkdi. Ooops! Şənbə və bazar günləri vacib istirahət günləridir!

Bu hesabatda əlavə etdim ki, 2 və 3 martda işləməyəcəyik. Təxmini başa çatma tarixi son günü 11 Marta dəyişdirərək həftə sonları sayına görə artırıldı. Ancaq bu nisbətdə hədəf tarixindən 10 gün geridə qalacağıq, buna görə düzəliş etməliyik. Yalnız bir neçə günlük Sprint ilə CHECKER-in istedadlı ekipaj üzvləri Scrum metoduna tez uyğunlaşdılar və əvvəlcə səhv təyin edilmiş hekayə kartlarını və hekayə puanlarını dəqiq tənzimləyə bildilər.

İlk Sprint sınağı 8 gündə başa çatdı. Sprint hesabatımız göstərir ki, heyətimiz sonda çox yaxşı iş gördü. Zəhmətləri sayəsində gözlənilən başa çatma tarixi fevralın 22-nə qədər rahat şəkildə düzəldildi və qrafikdəki nikbin və pessimist başa çatma tarixi təxminləri arasındakı fərq də azaldı. Daha iki Sprint hazırladıqdan sonra çox yüksək dəqiqliklə bir versiya hesabatı alacağımızı gözləyirəm.

Bu, yalnız 8 günlük qısa bir sprint idi, lakin CHECKER heyəti sistemli və səmərəli işləməyi öyrəndi. İlk Sprint-də uğur qazanaraq inam qazandıq və bir-birimiz arasındakı bağı möhkəmləndirdik. Scrum metodu boyunca birlikdə böyüdük və izləyəcək Sprintlər vasitəsi ilə daha da böyüyəcəyik.

Agile Scrum Səyahət Səyahətləri:

Çevik Scrum prosesindən bir çox rəy gəldi. Bəziləri, ekipajın irəliləməsini izləmək yaxşı olacağını düşünürdülər. Digərləri bunun lazımsız rəqabətə və mənfi stiqmaya səbəb olacağına inanırdılar, buna görə diqqətlə yanaşmalıyıq.

Bir komandada işləmək rəqabətə cəlb edilməməlidir. Bir bağ qurmalı və ortaq bir məqsədə doğru irəliləməliyik. Hər hansı ekipaj üzvü mübarizə aparırsa, onlara Scrum prosesinin sürətini artırmağa və birlikdə böyüməyə kömək etməliyik.

Ümid edirəm uzun hekayəm orada kiməsə kömək edəcəkdir. Scrum-a bir şans verin və komandanıza güc və liderlik verin. Birlikdə işləməyə davam etsəniz, müvəffəqiyyətin küncdə olacağını bilin.