Когато говорим за софтуер, обикновено си представяме програмисти, които прекарват часове в писане на код. Истината обаче е, че зад почти всяка голяма платформа, приложение или операционна система стои и друг вид работа – далеч по-незабележима. Това са хората, които обясняват, отговарят на въпроси, координират екипи, разрешават конфликти и помагат на останалите да продължат напред.
Ново научно изследване показва, че тези две роли невинаги се изпълняват от едни и същи хора. Оказва се, че така наречените „hero developers" – програмистите, които извършват огромна част от техническата работа – невинаги са същите хора, които държат общността заедно.
Старият мит за „героя програмист"
В света на софтуера отдавна съществува понятието hero developer. То описва програмист, който поема непропорционално голяма част от работата по даден проект. В много случаи малък брой хора създават огромна част от кода, поправят най-сложните грешки и познават системата в детайли.
Още през 2017 г. голямо изследване върху над 800 проекта показва, че подобни „геройски" проекти всъщност са много по-разпространени, отколкото се е смятало, особено когато проектите станат големи.
Но новото изследване задава различен въпрос.
Ами ако героят не е този, който пише най-много код?
Кодът не е единственият принос
Екип от учени анализира 77 проекта на Apache Software Foundation – една от най-големите организации за софтуер с отворен код в света. Вместо да измерват само написаните редове код, те разглеждат различни видове принос:
- колко промени прави даден програмист;
- върху колко файлове работи;
- колко код редактира;
- колко дискусии води;
- на колко технически въпроса отговаря;
- колко различни проблема помага да бъдат решени.
Резултатите се оказват изненадващи.
Техническите герои и социалните герои често не са едни и същи
Изследването показва, че има два различни типа незаменими хора.
Едните пишат огромна част от кода. Другите почти не се забелязват отвън, защото прекарват времето си в обяснения, координация, преглед на предложения, обсъждане на проблеми и подпомагане на останалите разработчици.
При сравнение между двете групи учените откриват изключително малко припокриване. Съвпадението между техническите и социалните „герои" е едва около 10%. С други думи човекът, който спасява проекта с код, невинаги е човекът, който държи екипа заедно.
Невидимата работа
Всеки, който е работил в екип, знае колко време отнема комуникацията. Да отговориш на начинаещ разработчик.
Да обясниш защо дадено решение няма да проработи. Да намериш компромис между две различни идеи. Да прегледаш чужд код. Да предотвратиш конфликт, преди да се превърне в проблем.
Това почти никога не влиза в статистиката за написаните редове код, но именно тази работа позволява на сложните проекти да продължат да се развиват.
Авторите на новото изследване посочват, че подобни социални дейности трябва да бъдат разглеждани като отделен и също толкова ценен принос към развитието на софтуера.
Милиони хора използват труда на доброволци
Още по-интересното е, че голяма част от тези проекти са с отворен код.
Това означава, че софтуерът се разработва публично и често без заплащане.
Много от библиотеките и инструментите, върху които работят милиони сайтове, мобилни приложения и бизнес системи, се поддържат от сравнително малки общности. Част от хората отделят свободното си време вечер или през почивните дни, за да поправят грешки, да отговорят на непознати в интернет или да помогнат на следващия човек, който е попаднал в същия проблем.
Понякога именно този доброволен труд се оказва критичен за инфраструктура, използвана от милиони потребители по света.
Какво означава това за компаниите?
Изследователите предупреждават, че организациите често оценяват служителите почти изцяло по технически показатели – написан код, приключени задачи или затворени бъгове.
Така лесно могат да бъдат подценени хората, които поддържат комуникацията, обучават новите колеги, изграждат доверие и предотвратяват организационни проблеми.
А когато подобен човек напусне, последствията невинаги се виждат веднага. Кодът остава, но знанието, връзките между хората и способността за координация започват постепенно да се губят.
Понякога най-важният човек в проекта не е този, който създава най-много функции, а този, който всяка вечер намира време да отговори на поредния въпрос, да помогне на непознат разработчик или да успокои спор, който иначе би блокирал работата на целия екип.
Именно този невидим труд рядко попада в статистиките, но без него много от технологиите, които използваме всеки ден, трудно биха съществували в сегашния си вид.

Коментари (0)
Вашият коментар