Մշակողները Մարսից են, ադմինները՝ Վեներայից

Մշակողները Մարսից են, ադմինները՝ Վեներայից

Պատահականությունը պատահական է, և իսկապես դա եղել է մեկ այլ մոլորակի վրա...

Ես կցանկանայի կիսվել երեք հաջողության և ձախողման պատմություններով այն մասին, թե ինչպես է հետին պլանի մշակողը աշխատում ադմինների հետ թիմում:

Պատմություն առաջին.
Վեբ ստուդիա, աշխատողների թիվը կարելի է հաշվել մեկ ձեռքով։ Այսօր դուք layout designer եք, վաղը դուք backender եք, վաղը դուք՝ admin։ Մի կողմից, դուք կարող եք ձեռք բերել հսկայական փորձ: Մյուս կողմից՝ բոլոր ոլորտներում կոմպետենտության պակաս կա։ Ես դեռ հիշում եմ աշխատանքային առաջին օրը, ես դեռ կանաչ եմ, պետն ասում է. «Բաց ծեփոն», բայց ես չգիտեմ, թե դա ինչ է: Ադմինների հետ շփումը բացառված է, քանի որ դուք ինքներդ ադմին եք: Դիտարկենք այս իրավիճակի դրական և բացասական կողմերը:

+ Ամբողջ իշխանությունը ձեր ձեռքերում է։
+ Սերվեր մուտք գործելու համար որևէ մեկին աղերսելու կարիք չկա:
+ Արագ արձագանքման ժամանակ բոլոր ուղղություններով:
+ Լավ է բարելավում հմտությունները:
+ Ամբողջական պատկերացում ունենալ արտադրանքի ճարտարապետության մասին:

- Բարձր պատասխանատվություն:
- Արտադրության խախտման ռիսկը:
- Դժվար է լավ մասնագետ լինել բոլոր ոլորտներում։

Հետաքրքրված չէ, անցնենք առաջ

Երկրորդ պատմությունը.
Խոշոր ընկերություն, մեծ նախագիծ. Գործում է ադմինիստրացիայի բաժին՝ 5-7 աշխատողներով և մի քանի զարգացման խմբերով։ Երբ գալիս ես նման ընկերությունում աշխատելու, յուրաքանչյուր ադմին մտածում է, որ դու եկել ես ոչ թե ապրանքի վրա աշխատելու, այլ ինչ-որ բան կոտրելու։ Ոչ ստորագրված ԱԺԴ-ն, ոչ էլ հարցազրույցի ընտրությունը այլ բան չի նշում: Ո՛չ, այս մարդն այստեղ է եկել իր կեղտոտ փոքրիկ ձեռքերով՝ փչացնելու մեր համբույրների արտադրությունը։ Հետևաբար, նման մարդու հետ ձեզ անհրաժեշտ է նվազագույն հաղորդակցություն, ամենաքիչը կարող եք ի պատասխան կպչուն գցել: Մի պատասխանեք նախագծի ճարտարապետության վերաբերյալ հարցերին: Ցանկալի է մուտք չտալ, քանի դեռ թիմի առաջատարը չի խնդրել: Իսկ երբ խնդրի, էլ ավելի քիչ արտոնություններով հետ կտա, քան խնդրել են։ Նման ադմինների հետ գրեթե ողջ շփումը ներծծվում է զարգացման բաժնի և ադմինիստրատիվ բաժնի միջև եղած սև խոռոչի կողմից: Անհնար է արագ լուծել խնդիրները. Բայց դուք չեք կարող անձամբ գալ. ադմինները չափազանց զբաղված են 24/7: (Ի՞նչ եք անում անընդհատ:) Որոշ կատարողական բնութագրեր.

  • Արտադրության մեջ տեղակայման միջին ժամանակը 4-5 ժամ է
  • Արտադրության մեջ տեղակայման առավելագույն ժամանակը 9 ժամ
  • Ծրագրավորողի համար արտադրության մեջ գտնվող հավելվածը սև արկղ է, ինչպես հենց արտադրության սերվերը: Քանի՞սն են ընդհանուր առմամբ:
  • Թողարկումների ցածր որակ, հաճախակի սխալներ
  • Մշակողը չի մասնակցում թողարկման գործընթացին

Դե ինչ էի սպասում, բնականաբար, նոր մարդկանց արտադրություն չեն թողնում։ Դե, լավ, համբերություն ձեռք բերելով՝ սկսում ենք շահել ուրիշների վստահությունը։ Բայց չգիտես ինչու, ադմինների հետ ամեն ինչ այնքան էլ պարզ չէ:

Գործողություն 1. Ադմինը անտեսանելի է:
Թողարկման օրը, մշակողը և ադմինը չեն շփվում: Ադմինը հարցեր չունի։ Բայց հետո հասկանում ես, թե ինչու։ Ադմինը սկզբունքային մարդ է, չունի մեսենջեր, իր հեռախոսահամարը ոչ մեկին չի տալիս, սոցիալական ցանցերում պրոֆիլ չունի։ Ոչ մի տեղ նրա լուսանկարն անգամ չկա, դու ի՞նչ տեսք ունես, այ ջան: Մենք մոտ 15 րոպե շփոթված նստում ենք պատասխանատու մենեջերի հետ՝ փորձելով կապ հաստատել այս «Վոյաջեր 1»-ի հետ, այնուհետև կորպորատիվ նամակում հայտնվում է հաղորդագրություն, որ նա ավարտել է: Փոստով նամակագրություն անելու ենք? Ինչու ոչ? Հարմարավետ, այնպես չէ՞։ Դե, լավ, եկեք սառչենք: Գործընթացն արդեն ընթացքի մեջ է, հետդարձ չկա։ Կրկին կարդացեք հաղորդագրությունը: "Ես ավարտեցի". Ի՞նչ ավարտեցիր: Որտեղ? Որտեղ փնտրեմ քեզ: Այստեղ դուք հասկանում եք, թե ինչու է ազատման համար 4 ժամը նորմալ: Մենք ստանում ենք զարգացման ցնցում, բայց մենք ավարտում ենք թողարկումը: Ազատ արձակելու ցանկություն այլեւս չկա.

Գործողություն 2. Ոչ այդ տարբերակը:
Հաջորդ թողարկումը. Փորձ ձեռք բերելով՝ մենք սկսում ենք ստեղծել ադմինիստրատորների համար սերվերի համար անհրաժեշտ ծրագրերի և գրադարանների ցուցակները՝ նշելով որոշ տարբերակների տարբերակները: Ինչպես միշտ, մենք թույլ ռադիո ազդանշան ենք ստանում, որ ադմինը ինչ-որ բան ավարտել է այնտեղ: Սկսվում է ռեգրեսիայի թեստը, որն ինքնին տևում է մոտ մեկ ժամ։ Թվում է, թե ամեն ինչ աշխատում է, բայց կա մեկ կարևոր սխալ: Կարևոր գործառույթը չի աշխատում: Հաջորդ մի քանի ժամերը դափերով պարում էին, սուրճի մրուրի վրա գուշակություն անում և յուրաքանչյուր ծածկագրի մանրամասն վերանայում: Ադմինն ասում է, որ ամեն ինչ արել է։ Ծուռ ծրագրավորողների կողմից գրված հավելվածը չի աշխատում, բայց սերվերն աշխատում է։ Հարցեր կա՞ն նրան: Մեկ ժամվա վերջում մենք ստանում ենք ադմինիստրատորին, որպեսզի գրադարանի տարբերակը ուղարկի արտադրության սերվերի մեջ չաթ և բինգո. դա մեզ անհրաժեշտը չէ: Մենք խնդրում ենք ադմինիստրատորին տեղադրել անհրաժեշտ տարբերակը, սակայն ի պատասխան մենք ստանում ենք, որ նա չի կարող դա անել ՕՀ փաթեթի կառավարիչում այս տարբերակի բացակայության պատճառով: Այստեղ, իր հիշողության խորքերից, մենեջերը հիշում է, որ մեկ այլ ադմին արդեն լուծել է այս խնդիրը՝ պարզապես ձեռքով հավաքելով անհրաժեշտ տարբերակը։ Բայց ոչ, մերոնք սա չեն անի։ Կանոնակարգն արգելում է. Կառլ, մենք արդեն մի քանի ժամ նստած ենք այստեղ, ո՞րն է ժամկետը: Մենք ստանում ենք հերթական ցնցումը և ինչ-որ կերպ ավարտում ենք թողարկումը:

Գործք 3, կարճ
Շտապ տոմս, հիմնական ֆունկցիոնալությունը չի աշխատում արտադրության մեջ օգտագործողներից մեկի համար: Մենք մի քանի ժամ անցկացնում ենք խուզելու և ստուգելու համար: Զարգացման միջավայրում ամեն ինչ աշխատում է: Հստակ հասկացողություն կա, որ լավ գաղափար կլիներ նայել php-fpm տեղեկամատյանները: Այն ժամանակ նախագծում չկար ELK-ի կամ Պրոմեթևսի պես լոգերի համակարգեր: Մենք տոմս ենք բացում ադմինիստրացիայի բաժին, որպեսզի նրանք մուտք տան սերվերի php-fpm տեղեկամատյաններին: Այստեղ դուք պետք է հասկանաք, որ մենք խնդրում ենք մուտք գործել մի պատճառով, չե՞ք հիշում, որ սև խոռոչը և ադմինները զբաղված են 24/7: Եթե ​​նրանց խնդրեք իրենք նայել գերաններին, ապա սա «ոչ այս կյանքում» առաջնահերթ խնդիր է: Տոմսը ստեղծվել է, մենք ակնթարթորեն պատասխան ենք ստացել վարչակազմի ղեկավարից. Վարագույր.

Գործ 4 և դրանից դուրս
Մենք դեռ հավաքում ենք տասնյակ խնդիրներ արտադրության մեջ՝ գրադարանների տարբեր տարբերակների, չկարգավորված ծրագրաշարի, անպատրաստ սերվերի բեռնվածության և այլ խնդիրների պատճառով: Իհարկե, կան նաև կոդի սխալներ, մենք բոլոր մեղքերի համար չենք մեղադրի ադմիններին, պարզապես կնշենք ևս մեկ բնորոշ գործողություն այդ նախագծի համար։ Մենք ունեինք բավականին շատ ֆոնային աշխատողներ, որոնք գործարկվեցին վերահսկիչի միջոցով, և որոշ սցենարներ պետք է ավելացվեին cron-ին: Երբեմն այս նույն աշխատողները դադարեցին աշխատել։ Հերթի սերվերի բեռը կայծակնային արագությամբ աճեց, և տխուր օգտվողները նայեցին պտտվող բեռնիչին: Նման աշխատողներին արագ շտկելու համար բավական էր պարզապես վերագործարկել դրանք, բայց կրկին, միայն ադմինիստրատորը կարող էր դա անել: Մինչ նման տարրական վիրահատություն էր կատարվում, կարող էր մի ամբողջ օր անցնել։ Այստեղ, իհարկե, հարկ է նշել, որ ծուռ ծրագրավորողները պետք է աշխատողներ գրեն, որպեսզի նրանք չվթարվեն, բայց երբ նրանք ընկնում են, լավ կլինի հասկանալ, թե ինչու, ինչը երբեմն անհնար է արտադրության հասանելիության բացակայության պատճառով. իհարկե, և որպես հետևանք՝ մշակողի կողմից տեղեկամատյանների բացակայություն:

Կերպարանափոխություն.
Բավականին երկար դիմանալով այս ամենին՝ թիմի հետ միասին սկսեցինք ընթանալ մեզ համար ավելի հաջողակ ուղղությամբ։ Ամփոփելով, ի՞նչ խնդիրների առաջ կանգնեցինք։

  • Մշակողների և կառավարման բաժնի միջև որակյալ հաղորդակցության բացակայություն
  • Ադմինիստրատորները, պարզվում է(!), ընդհանրապես չեն հասկանում, թե ինչպես է կառուցված հավելվածը, ինչ կախվածություններ ունի և ինչպես է այն աշխատում։
  • Կառուցապատողները չեն հասկանում, թե ինչպես է աշխատում արտադրական միջավայրը և, որպես հետևանք, չեն կարող արդյունավետ արձագանքել խնդիրներին:
  • Տեղակայման գործընթացը չափազանց երկար է տևում:
  • Անկայուն թողարկումներ.

Ի՞նչ ենք մենք արել։
Յուրաքանչյուր թողարկման համար ստեղծվել է Release Notes-ի ցանկ, որը ներառում է աշխատանքների ցանկ, որոնք պետք է կատարվեն սերվերում, որպեսզի հաջորդ թողարկումն աշխատի: Ցանկը պարունակում էր մի քանի բաժիններ, աշխատանք, որը պետք է իրականացնեն ադմինիստրատորը, թողարկման համար պատասխանատու անձը և մշակողը: Մշակողները ստացան ոչ արմատային հասանելիություն բոլոր արտադրական սերվերներին, ինչը արագացրեց զարգացումն ընդհանրապես և խնդիրների լուծումը մասնավորապես։ Մշակողները նաև հասկանում են, թե ինչպես է աշխատում արտադրությունը, ինչ ծառայությունների է այն բաժանված, որտեղ և որքան արժեն կրկնօրինակները: Մարտական ​​բեռների մի մասն ավելի պարզ է դարձել, ինչը, անկասկած, ազդում է կոդի որակի վրա։ Թողարկման գործընթացի ընթացքում հաղորդակցությունը տեղի է ունեցել ակնթարթային մեսենջերներից մեկի չաթում։ Նախ՝ մենք ունեինք բոլոր գործողությունների մատյան, երկրորդ՝ շփումը տեղի ունեցավ ավելի մոտ միջավայրում։ Գործողությունների պատմություն ունենալը մեկ անգամ չէ, որ թույլ է տվել նոր աշխատակիցներին ավելի արագ լուծել խնդիրները: Պարադոքս է, բայց դա հաճախ օգնում էր հենց ադմիններին: Հաստատ չեմ ստանձնի ասել, բայց ինձ թվում է, որ ադմինները սկսել են ավելի շատ հասկանալ, թե ինչպես է աշխատում նախագիծը և ինչպես է այն գրված։ Երբեմն մենք նույնիսկ որոշ մանրամասներ էինք կիսվում միմյանց հետ: Միջին թողարկման ժամանակը կրճատվել է մինչև մեկ ժամ: Երբեմն մենք ավարտում էինք 30-40 րոպեում: Սխալների թիվը զգալիորեն նվազել է, եթե ոչ տասնապատիկ: Իհարկե, թողարկման ժամանակի կրճատման վրա ազդել են նաև այլ գործոններ, օրինակ՝ ավտոթեստերը: Յուրաքանչյուր թողարկումից հետո մենք սկսում էինք հետահայաց ցուցադրություններ անցկացնել։ Որպեսզի ամբողջ թիմը պատկերացում ունենա, թե ինչն է նոր, ինչ է փոխվել և ինչ է հեռացվել: Ցավոք սրտի, ադմինները միշտ չէ, որ եկել են իրենց մոտ, դե, ադմինները զբաղված են... Իմ աշխատանքի բավարարվածությունը որպես ծրագրավորող, անկասկած, աճել է։ Երբ դուք կարող եք արագ լուծել գրեթե ցանկացած խնդիր, որը գտնվում է ձեր իրավասության ոլորտում, դուք ձեզ վերևում եք զգում: Հետագայում ես կհասկանամ, որ ինչ-որ չափով մենք ներմուծեցինք դևոպս մշակույթ, իհարկե ոչ ամբողջությամբ, բայց նույնիսկ այդ վերափոխման սկիզբը տպավորիչ էր։

Երրորդ պատմություն
Սկսնակ. Մեկ ադմին, փոքր զարգացման բաժին: Ժամանելուց հետո ես լրիվ զրո եմ, քանի որ... Ես ոչ մի տեղ մուտք չունեմ, բացի փոստից: Մենք գրում ենք ադմինիստրատորին և խնդրում ենք մուտք գործել: Բացի այդ, տեղեկություններ կան, որ նա տեղյակ է նոր աշխատակցի և մուտքերի/գաղտնաբառերի տրամադրման անհրաժեշտության մասին: Նրանք մուտք են տալիս պահեստից և VPN-ից: Ինչու՞ մուտքի իրավունք տալ wiki, teamcity, rundesk: Անպետք բաներ մի մարդու համար, ով կոչված էր գրել ամբողջ backend մասը։ Միայն ժամանակի ընթացքում մենք ստանում ենք որոշ գործիքների հասանելիություն: Ժամանումը, իհարկե, անվստահությամբ է ընդունվել։ Ես փորձում եմ դանդաղորեն զգալ, թե ինչպես է աշխատում նախագծի ենթակառուցվածքը զրույցների և առաջատար հարցերի միջոցով: Հիմնականում ես ոչինչ չեմ ճանաչում։ Արտադրությունը նույն սև արկղն է, ինչ նախկինում։ Բայց ավելին, նույնիսկ փորձարկման համար օգտագործվող փուլային սերվերները սև արկղ են: Մենք այլ բան չենք կարող անել, քան այնտեղ տեղակայել Git-ի մասնաճյուղը: Մենք նաև չենք կարող կարգավորել մեր հավելվածը, ինչպես .env ֆայլերը: Նման գործողությունների համար հասանելիություն չի տրվում: Դուք պետք է աղաչեք, որպեսզի փորձարկման սերվերի վրա ձեր հավելվածի կազմաձևում տող փոխվի: (Կա տեսություն, որ ադմինների համար կենսական նշանակություն ունի նախագծում իրենց կարևոր զգալը. եթե նրանց չխնդրեն փոխել տողերը կոնֆիգուրացիաներում, դրանք պարզապես կարիք չեն ունենա): Դե, ինչպես միշտ, հարմար չէ՞։ Սա արագ ձանձրալի է դառնում, ադմինի հետ անմիջական զրույցից հետո պարզում ենք, որ ծրագրավորողները ծնվել են վատ կոդ գրելու համար, իրենց էությամբ ոչ կոմպետենտ անհատներ են և ավելի լավ է նրանց հեռու պահել արտադրությունից։ Բայց այստեղ նաև թեստային սերվերներից՝ ամեն դեպքում։ Հակամարտությունը արագորեն սրվում է. Ադմինի հետ կապ չկա։ Իրավիճակը սրում է միայնակ մնալը։ Հետևյալը բնորոշ պատկեր է. Ազատ արձակել. Որոշակի ֆունկցիոնալություն չի աշխատում: Մեզնից երկար ժամանակ է պահանջվում պարզելու, թե ինչ է կատարվում, ծրագրավորողների տարբեր գաղափարներ են նետվում զրուցարանում, բայց նման իրավիճակում ադմինը սովորաբար ենթադրում է, որ ծրագրավորողներն են մեղավոր։ Հետո չաթում գրում է՝ սպասիր, ուղղեցի։ Երբ խնդրեցին ետևում թողնել մի պատմություն՝ տեղեկությամբ, թե որն է խնդիրը, մենք թունավոր արդարացումներ ենք ստանում: Ինչպես, մի ​​կպցրեք ձեր քիթը այնտեղ, որտեղ այն չի կարող: Մշակողները պետք է գրեն կոդը: Իրավիճակը, երբ նախագծում մարմնի բազմաթիվ շարժումներ անցնում են մեկ անձի միջով, և միայն նա կարող է կատարել բոլորին անհրաժեշտ վիրահատությունները, չափազանց տխուր է: Նման մարդը սարսափելի խցան է: Եթե ​​Devops-ի գաղափարները ձգտում են նվազեցնել շուկա դուրս գալու ժամանակը, ապա այդպիսի մարդիկ Devops-ի գաղափարների ամենավատ թշնամին են: Ցավոք, վարագույրն այստեղ փակվում է։

P.S. Մարդկանց հետ չաթում ծրագրավորողների ընդդեմ ադմինների մասին մի փոքր խոսելուց հետո ես հանդիպեցի մարդկանց, ովքեր կիսում էին իմ ցավը: Բայց կային նաև այնպիսիք, ովքեր ասում էին, որ երբեք նման բանի չեն հանդիպել։ Deops կոնֆերանսներից մեկում ես Անտոն Իսանինին (Ալֆա Բանկ) հարցրի, թե ինչպես են նրանք ադմինների տեսքով վերաբերվում խցանման խնդրին, որին նա ասաց. «Մենք դրանք փոխարինեցինք կոճակներով»: Իմիջայլոց podcast իր մասնակցությամբ։ Ես կցանկանայի հավատալ, որ լավ ադմինները շատ ավելի շատ են, քան թշնամիները: Եվ այո, սկզբի նկարն իսկական համապատասխանություն է։

Աղբյուրը` www.habr.com

Добавить комментарий