Много организации внедряват софтуер с отворен код, тъй като го разглеждат като по-евтина алтернатива на разработката на патентован софтуер. Поддръжката му обаче все още изисква инженерен труд, според проучване на Google, озаглавено „Колко струва поддръжката на копие на софтуерен пакет с отворен код (в Google)?“.

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

Google проследи инженерните усилия, вложени в 54 обновления на пакети между април и декември 2024 г. Компанията също така проведе анкета сред служителите относно факторите, поради които обновленията отнемат повече време.

Локалните промени създават повтаряща се работа

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

разходи за поддръжка на отворен код

Според вашия опит, кои характеристики на даден OSS пакет или на процеса по обновяване го правят по-бавен от средното? (Източник: Google)

Когато дадена компания модифицира своето копие на пакет с отворен код, инженерите трябва да се съобразят с тези промени при внедряването на нова версия. Може да се наложи те да адаптират вътрешните корекции и да разрешат проблеми със съвместимостта.

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

Поправките водят до продължителни обновления

Медианното общо усилие е било 2.2 инженерни часа, докато средното е 13.9 часа. Едно от обновленията е изисквало приблизително 400 часа.

„За обновления, които отнеха повече от 2 дни, по-голямата част от времето беше прекарано в отстраняване на последващи проблеми“, обяснява София Варгас от Google Open Source.

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

При 52 от 54-те обновления инженерите са били добре запознати с програмния език, но напълно незапознати със самия пакет и начина, по който той се използва в Google. Усвояването на достатъчно знания за започване на работа е отнело средно по-малко от час.

Рамката на Google ограничава по-широки заключения

Наблюдаваната работа представлява по-малко от 1% от обновленията на пакети в Google през периода на събиране на данни. Обновленията са избрани според вътрешните бизнес приоритети, като 52 от пакетите са написани на Go.

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

Проучването не предписва кои инструменти инженерите могат да използват, нито оценява въздействието на отделни инструменти, включително генеративен изкуствен интелект. Изоставени и архивирани пакети са получили ограничено внимание в анализа.