Лошото качество на кода е най-големият „крадец на време”

Създаването на изцяло нова функционалност е далеч по-бързо, отколкото всички поправки и интеграции, сподели Никола Богданов – Senior Project Manager в Endava (снимка: личен архив)

Колкото по-притиснати от времето са разработчиците на софтуер, толкова повече трябва да внимават за качеството. Защото големите забавяния, които отнемат най-много време, са именно от доработки и поправки на бъгове. Лошото качество на кода е най-големият „крадец на време, казва Никола Богданов – Senior Project Manager в офиса на международната компания за ИТ услуги Endava в София.

Никола има над 10 години професионален опит като софтуерен инженер и особено силна специализация в Agile методите, които споделя и със студентите си в СУ „Климент Охридски”. Като Agile коуч и трейнър, той е сред предпочитаните лектори на десетки водещи събития в България и Европа, а на 24 октомври ще застане и пред аудиторията в Endava University в София по темата „10 гъвкави стъпки за техническо съвършенство и вградено високо качество”.

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

Г-н Богданов, темата за високото качество и майсторство при създаването на код е все по-актуална, но като че ли е и много чувствителна за софтуерните инженери. Доколко сгъстените крайни срокове пречат? Има ли вариант и вълкът да е сит, и агнето да е цяло?

Изключително важно в нашата работа е да не правим грешни допускания или презумпции, върху които да градим по-нататък. А тезата, че сгъстените срокове и липсата на време ограничават възможностите да се създава качествен код, е точно такава. Всъщност колкото по-притиснати сме от времето, толкова повече трябва да внимаваме за качеството. Защото големите забавяния, които „ядат” най-много време, са именно от доработки, напасване „на парче” и поправки на бъгове. Създаването на изцяло нова функционалност е далеч по-бързо, отколкото всички поправки и интеграции. Така че лошото качество на кода е най-големият „крадец на време”.

Ако основният проблем не е в сроковете, то тогава какъв е?

Не бих казал проблем, а предизвикателство. Тоест нещо като „трън в обувката”, който създава неудобство, но те държи и фокусиран. И това предизвикателство е изключително динамичната среда и постоянно променящите се изисквания. Тук Agile е начинът не просто да се справим, но и да извлечем полза. Той дава възможност на хората да виждат голямата картина, като им предоставя информацията, за да взимат сами решенията за работата си. Това намалява значително времето за реакция.

Agile може да се сравни с играта на отбор. Когато всички знаят каква е целта, взаимодействат помежду си и взимат сами решения, така че да я постигнат, а не чакат треньорска инструкция за всяко едно движение.

Като стана дума за трейнъри – доколко ключова е ролята на мениджмънта и визията на организацията за постигането на такова високо ниво?

Няма да се заблуждаваме – без това няма как, колкото и добри специалисти с добра воля да има. Те имат нужда от подкрепа и от създаването на тази среда, в която да функционират спокойно. Само тогава може да се говори за творческа дейност и адресирането на проблемите да се случва адекватно. Мениджмънтът следва да гарантира, че хората имат знанията, визията и инструментите. И не на последно място е необходима прозрачност, честност, диалог, за да се създаде тази среда. Точно към това се стремим с колегите ми в Endava.

Можете ли да ни дадете добър пример от собствената практика, който илюстрира колко важно е не просто да „отметнем работата, а да сме на високо ниво?

Последния проект, в който се включих на по-късен етап, имаше основен проблем – всичко се случваше много бавно. На екипа му отнемаше много време, за да достави парче код. Причината за това бяха много тежките и сложни правила. Те изискваха до такава степен вниманието на хората, че те просто не мислеха кое може да е полезно.

Огромно количество работа оставаше незавършено, защото чакаше одобрение. Тогава дадохме стъпка назад и преразгледахме правилата, направихме ги по-ефективни, намалихме административната тежест. Развързахме ръцете на хората, дадохме им пространство да взимат сами решенията и да носят отговорност за тях. И резултатите не закъсняха.

Има ли обаче и случаи, в които „работещо решение е напълно достатъчно?

Не вярвам в компромисите – това е модел, в който и двете страни губят. Няма такива случаи. Винаги трябва да правим така, че да е възможно най-доброто и това ни се отплаща. Дори да не е веднага.

Лектор сте на много специализирани конференции и събития в България и в Европа. Според вас има ли разлика в нагласите към темата с високите стандарти?

По принцип не обичам обобщенията, и за хората, и за компаниите. В България определено имаме много високо развито професионално общество. В него има доста добро разбиране за това, че няма универсални решения и че ако се опиташ да хитруваш, създаваш дълг в кода, който рано или късно ще трябва да платиш.

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

Разбира се, има и добри примери за организации като Endava, например. Тук има силна обща визия, но в същото време децентрализация и либералност по отношение на взимането на работните решения. А това е истинска благословия за хората, които искат да са творци, да добавят стойност, да дават и да постигат най-доброто.

Коментар