Ինչպես կառավարել ծրագրային նախագծերը Agile-ի միջոցով

Ինչպես կառավարել ծրագրային նախագծերը Agile-ի միջոցով

Ծրագրային ապահովման մշակման արագ զարգացող աշխարհում օգտատերերի կարիքները կարող են փոխվել ցանկացած պահի, տեխնոլոգիան անընդհատ զարգանում է, և արտադրանքն ավելի արագ թողարկելու ճնշումը անընդհատ աճում է: Ահա թե որտեղ է Agile-ը դարձել լայնորեն օգտագործվող մոտեցում՝ շեշտը դնելով ճկունության, համագործակցության և աստիճանական արժեքի ապահովման վրա: Այս հոդվածը քննարկում է, թե ինչպես կառավարել ծրագրային նախագծերը Agile-ի միջոցով գործնականում՝ սկսած հիմնական հասկացություններից մինչև դրանց թիմային ներդրումը:

1. Հասկացեք, թե ինչ է Agile-ը և ինչու է այն կարևոր

Agile-ը նախագծերի կառավարման և ծրագրային ապահովման մշակման մոտեցում է, որը կենտրոնանում է կարճ իտերացիաների, արագ հետադարձ կապի և շարունակական կատարելագործման վրա: Ի տարբերություն ավանդական մեթոդների, որոնք հակված են նախապես մշակել մեծ ծրագրեր, ապա դրանք գծային կերպով իրականացնել, Agile-ը ընդունում է այն փաստը, որ փոփոխությունը բնական է:

Agile-ի հիմնական սկզբունքները հիմնված են Agile Մանիֆեստի վրա, որը շեշտում է.
– Անհատներն ու փոխազդեցություններն ավելի կարևոր են, քան գործընթացներն ու գործիքները։
– Գործող ծրագրային ապահովումն ավելի կարևոր է, քան չափազանց շատ փաստաթղթավորումը։
– Հաճախորդների հետ համագործակցությունն ավելի կարևոր է, քան պայմանագրային բանակցությունները։
– Փոփոխությանը արձագանքելն ավելի կարևոր է, քան կոշտ ծրագրին հետևելը։

Այս սկզբունքով նախագծի ղեկավարը կամ թիմի ղեկավարը ոչ միայն կենտրոնանում է ժամանակացույցի և շրջանակի վրա, այլև ապահովում է, որ թիմը կարողանա հարմարվել՝ միևնույն ժամանակ շարունակելով արժեքավոր արտադրանք ստեղծել։

2. Ընտրեք ճիշտ Agile Framework-ը

Agile-ը մեկ մեթոդ չէ, այլ մի քանի շրջանակներ ներառող լայն շրջանակ։ Առավել տարածվածներից երկուսն են՝

Scrum
Scrum-ը հարմար է հստակ նպատակներով և հստակ ռիթմով աշխատող թիմերի համար: Աշխատանքը բաժանված է սպրինտ կոչվող կրկնությունների (սովորաբար 1-2 շաբաթ): Կան կառուցվածքային դերեր և արարողություններ, ինչպիսիք են սպրինտի պլանավորումը, ամենօրյա սկրամը, սպրինտի վերանայումը և սպրինտի հետահայացությունը:

Kanban
Կանբանը հարմար է ավելի շարունակական աշխատանքային հոսքերի համար, ինչպիսիք են սպասարկման թիմերը կամ թիմերը, որոնք ստանում են բազմաթիվ ad-hoc հարցումներ: Կանբանը շեշտը դնում է տախտակների հետ աշխատանքի վիզուալիզացիայի և ընթացքի մեջ գտնվող աշխատանքի (WIP) սահմանափակումների սահմանափակման վրա:

Շրջանակի ընտրությունը պետք է հարմարեցվի նախագծի տեսակին, թիմային մշակույթին և պահանջների անորոշության մակարդակին։ Շատ կազմակերպություններ օգտագործում են նաև հիբրիդային մոտեցումներ, ինչպիսիք են Scrumban-ը (Scrum-ի և Kanban-ի համադրություն):

ՀԱՐՑ  React.js-ի միջոցով վեբ հավելված ստեղծելու ձեռնարկ

3. Արդյունավետ ճկուն թիմի կառուցում

Agile-ի հաջողությունը մեծապես կախված է թիմից։ Իդեալում, Agile թիմը պետք է լինի միջֆունկցիոնալ, ինչը նշանակում է, որ այն ունի աշխատանքը սկզբից մինչև վերջ ավարտելու բոլոր հնարավորությունները. օրինակ, այն ներառում է մշակողներ, QA, UI/UX և, անհրաժեշտության դեպքում, DevOps ներկայացուցիչներ։

Scrum-ում կան երեք հիմնական դերեր՝
– Արտադրանքի սեփականատեր (ԱՊ). Որոշում է կարիքների առաջնահերթությունը, կառավարում է արտադրանքի կուտակված պաշարները և ապահովում, որ թիմն աշխատում է ամենաարժեքավոր բաների վրա։
– Scrum Master. Հեշտացնում է Scrum գործընթացը, վերացնում խոչընդոտները և օգնում թիմին աշխատել առողջ տեմպով։
– Մշակողների թիմ. Թիմը, որը կառուցում է արտադրանքը և պատասխանատու է սպրինտի արդյունքների համար։

Գործնականում ամենակարևորը հստակ պարտականություններն ու բաց հաղորդակցությունն են։ Agile-ը խուսափում է գործառույթների միջև «պարտականությունների փոխանցման» սխեմայից. փոխարենը, բոլոր կողմերը միասին են աշխատում արժեք ստեղծելու համար։

4. Արտադրանքի կուտակված պաշարների կառավարում. գաղափարներից մինչև աշխատանք

Արտադրանքի կուտակված պաշարը (Product backlog) առանձնահատկությունների, բարելավումների և կատարվող տեխնիկական աշխատանքների առաջնահերթ ցանկ է: Առողջ կուտակված պաշարն ունի հետևյալ բնութագրերը.
- Հոդվածները գրված են հստակ և հասկանալի թիմի համար։
– Առաջնահերթությունները միշտ թարմացվում են՝ հիմնվելով բիզնես արժեքների վրա։
– Բավարար մանրամասներ կան այն կետերի համար, որոնց վրա անմիջապես կաշխատենք, մինչդեռ հեռավոր ապագայում նախատեսված կետերը բավականին հակիրճ են։

Հաճախ օգտագործվող ձևաչափ է User Story-ն, օրինակ՝
«Որպես [օգտատիրոջ տեսակ], ես ուզում եմ [կարիք], որպեսզի [օգտվեմ]»:

Բացի այդ, ներառեք ընդունման չափանիշներ, որպեսզի թիմը իմանա, թե ինչ է նշանակում հաջողություն: Լավ սահմանված կուտակված աշխատանքները օգնում են թիմային քննարկումներն ավելի կենտրոնացված դարձնել և նվազեցնում են թյուրըմբռնման ռիսկը:

5. Սպրինտի պլանավորում. իրատեսական նպատակների սահմանում

Եթե ​​օգտագործում եք Scrum, Sprint Planning-ը կարևոր պահ է համաձայնեցնելու համար.
1. Սպրինտի նպատակ. սպրինտի հիմնական նպատակը, որն ապահովում է իրական արժեք։
2. Սպրինտի շրջանակ. որ կուտակված աշխատանքների կետերն են ներառված սպրինտում։

Իրատեսական նպատակներին հասնելու համար թիմը պետք է հաշվի առնի հզորությունը (օրինակ՝ արձակուրդներ, մեծ հանդիպումներ կամ օժանդակ աշխատանքներ): Պոկերի պլանավորման կամ սյուժետային կետերի գնահատման նման մեթոդները կարող են օգտակար լինել, բայց մի՛ կառչեք թվերից. գնահատման հիմնական նպատակը ընդհանուր հասկացողություն կառուցելն է, այլ ոչ թե կատարյալ կանխատեսումները:

ՀԱՐՑ  Ուղեցույց՝ առցանց բիզնեսը զրոյից սկսելու համար

6. Ամենօրյա կատարում. Ամենօրյա ստուգում և առաջընթացի թափանցիկություն

Agile-ը պահանջում է հաղորդակցման հաստատուն ռիթմ: Ամեն օր կազմակերպվում են կանգառներ (առավելագույնը 15 րոպե)՝ թիմը համակարգելու համար: Նրանք սովորաբար քննարկում են.
- Ի՞նչ արեցիր երեկ։
- Ի՞նչ է արվելու այսօր։
- Ի՞նչ խոչընդոտների հանդիպեցիք։

Հիմնականը թափանցիկությունն է։ Խոչընդոտները պետք է անմիջապես տեսանելի լինեն, որպեսզի դրանք արագ լուծվեն։ Այնուամենայնիվ, ստենդափը երկար քննարկումների տեղը չէ. եթե կան խորը տեխնիկական խնդիրներ, շարունակեք առանձին քննարկումը ստենդափից հետո։

7. Որակի պահպանում. Կատարվածի սահմանումը և ճարտարագիտական ​​​​գործելակերպը

Ճկունը չի նշանակում արագություն որակի հաշվին։ Իրականում, որպեսզի իտերացիան կայուն լինի, որակը պետք է պահպանվի սկզբից։ Օգտագործեք՝
– Կատարվածի սահմանում (ԿԱՏ)՝ չափանիշներ, որոնք որոշում են, թե արդյոք տարրը իսկապես ամբողջական է։ Օրինակ՝ կոդը վերանայված է, միավորի թեստավորված, որակի ստուգումն ավարտված է, փաստաթղթավորված և պատրաստ է թողարկման։
– Շարունակական ինտեգրում/Շարունակական մատակարարում (CI/CD). ավտոմատացնել կառուցվածքները, թեստերը և տեղակայումներն ավելի անվտանգ թողարկումների համար։
– Կոդի վերանայում և փորձարկում. համակարգի կայունության պահպանում արագ փոփոխություններից։

Առանց ՊՆ-ի նման ստանդարտների, թիմերը կարող են հեշտությամբ խրվել «կիսաավարտ» նախագծերի մեջ, որոնք կուտակվում են տեխնիկական պարտքի մեջ։

8. Սպրինտի վերանայում. արժեքների ստուգում շահագրգիռ կողմերի հետ

Սփրինտի ավարտին թիմը ցուցադրում է իր աշխատանքը շահագրգիռ կողմերին: Նպատակը միայն հաշվետվություն ներկայացնելը չէ, այլև հետադարձ կապ հավաքելը: Կանոնավոր վերանայումների միջոցով շահագրգիռ կողմերը զգում են ներգրավվածություն, և թիմը կարող է ապահովել, որ ապրանքը զարգանա իրական կարիքներին համապատասխան:

Եթե ​​ուղղությունը փոխվում է, Agile-ը թույլ է տալիս արագ ճշգրտումներ կատարել կուտակված աշխատանքների մեջ։ Սա ավելի անվտանգ է, քան ուղղությունը փոխելը մեծ նախագծի ավարտին։

9. Հետահայացք. Իրական շարունակական կատարելագործում

Հետահայաց վերլուծությունը նիստ է, որի ընթացքում գնահատվում է, թե ինչպես է թիմը աշխատել՝ ինչն է լավ ընթացել, ինչն է բարելավման կարիք ունենում և ինչ կոնկրետ գործողություններ կձեռնարկվեն հաջորդ սպրինտի ժամանակ։

Որպեսզի այդ ռետրոն չդառնա դատարկ ռեժիմ.
– Ընտրեք 1-2 հստակ և չափելի բարելավման գործողություններ։
- Նշանակեք պատասխանատու անձ։
- Վերանայեք գործողությունը հաջորդ ռետրոյում:

ՀԱՐՑ  SSD-ի և HDD-ի միջև տարբերությունը տվյալների պահպանման համար

Փոքր, բայց հետևողական բարելավումները հաճախ հանգեցնում են մեծ փոփոխությունների մի քանի ամսվա ընթացքում։

10. Չափեք ճկուն առաջընթացը առողջ չափանիշներով

Agile-ը առաջնահերթություն է տալիս արժեքին, այլ ոչ թե միայն գործունեությանը: Այնուամենայնիվ, չափանիշները դեռևս կարևոր են որոշումներ կայացնելու համար: Որոշ տարածված չափանիշներ՝
– Արագություն՝ մեկ սպրինտի համար կատարված աշխատանքի քանակը (ներքին պլանավորման համար):
– Արտադրության ժամկետը և ցիկլի տևողությունը. որքան արագ է գաղափարը դառնում օգտագործման համար պատրաստ գործառույթ։
– Աշխատանքի ծավալի գրաֆիկ. վերահսկում է սպրինտի մնացած աշխատանքը։
– Թերությունների մակարդակը՝ չափում է որակը և կայունությունը։

Խուսափեք չափանիշներն օգտագործել որպես անհատներին պատժելու գործիք։ Չափանիշները պետք է օգնեն թիմերին սովորել և բարելավել գործընթացները։

11. Հաճախ հանդիպող մարտահրավերներ և դրանց հաղթահարման եղանակներ

Agile-ի ներդրման որոշ դժվարություններ՝
– Շրջանակի սողացում. կուտակված աշխատանքները շարունակում են աճել առանց հստակ առաջնահերթությունների: Լուծում. ՀԴ-ն պետք է հստակ պատկերացում ունենա առաջնահերթությունների մասին, իսկ շահագրգիռ կողմերը պետք է հասկանան փոխզիջումները:
– Համագործակցության բացակայություն. թիմերը մասնատված են։ Լուծումը՝ կանոնավոր հանդիպումներ, բաց հաղորդակցություն և սպրինտի հստակ նպատակներ։
– Agile-ը «միայն արարողակարգային» է. հանդիպումները գոյություն ունեն, բայց դրանք ազդեցություն չունեն։ Լուծումը՝ կենտրոնանալ արդյունքների վրա, բարելավել ՊՆ-ն և ապահովել, որ հետադարձ քայլերը հանգեցնեն իրական գործողությունների։
– Տեխնիկական պարտքը կուտակվում է. արագ թողարկումներ, բայց շատ սխալներ։ Լուծումը՝ ներդրումներ կատարել թեստավորման, պլանավորված վերափոխման և CI/CD-ի մեջ։

Եզրակացություն

Agile-ի միջոցով ծրագրային նախագծերի կառավարումը նշանակում է թիմի հարմարվելու ունակություն զարգացնել՝ առանց ուղղությունը կորցնելու: Հիմնականը կառավարվող կուտակված աշխատանքների առկայությունն է, հետևողական կրկնությունը, շահագրգիռ կողմերի հետ սերտ համագործակցությունը և որակի նկատմամբ կարգապահական նվիրվածությունը: Agile-ը չի երաշխավորում խնդիրներից զերծ նախագծեր, բայց այն ապահովում է խնդիրներն ավելի արագ բացահայտելու և դրանք ավելի շուտ լուծելու մեխանիզմ: Ճիշտ ներդրմամբ՝ ոչ թե պարզապես ծիսակատարությամբ՝ Agile-ը օգնում է թիմերին թողարկել համապատասխան, բարձրորակ ծրագրային ապահովում, որը անընդհատ զարգանում է՝ օգտատերերի կարիքները բավարարելու համար:

Եթե ​​ցանկանաք, կարող եմ օգնել ձեզ ստեղծել ավելի կոնկրետ տարբերակ՝ հարմարեցված ձեր կոնկրետ կարիքներին (օրինակ՝ Agile՝ 3-5 հոգանոց փոքր թիմերի, ստարտափների կամ ձեռնարկությունների նախագծերի համար), ներառյալ օրինակելի աշխատանքային գրքերի ձևանմուշներ, DoD-ներ և 2 շաբաթյա սպրինտային կառուցվածքներ։

Թողեք մեկնաբանություն