Какво всъщност е DevOps? Панацея за всички софтуерни болежки? Методология, която е популярна днес и ще бъде забравена утре? Или пък успешна стратегия за по-ефективна екипна работа? С двама опитни специалисти от Немечек България – Тодор Тодоров (DevOps Evangelist в екип DocuWare) и Мирослав Кошутански (R&D и DevOps тийм лийд в екип Bluebeam) обсъждаме пътя на трансформация, негативите и позитивите от размиването на границите между Development и Operations. 

Защо толкова често днес споменаваме DevOps?

Тодор Тодоров: Темата е важна, защото става дума за съществена промяна и оптимизиране на работата в софтуерните екипи. Също така е силно поляризирана. В единия лагер са уверени, че всичко в софтуерните екипи трябва да се случва според писаните и неписани правила на DevOps. Хората от анти-лагера, пък, най-често са фенове на тясната специализация. Но мисленето, че всеки трябва да има една експертиза и колкото се може по-малко да отвлича вниманието си с нещо различно, вече е остаряло.

Значи ли това, че DevOps изисква да бъдеш специалист по всичко?

Тодор Тодоров: Нищо подобно. Физически е невъзможно да имаш перфектни познания и по мрежи, и по инфраструктура, и по програмиране. Важното е, обаче, всеки да знае какво се случва в кошничката на другия, хората да работят в екип, да комуникират много добре помежду си. Така си гарантираш бърза обратна връзка и много къси луупове.

Мирослав Кошутански: За, сравнение, преди години имаше чисто . NET програмисти и чисто Java програмисти. Но дойдоха микросървисите и стана ясно, че трябва да си полиезичен, да разбираш от повече неща. И навсякъде се появиха обяви за full stack developers. Така започна надграждането към DevOps. Днес, особено когато говорим за Agile екипи, всеки в тях трябва да познава инфраструктурата, макар и не в детайл. Така хората могат да си позволят да я правят максимално лесна за deploy, максимално близка до продукцията. Това е и сред основните предимства на методологията – бързо пускане на продукта за реален тест на пазара, което увеличава както производителността на екипите, така и бизнес ползите.

И двамата се занимавате с въвеждане на DevOps практики във вашите екипи през последните 4-5 години. Как се случва тази трансформация?

Тодор Тодоров: В началото бях убеден, че нещата могат да се получат с магическа пръчка. Или поне – доста плавно и лесно. Бях се подготвил с много четене и гледане на конференции по темата. Видях как в други компании са направили крачката към DevOps, разбрах нужното за микросървисите, видях екипи от 10 човека, които могат всичко. Казах си, че при нас ще се получи по същия начин! Истината е, че ако очакваш бързи промени и подходиш с рогата напред, получаваш голям отпор, който пък значително забавя процеса на трансформация. С времето научаваш и какъв е начинът нещата да се получат.

Мирослав Кошутански: Всички сме хора с опит, но когато навлязохме в света на микросървисите, се оказа, че трябва коренно да променим нагласата си. Трябва да мислим за контейнери, за нетуъркинг между тях, да задълбаем в service discovery. Така започва онова класическо психологическо преминаване през пет етапа – от пълно отричане до пълно приемане.

За какво трябва да се внимава при тази голяма трансформация?

Мирослав Кошутански: За да бъде успешен един екип, е от особено значение DevOps знанията да не се свеждат до един-единствен човек в него. Защото, ако този специалист напусне, заедно с него изчезва цялата тази информация и екипът се връща месеци, дори години назад. Всичко трябва да бъде документирано правилно и много подробно. И никога не забравяйте за infrastructure as a code.

Тодор Тодоров: DevOps промяната  трябва да засегне всички по веригата в една компания – и R&D екип, и акаунт, и маркетинг, и мениджмънт. Иначе ставаш заложник на старите си процеси, нищо че си мислиш, че си направил крачка напред.

Как успявате да мотивирате вашите колеги да променят нагласата си и да прегърнат DevOps?

Тодор Тодоров: Казано накратко – трудно. Никого не можеш да накараш, нужно е всеки сам да го повярва и да поиска. Опитвали сме какво ли не – уъркшопи, мотивационни презентации за успеха на DevOps компании. Като начало, важно е да дадеш пространство на колегите да дишат. Освен това, нужно е да си постоянен и да си готов да работиш упорито, докато с времето промените се получат. Най-лошият момент е онзи, в който твоят екип е в разкрачено положение между два различни свята. Тогава той черпи само негативите от тях. След като успеете да преминете тази критична точка, всички започват да виждат позитивите.

Какви всъщност са ползите от DevOps?

Мирослав Кошутански: DevOps дава конкурентно предимство. Истина е, че на някои компании не им трябва DevOps – става дума за големи, стари компании със стар софтуер и стар код, който няма как просто така да бъде променен. За почти всички други софтуерни екипи DevOps е начин да подобрят отделните умения на всеки един професионалист в тях, да повишат ефективността на екипа като цяло и да бъдат наясно с най-новите тенденции в света на софтуера, да могат да пускат продукти по-бързо и да ги ъпдейтват по-често.

Тодор Тодоров: Ако мислиш логично, практиката и решаването на проблемите на дистрибутираната среда сами ще те доведат до DevOps. Без дори да си съвсем наясно с тези практики или lean теориите. Някога всичко се случваше в рамките на дълги цикли – практиката беше всеки софтуерен продукт да бъде ъпдейтван веднъж на 6 месеца. Това даваше фалшивото чувство за спокойствие и стабилност, защото тези ъпдейти всъщност бяха пълни с бъгове.

Днес обаче, особено ако работиш директно за Cloud, изискванията са да изкарваш малки, бързи ъпдейти. Това означава откриване и фиксване на бъгове всеки ден, хот фиксове всеки ден, но и ново ниво на качество на предлагания от теб софтуер. Точно това е DevOps – начин всеки екип да посрещне изискванията на настоящето и да е готов за бъдещето.

Тагове: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,