Окончателното ръководство за принос към отворен код

Ще ви разкажа всичко, което знам за отворения код. Нека започнем с нещо просто. Знаете ли какво е продукт? Продуктът е нещо, което можете лесно да консумирате, като например бурито в ресторант. Но за да създадете този продукт, трябва да предприемете някои стъпки. В ресторанта имате готвач, който има рецепта за това бурито. Те винаги следват една и съща рецепта и я правят от едни и същи съставки, за да осигурят подходящо качество всеки път.

Приносът към отворен код може да ви помогне да влезете в областта на технологиите, да смените кариерата си или да подобрите настоящата си. Всичко това, докато помагаме на общността!

В повечето ресторанти, ако отидете при готвача и попитате: „Съжалявам, обичам вашето бурито; мога ли да взема рецептата? " те биха отказали - това не е с отворен код. С отворен код е, когато освен продукта имате и достъп до всички съставки и рецептата, което означава, че можете да възпроизведете цялото бурито точно у дома.

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

Може да се окаже, че вашето ястие е по-вкусно от храната в ресторанта. Ако ресторантът се управляваше като проект с отворен код, можете да отидете при готвача и да кажете: „Хей, твоето бурито е страхотно, но аз добавих авокадо и сега е още по-добре! Можете да го добавите към менюто си. "

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

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

Честито!

Какво прави проект?

Браузърът Firefox е пример за проект с отворен код. Състои се от хиляди редове изходен код и инструкции как да превърнете този изходен код в използваем продукт, като уеб браузър. Този код е достъпен публично, така че всеки може да го извлече, прочете, одитира или изгради. Всеки човек, който иска да промени поведението на Firefox, може да направи промени в изходния код и да създаде персонализирана версия. Освен това всеки може да изпрати тези промени обратно на поддръжниците на проекта.

Но проектите с отворен код са много повече от кода. Разполагаме и с потребителски интерфейс и графичен дизайн. И да, дори терминални програми като Vim editor имат графични интерфейси.

Не е нужно да кодирате, за да допринесете за отворен код!

Освен интерфейса, има и потребителски взаимодействия, използваемост и нещо, наречено User Experience (UX) - всичко това набира популярност през последните десетилетия. Ако имате опит в дизайна, изобразителното изкуство или психологията, можете да намерите вашата ниша с UI / UX. Следващото нещо, което включва продукт, е медията, включително звуци, графики или видеоклипове. Не всички проекти имат такива, но и те не са толкова редки.

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

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

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

Ако можете да пишете проза, да рисувате, да правите музика, сте добър маркетолог или адвокат: Общността с отворен код се нуждае от вас!

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

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

Не се чувствате създател? Изпратете доклад за грешка или издайте заявка за функция!

Защо си струва времето?

Защо си струва да допринесете за отворен код? Защо трябва да прекарвате времето си в писане на предложения или код или правене на преводи, вместо да се разхождате? Има няколко причини. Всички те произтичат от предпоставката, че приносът към отворен код е публично видим. Всеки може да види какво правят всички останали. И това е страхотно!

Увеличавате компетенциите си

Ако пишете код, проектирате интерфейс или създавате графики, вие се учите. Това е чудесно упражнение за тези, които търсят промяна в кариерата. В Open Source никой не се интересува дали ще работите като старши разработчик или като градинар. Важното е качеството на приноса, който можете да внесете. И след като се докажете в проект с отворен код, ще придобиете ценен опит. Вече не трябва да се чувствате като самозванец, който току-що е завършил обувка. Ще бъдете утвърден член на общност с рекорд, който всеки може да провери.

Това работи дори ако сте закъсали с една технология, но представете си бъдещето с нещо съвсем друго. Кажете, че сте разработчик на COBOL, който мечтае да започне работа с UX? Просто започнете да подобрявате UX във Firefox и изпращайте своите приноси. След като бъдат приети, можете да добавите нова позиция към автобиографията си: UX дизайнер за проект Firefox. Току-що научихте нещо полезно и подобрихте своите пълномощия.

Подобрявате видимостта си

Когато се присъедините към общност, като например проект с отворен код, веднага получавате нови познанства, срещайки се с други, които също участват в проекта. Можете да се поучите от тях и да обменяте идеи с тях.

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

Това ни води до следващата точка.

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

Имайте предвид, че дори не е необходимо да имате търговски опит в тази конкретна област. За тези подборчици, вашите вноски с отворен код са също толкова валидни!

Намирате работа или нови клиенти

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

Намирате нови служители

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

Вие правите нещо за другите

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

Получавате достъп до хубава статистика

Вие сте фен на геймификацията? Тогава този е за теб. Някои хора наистина харесват статистиката и за тях GitHub предлага нещо специално. Всяко действие, което предприемаме в GitHub - най-голямата общност с отворен код - е маркирано със зелен квадрат в огромен календар. Колкото повече неща правим всеки ден, толкова по-светъл е квадратът. Когато допринасяме за няколко последователни дни, GitHub ще го отчете като серия и ще запази резултата ви за бъдещи справки. Това действа като мотивация за победа на най-добрите резултати до момента.

Как намирате първия си проект?

Има няколко начина. На първо място, големите играчи като Firefox или Android имат висока потребителска база и изискват много промени и подобрения. След като въведете промяна в такъв проект, промяната ви става видима за милиони. Можете да посетите GitHub и да видите кои са най-популярните хранилища. Например, в момента на това писане, хранилището номер едно с най-много звезди е freeCodeCamp.

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

Друг подход е да изберете страхотен проект като първи сътрудник. Нека наречем това енергийно ефективен подход. Страхотни проекти са съставени и подбрани списъци с връзки. Например awesome-shell изброява страхотни CLI констатации, докато awesome-JavaScript се занимава с всички лъскави нови рамки, които се появяват всеки ден. Има и страхотен списък с книги за разширяване на ума и разбира се страхотни списъци.

Защо е добър подход? Усилията, необходими за действителен принос, са доста ниски, така че има голям шанс да получите тласък на допамина в резултат на добре свършена работа. Това повишаване на допамина трябва да предизвика следващия принос и т.н. След като топката започне да се търкаля, е трудно да я накарате да спре.

Последният подход, който препоръчвам, е да се върнем на огромно събитие с отворен код. Едно такова събитие, което се отбелязва всяка година през октомври, е Hacktoberfest. Очаква се участниците да направят пет заявки за изтегляне в GitHub (т.е. да направят пет приноса). Всеки, който изпълни тази задача, получава приятни предимства от спонсорите (като тениски и стикери). За да улеснят участниците, някои примерни проекти са изброени на уебсайта.

Друго подобно събитие е Google Summer of Code. Можете да проверите списък с проекти от миналото. Може би някой ще ви вдъхнови достатъчно, за да направите своя принос! О, и тогава има страхотен списък за първи PR възможности!

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

Какво прави приносът ценен?

Сега знаем защо да допринасяме и знаем къде да допринесем. Сега да се съсредоточим върху това, което прави нашия принос ценен? Безценен принос няма да бъде приет, затова е по-добре да се подготвите!

Трябва да спазваме условията на работа

Преди всичко трябва да уважаваме условията на труд на другите. В много проекти можете да намерите документи като този, CONTRIBUTORS.mdкойто представя предпочитания начин за правене на принос. Ако проектът, към който искате да се присъедините, няма подобен документ, проверете други възможни места, като например README.mdуики страницата на проекта или на проекта. Запознайте се с правилата и се уверете, че ги разбирате и спазвате.

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

Помислете колко ценен е вашият принос за другите

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

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

Бъдете многословни в общуването

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

Изпълнете, тествайте, проверете, след това проверете отново преди да изпратите

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

Как да избегнем обезсърчаване онлайн

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

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

Най-добрите ни идеи не са най-добрите за всички

На първо място, вашите най-добри идеи може да не са най-добрите идеи според всички. Нека имаме това предвид. Не се обиждайте, ако някой ви каже, че отварачката за бутилки, която сте създали, не е съвместима с неговия костюм. Ако това е волята на поддържащия проекта, уважавайте го. Може да послужи като урок, ако искате да участвате отново в този проект. Или можете да потърсите друг проект, където може да се нуждаят от такава промяна.

Най-добрата ни работа може да не отговаря на стандартите

Колкото и да е трудно да чуете, най-добрата ви работа може да не отговаря на стандарта на даден проект. Преживях го сам. В един проект, за който участвах, получих разумен списък с насоки как да напиша добър код. Реших да го направя перфектно (така си мислех) за първи път. В крайна сметка знаех за какво да внимавам. Изпратих промените си и след известно време получих отговор. Почти всеки ред код беше подчертан. Интересното е, че всички коментари бяха разумни и точни. Това, което смятах за перфектно, липсваше във почти всеки отделен ред.

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

Можем да бъдем отхвърлени, дори ако сме направили всичко както трябва

Понякога просто получавате „не“ за отговор и не можете да направите много, за да промените това. Все още смятате, че костюмите с отварачки за бутилки са чудесна идея? След това започнете да произвеждате свои собствени! В Open Source актът за създаване на нов проект, базиран на съществуващ, се нарича „разклоняване“.

Съответно новият проект се счита за „вилица“ на оригинала. Например Ubuntu е вилица на Debian. Ако поддръжниците на проекти отказват да включат вашата работа в своя продукт, можете да помислите за раздвояване на проекта и вие сами да станете поддръжник. Това трябва да се практикува само в екстремни случаи. Разкършването не само е за двете групи поддържащи, но и е объркващо за общността. Ако случайно чуете „не“, струва си да научите причините зад този отговор.

Това може да е ценен урок за бъдещето.

Троловете са навсякъде

Сега, троловете.

Тъй като Интернет предлага илюзия за анонимност, се появи субкултура, която изпитва удоволствие да унищожава други хора. Тази субкултура се нарича интернет тролове. Все още не съм имал възможност да се бия с някой като този. Но бих препоръчал да прочетете „Пълното ръководство за разбиране и справяне с онлайн троловете“ от Ragen Chastain. Това ще ви помогне да се подготвите за такава неприятна среща.

Печелене на пари с отворен код

Ако сте чели дотук, вероятно се чудите дали е възможно да спечелите пари, докато работите по проекти с отворен код.

Разбира се, че е!

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

Постоянни методи

Любимият ми метод е бутона „Дари“. Можете да го видите по време на работа по един от моите проекти: Songcorder. В зависимост от размера на съветите, които очаквате, опциите, които си струва да обмислите, включват Paypal (ако планирате да получавате съвети по-големи от $ 15) и Купи ми кафе (за съвети под $ 15).

Бутонът „Купи ми кафе“ изглежда така (можете да щракнете върху него, ако смятате, че го заслужавам):

Освен бутоните с общо предназначение, има методи, посветени на проекти с отворен код, като Gittip / Liberapay (този обича да променя имената доста често). Забавно, едно от популярните хранилища, поддържани от Liberapay, е ... страхотно.

Предпоставката е подобна на тази на Flattr. Вие избирате месечната сума пари, която искате да похарчите за творения, и когато одобрите някаква работа, авторът на работата получава дял от вашия бюджет. Кажете, решихте, че можете да си позволите да плащате 5 долара всеки месец за проекти с отворен код. Ако одобрите четири проекта през определен месец (като ги поставите със звезда или щракнете върху бутона Flattr), всеки от авторите на проекти получава $ 1,25. Доста просто.

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

Друг възможен подход е Patreon. Тук, вместо еднакво разделен бюджет, поддръжниците дават фиксирана сума в брой на всеки създател, който изберат. Ако искате да научите дали това е правилният подход за вас, Ерика Сотер обяснява отлично „Защо Patreon е Dope AF за създатели“. Синдре Сорхус със страхотна слава е един от видните поддържащи отворен код там. Но по-големите проекти като Homebrew или Linuxbrew също използват Patreon за финансиране.

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

Ако можете да помогнете на другите и да получите заплащане за това, продължете!

Еднократни методи

Един от популярните методи за зареждане на средства по проект с отворен код е краудфандингът. Има много платформи, посветени на тази кауза. Kickstarter например помогна за стартирането на Mycroft Mark II, гласов асистент с отворен код. Друг голям играч Indiegogo беше домакин на кампания за имейл клиент Geary. За съжаление проектът не отговаря на целите си. MediaGoblin дори стигна дотам, че стартира собствена кампания без трета страна.

Ако се страхувате, че няма да намерите многото поддръжници, необходими за успешното краудфандинг, можете да опитате безвъзмездни средства. Наясно съм с поне две фондации, предоставящи такива безвъзмездни средства. Една от тях е фондация Травис, подкрепена от компанията зад популярния Травис КИ. Другата е Mozilla Foundation, създатели на уеб браузъра Firefox.

Повечето от представените до момента инструменти се фокусират върху поддържащите с отворен код. Но участниците могат да направят малко тесто, като също станат Ловци на глави. Наградите са функции, поискани от трета страна, подкрепена с финансова награда. За да ги ловите, трябва да изпълните заявката за функция и да поискате наградата. Най-популярната платформа за лов на глави в момента изглежда е Bountysource.

Но ако предпочитате да вземете Cryptocurrency като плащане, Gitcoin работи на подобни принципи. Вижте „Всичко, което трябва да знаете за Gitcoin“ от Vivek Singh за подробности.

Платеният стаж е друг валиден подход. Налични са две популярни опции:

  • Google Summer of Code - насочен към студенти
  • Outreachy - насочен към малцинствата в областта на технологиите

Или, ако сте наистина запалени, защо не се присъедините към компания, посветена на разработването на софтуер с отворен код? Има много от които да избирате. Точно както при консултирането, вие ще получите заплащане и ще направите нещо за общността едновременно.

Това е печеливша ситуация!

Допълнителни изследвания

Ако търсите повече вдъхновение, разгледайте проекта за стойка за лимонада на GitHub. Или добавете собствена идея там. С отворен код всичко е възможно!

Намиране на роднина

Досега не съм го споменавал, но продуктите, проектите и технологиите са само малка част от цялото движение с отворен код. Първият и основен компонент е приказната общност! След като започнете да допринасяте, веднага получавате много нови познати, хора, от които да се учите, хора, на които можете да бъдете ментори, и хора, с които можете да обменяте идеи.

Всеки проект има своя собствена общност, но има и места, където ентусиастите с отворен код се разхождат независимо от техния произход.

Можете да се присъедините към групи в социалните медии, като например групата Linux и Open Source в LinkedIn. Има и много интересни Gitter канали, които можете да проверите. Gitter е система за незабавни съобщения за общности с отворен код. Има и пощенски групи, форуми или платформи като GitHub, които позволяват сътрудничество и комуникация. Но ако искате лично да се срещнете със съмишленици, помислете за посещение или присъединяване към Hackerspace.

Hackerspaces са места, които пренасят любовта към експериментирането отвъд софтуерния свят. Софтуерът, хардуерът, „направи си сам“ и занаятите също са добре дошли. Има страница в Уики, в която са изброени всички хакерски пространства, така че намерете най-близката и просто им посетете. Ще бъдете изненадани от възможното, когато идеята се срещне с изпълнение!

Хареса ли ти? Помогнах ли ви? Ако е така, не се колебайте да се присъедините към моя бюлетин:

Ако харесвате публикацията, помислете за абониране за моя бюлетин. Ще бъдете информирани за всичко, което пиша и препоръчвам (книги, статии, инструменти и вероятно музика).