Сегодня я хочу поговорить об эмоциональных колебаниях, связанных с поддержкой проекта с исходным кодом. Конкретнее, описать эмоциональные взлёты и падения, которые вы будете испытывать от публикации вашего кода в онлайне. Но сначала взглянем на картину в общем.
Программное обеспечение поедает мир
Известна фраза от Марка Андреессена, создателя браузера Netscape: «программное обеспечение поедает мир». Я хочу уточнить, что мир поедает ПО с открытым кодом, и у меня есть парочка аргументов в пользу моей версии.
Во-первых, результаты опроса 2015 года «будущее открытого ПО»: «78% анкетируемых сказали, что частично работают при поддержке ОПО, и 66% сказали, что создают ПО для клиентов на основе ОПО. Эти цифры почти удвоились с 2010 года».
Во-вторых, Надья Эгбал [Nadia Eghbal], проводящая интересные исследования экономики ОПО, подсчитала, что «Доля ОПО в приобретённом за $1 миллиард Instagram составляла не менее $143 миллионов».
Мне кажется, у этого кембрийского взрыва ОПО есть несколько причин:
- ОПО бесплатно, что означает, что компания может потратить деньги на людей (инновации) а не на софтовые лицензии.
- Существует критическая масса надёжных компонентов, ускоряющая выход вашего продукта на рынок.
- ОПО производит лучший софт.
- И что мне особенно близко, ОПО позволяет компаниям вместе решать общие задачи без сложных переговоров и соглашений.
Так что, ОПО – это очень круто. Но что это такое?
Открытый код – это больше, чем просто лицензия
Сейчас это понятие означает две вещи.
Понятно, что есть официальное определение – лицензия, позволяющая некоторые вольности пользователю ПО. Но обычно сейчас это понятие используется для обозначения совместного и публичного создания ПО. Лицензия вообще мало кого интересует – у 80% проектов с Github лицензия отсутствует.
Почему же ОПО занимается так много людей? По описанным причинам, связанным с бизнесом. Также мне кажется приятным работать с людьми из разных культур и с разным опытом. Кроме того, мне ОПО даёт ощущение постоянства в карьере, которого обычная работа не дает.
В создании ОПО можно участвовать по-разному.
Поддержка — это больше, чем вклад
Вклад в проект – форма временного участия. Вы делаете один или парочку вкладов в общее дело, и всё. А поддержка подразумевает долговременное управление тем, как проект развивается. В этом неравенстве поддержка значит больше вклада, как по уровню вознаграждения, так и по уровню затраченных усилий, приверженности и эмоциональной вовлечённости.
Пройдёмся по эмоциональному пути человека, поддерживающего проект.
Мне стыдно за мой код
Допустим, вы хотите поддерживать проект, но вы стыдитесь своего кода слишком сильно, чтобы выкладывать его в онлайн. Маленький секрет: все стыдятся своего кода. Это не повод не выкладывать проект и не начинать его поддержку.
Публикация проекта – отличный повод для обучения
Публикация проекта – отличный повод для обучения. Размещение кода в онлайне приводит к обсуждению этого кода, которое иначе просто не состоялось бы. Когда люди используют ваш проект, они дают вам новые задачи для решения, что помогает вам расти как разработчику.
Важно отметить, что дорога к мастерству долгая и трудная, а также бесконечная.
Меня бесит, что я не могу закончить релизы
Новоиспечённого человека, поддерживающего свой проект, может сильно расстраивать тот факт, что он не может закончить релизы. И я чувствовал себя так же. Я планировал релиз, добавляя кучу задач, и работал, пока не решал их все. Но одна, или несколько, или десяток задач задерживали мой октябрьский релиз до декабря, января или февраля.
Релизы по календарю; отмечайте всё подряд
Новые версии моего проекта WP-CLI я выпускаю по календарю, отмечая все шаги, сделанные в процессе. С философской точки зрения мне кажется, что пользователей не должна заботить конкретная версия, которой они пользуются – главное, чтобы она была самой свежей и самой лучшей. Я вообще стараюсь не назначать этапам задачи, пока не завершаю их, только если их ужасно необходимо решить.
Чтобы сделать процесс выпуска более гладким, я использую постоянный формат замечаний о релизах, поэтому мне не приходится каждый раз думать, как их писать. С той же целью я создал список того, что должно быть сделано перед релизом, и запрограммировал максимально возможное количество этих пунктов.
Важно отметить, что окончание релиза занимает несколько часов, которые вам придётся выкраивать из вашего расписания.
Я подавлен количеством открытых задач
Если вы поддерживаете проект с открытым кодом, количество открытых задач может показаться вам чрезмерным. С ростом популярности проекта пользователи будут постоянно открывать задачи, и это будет происходить быстрее, чем вы сможете их закрывать. В какой-то момент вы увидите список из 400 задач и потеряете надежду.
Сортируйте, расставляйте приоритеты, принимайте решения
Поддерживая WP-CLI, я всегда стараюсь сортировать, расставлять приоритеты и принимать решения. Я периодически почитываю список задач, уточняю задачи до необходимой детализации, назначаю метки, и т.п. Приоритеты я расставляю путём назначения небольшого количества задач одновременно. И наконец, я принимаю решения – если задача открыта два года и не двигается, значит, она не важна.
Важно отметить, что вы никогда не дойдёте до нуля открытых задач, поэтому вам надо привыкнуть к нормальному количеству открытых задач в вашем проекте.
Меня бесит, когда обсуждения задач превращаются в споры
Как ведущего проекта ОПО, вас могут расстраивать превращающиеся в войны обсуждения задач. У текста очень небольшая эмоциональная плотность. Наш с вами личный разговор достаточно наполнен эмоциями, поскольку мы используем язык тела, мимику, и интонацию для поддержания речи. Текстовое общение, не наполненное эмоциональным содержимым, может легко привести к недопониманию…
Будьте сочувствующим, твёрдым и уважайте других
При поддержке своего проекта я стараюсь быть сочувствующим, твёрдым и уважать других.
Во-первых, я пытаюсь понять, откуда приходит пользователь, пытаюсь почувствовать себя в его шкуре, и понять, что они хотят сказать, даже если и не говорят этого напрямую.
Во-вторых, я уважаю то, что они используют своё драгоценное время, чтобы попытаться улучшить мой проект. Если они сообщают об ошибке, на это могла уйти пара дней их времени.
Наконец, я твёрд, поскольку я — глава проекта, что задаёт тон общению и уменьшает двусмысленность.
Важно отметить, что вам всё равно придётся отрастить толстую шкуру.
Я слишком увлечён своей работой над ОПО
При поддержке проекта ОПО вы можете почувствовать, что слишком увлеклись участием в нём. Люди просят вас сделать что-то, и вы соглашаетесь. Слишком много «yes» – и вот он, стресс.
Добейтесь счастья и установите границы
Поддерживая свой проект, я обнаружил, что мне нужно добиться собственного счастья и установить границы вовлечённости. Больше всего мне понравился баланс в 2-5 часов в неделю, укладывающийся в нормальный график моей работы. Это поддерживает страсть к проекту, и не даёт ему превращаться в работу. Так как я расставляю приоритеты в задачах, я постепенно продвигаюсь в решении тех задач, что считаю важными.
Важно отметить, что уровень вовлечённости приходится постоянно подстраивать.
Я одинок
Поддерживая проект, вы можете почувствовать себя одиноким. Сейчас я борюсь с этим и пытаюсь представить долговременное будущее моего проекта, которое не зависит полностью от меня. Здорово, конечно, быть благожелательным диктатором, но фактор автобуса меня весьма волнует.
Сконцентрируйтесь на руководстве и приглашайте других участников
В моём проекте я стараюсь концентрироваться на руководстве, и показываю другим возможности принимать решения по проекту. Конкретно, я:
- определяю, как люди могут поучаствовать в проекте другими способами, кроме написания кода, и описываю ожидания от этих ролей;
- пишу больше документации, чем это кажется необходимым, поскольку она не для меня, и так хорошо разбирающегося в проекте;
- определяю ошибки, с которых удобнее начинать изучение проекта;
- отмечаю людей, сделавших вклад, в заметках о выходе новых версий (и твитах).
Важно отметить, что достаточное количество участников вы не найдёте, и вам придётся мириться с тем, что у вас есть – а это может быть трудным делом.
И к чему я это веду?
WP-CLI поедает WordPress
WP-CLI становится всё более включённым в разработку WordPress. Такое ощущение, что на каждом мероприятии WordCamp есть сессия, посвящённая WP-CLI. Командная строка позволяет делать больше, прикладывая меньше усилий. Вы также можете помочь WP-CLI поедать WordPress, добавляя и поддерживая новые команды.
Вы также можете стать человеком, поддерживающим WP-CLI!
У WordPress есть плагины, и у WP-CLI в будущем появятся пакеты команд. И ради него я пытаюсь решать проблемы, которые наблюдаются у WordPress с плагинами:
В WordPress плагины имеют второстепенный статус, в отличие от включённого в ядро кода. Я хочу, чтобы пакеты WP-CLI имели такой же статус, как и команды.
Слишком часто у плагинов WordPress автор один. Я хотел бы, чтобы у каждого из пакетов WP-CLI было два-три активных автора.
Мы все чувствуем, что роль ОПО в глобальной экономике постепенно растёт. В своём выступлении я надеялся передать, что, несмотря на эмоциональные встряски, поддержка ОПО может быть весьма полезной для вашей карьеры.
И когда вы решитесь сделать этот шаг, я жду, когда смогу сказать вам: мои соболезнования, теперь вы поддерживаете популярный проект с открытым исходным кодом.
Комментарии (0)