Один в поле не воин, или причем тут OSS?

Что такое команда? Чем она отличается от коллектива? За годы работы в телекоме я видел и общался со многими управленцами - от линейных руководителей до топ-менеджеров. Многие из них неплохие люди. Все они, чаще всего, являлись просто менеджерами, но не были лидерами.

В чем же разница между менеджером и лидером? В чем состоит феномен лидерства? Из чего он состоит? А как стать лидером? Что для этого можно сделать? Или нужно им родиться? Британские ученые, наверняка уже нашли ответы на эти вопросы, но я не знаю на них однозначного ответа. Могу только порассуждать об этом с не совсем обычной стороны.

На март 2019 года на GitHub насчитывается больше 96 миллионов репозиториев, которые созданы почти 30 миллионами зарегистрированных разработчиков. Эта цифра постоянно растет. И это только GitHub, а есть еще не менее известные BitBucket, SourceForge, LaunchPad и с десяток чуть менее известных. Все вместе это гигантская вселенная программных продуктов, хотя большинство из них, скорее всего, известны только авторам и паре-отройке их близких друзей. Тем не менее, если возникает потребность в какой-то программе или библиотеке, то с очень большой вероятностью, решение можно найти.

Думаю что не сильно преувеличу, если скажу что open source постепенно становится одной из основных тенденций в разработке программного обеспечения. В настоящее время сложно найти программный продукт, который так или иначе не использует в своем коде библиотеки или программные продукты с открытым исходным кодом. Да и в повседневном, обывательском смысле, практически в каждом используемом нами устройстве, мобильном телефоне, телевизоре, умном доме - есть хотя бы часть от open source.

А как мы, разработчики, чаще всего используем открытые исходники? Например, просто ищем то, что нужно для решения текущей проблемы или задачи. Клонируем, подключаем и используем. Круто же - просто и быстро, халява! Хотя некоторые и любят в таких случаях порассуждать, что библиотека унылое или глючное говно. Но, на самом деле, практически ничего не стоит хотя бы зарепортить о найденном баге или просто опечатке. Это нужно просто потому что вот так, небольшими совместными усилиями open source и развивается.

Стоп, стоп, ты вообще о чем тут? Зачем так заморачиваться? Ну, ок, но в следующий раз, когда хороший проект вдруг закроется, перестанет развиваться или неожиданно станет платным, давайте договоримся больше не хейтить. Без кармической чепухи и прочего праноедства, может быть, если ты только берешь, пользуешься, но ничего не возвращаешь, то баланс рано или поздно будет нарушен?

Уверен что каждый, так или иначе, может внести свой вклад. Сделать это совсем не сложно. И квалификация тут фактически не играет никакой роли. Никто перед merge-м не будет спрашивать вас где вы работали или учились. Главное чтобы код был хорошим.

С чего можно начать? С того, что под рукой - у каждого из нас найдется пара-тройка любимых библиотек или фреймворков которые используешь регулярно, а то и каждый день. Почти у каждого такого проекта есть комьюнити, есть список открытых Issue, во многих репозиториях есть что-то вроде «How To Contribute». Многие из них ждут нашей помощи.

Найти их легко, например, сделать поиск по GitHub по словам «good first issue», «help wanted» и так далее. Не хочется копаться во всем этом многообразии? Не беда, есть специальные ресурсы вроде up-for-grabs.net, codetriage.com или helpwanted.apache.org на которых любой сможет найти проект на свой вкус и профессиональный уровень. На самом деле даже необязательно обладать навыками программирования - можно писать или переводить документацию, быть тестировщиком, поддерживать инфраструктуру или делать дизайн. Задачи найдутся для всех!

И всегда есть вариант начать писать что-то свое. Или открыть миру уже существующий проект. Если конкретно вам он (ваш проект, проектик или библиотечка) полезен, то во всём мире, наверняка, найдется десяток другой, а то и тысяча-другая человек, которым это так же принесет пользу и которые будут вам благодарны.

Остается ответить на вопрос - зачем все это нужно? Из очевидного - это хорошая возможность прокачать свои профессиональные навыки. Заработать репутацию и улучшить свое резюме. Уверен, что есть на свете мифические рекрутеры-единороги, которые оценивают кандидатов, в том числе и по их профилю на GitHub. А еще можно создать свой «комплект увольнения» - то есть то, что останется с вами, когда вы поменяете место работы. Так же это прекрасная возможность улучшить свой английский и получить удовольствие от общения с единомышленниками - с самыми разными людьми со всего мира. Открыв свой проект сообществу вы получаете возможность улучшить его - все что вы не учли при разработке и тестировании - все это обязательно «сломают» и найдут.

И самое главное - это отличная возможность развить свои soft skills. Чтобы решать задачи, которые вы один выполнить не сможете вам потребуется команда. И вот это как раз про лидерство.

Даже два человека это уже команда. А чтобы она двигалась - как минимум ей потребуется общая цель. Для начала ее формулировка. Хорошо если вы еще и выработаете стратегию - назовем это «вИдение». Сформулируете общие правила, а лучше несколько простых принципов. В общем организуете совместную работу. И чтобы это не превратилось в затыкание дыр, а было системно, вам потребуется наладить процессы - планирования, организации, контроля и так далее.

А дальше что? Писать код? Нет, не только. Потребуется развить умение добиваться результата, нести ответственность, решать возникающие вопросы и коммуницировать.

И это самое интересное. Уверен в том, что для того чтобы быть хорошим программистом, как и хорошим лидером, нужно быть отличным коммуникатором. Не оратором, не мастером публичных выступлений. Можно быть с виду ботаником или задротом и ходить в свитере с оленями. Но быть при этом отличным коммуникатором. Уметь доносить свои мысли и свою точку зрения до других, а значит и уметь писать «хороший», то есть понятный для других код.

Итого, какой вывод? А вывод простой - open source это отличная возможность «прокачать» себя. И даже если после этого к вам не выстроится толпа рекрутеров из Google, Facebook или Яндекс - да и фиг с ними. В любом случае вы в плюсе - и опыт получите и свою конкурентоспособность на рынке труда повысите. А наработанные вами навыки, эти самые soft skills, навсегда останутся с вами.

Comments