The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
eXtremely Distributed Software Development, или XDSD вкратце, является методологией, которая существенно отличается от работы в традиционных командах разработки программного обеспечения. Большинство методов XDSD настолько разные (и при этом важные), что многим новичкам это может вызвать путаницу. Эта статья поможет вам освоиться, когда вы присоединитесь к проекту, управляемому принципами XDSD - будь то в качестве разработчика или спонсора проекта.
We Pay Only For Closed Tasks
В отличие от многих других проектов, в XDSD мы оплачиваем только закрытые задачи и согласованный бюджет времени. Позвольте мне объяснить на примере. Допустим, вы являетесь программистом Ruby и вам поступает новая задача, которая требует исправления сломанного модульного теста. Задача имеет бюджет времени в 30 минут, как это обычно бывает. Иногда, однако, задачи могут иметь бюджет времени в 15 минут или 1 час.
В нашем примере мы согласовали контрактную ставку в размере 50 долларов в час. С использованием прерванного теста, вы получите 25 долларов за выполнение задания — 30 минут, оплаченных по ставке 50 долларов в час.
Неважно, сколько времени на самом деле потребуется вам, чтобы исправить тест. Ваше реальное время, затраченное на проект, может быть пять минут или пять часов. Тем не менее, вы получите компенсацию только за 30 минут работы. Если вы исправляете сломанный тест за 5 минут, вы получаете 25 долларов. Если задача займет у вас час или даже месяц, вы все равно получите только 25 долларов.
Более того, если вы не сможете исправить модульный тест и завершить задачу вообще, вы не получите оплату вообще за это задание.
Вы можете узнать больше подробностей о данном принципе в следующих статьях: No Obligations Principle или Definition of Done.
Как уже упоминалось выше, это одно из самых важных отличий между XDSD и другими методами. Многие люди путаются, когда видят этот принцип в действии, и некоторые покидают наши проекты из-за этого. Они просто привыкли получать оплату в конце месяца, независимо от того, сколько работы они фактически выполнили. В XDSD мы считаем такой подход очень несправедливым. Мы считаем, что люди, достигающие больших результатов, должны получать больше денег. В то же время, те, кто не достигает результатов, должны получать меньше.
We Deliver Unfinished Components
Поскольку большинство наших задач занимают полчаса, мы настоятельно рекомендуем разработчикам предоставлять незавершенные компоненты. Подробнее об этой концепции можно прочитать в статье ниже: Puzzle Driven Development.
No Informal Communications
В отличие от многих других проектов или команд, XDSD не использует неформальные каналы коммуникации. Для ясности, мы никогда не используем электронную почту, не чатим в Skype и не проводим никаких встреч или телефонных разговоров. Кроме того, в XDSD нет поддержки почтовых рассылок. Наш единственный метод коммуникации - система отслеживания задач (которая, как правило, состоит из GitHub Issues).
Кроме того, мы не рекомендуем разработчикам общаться между собой по поводу объема отдельных задач. Когда вам назначена задача, вашим единственным контактным лицом (и вашим единственным заказчиком) является автор задачи. Вы общаетесь с автором в тикете, чтобы уточнить требования к задаче.
Когда требования задачи ясны - и вы их полностью понимаете - передайте результат автору и дождитесь, пока он закроет задачу. После закрытия задачи автор выплачивает вам оплату.
Мы очень строго относимся к этому принципу - запрещены неофициальные коммуникации. Однако это не означает, что мы не заинтересованы в вашем мнении и конструктивной критике. Напротив, мы призываем всех предлагать свои предложения и сообщать об ошибках. Кстати, мы оплачиваем нахождение ошибок (дополнительные детали о том, как сообщать об ошибках и выплаты можно найти в следующем разделе.)
Поскольку у нас нет официальных коммуникаций, участникам проектных команд не требуется работать в определенное время. Вместо этого, члены команды работают в удобное для них время с учетом часовых поясов. Это включает в себя как будние дни, так и выходные.
We Pay For Bugs
В отличие от многих других команд разработчиков, XDSD приветствует сообщения об ошибках во всех наших проектах. Поэтому мы просим сообщать об ошибках открыто и ожидаем, что участники команды будут их сообщать. Ознакомьтесь с следующей статьей, чтобы узнать подробности о процессе сообщения об ошибках в XDSD: “Сообщения об ошибках приветствуются”.
Мы ожидаем, что все, кто участвует в проекте, будут сообщать обо всех найденных ошибках. Кроме того, мы поощряем участников команды делать предложения. В XDSD мы оплачиваем участникам команды за каждую правильно сообщенную ошибку.
XDSD выплачивает вознаграждение за сообщение о найденных ошибках, потому что мы считаем, что чем больше ошибок мы обнаружим, тем выше качество конечного продукта. Некоторые новые разработчики удивляются, когда им назначают задачи вроде “вам нужно найти 10 ошибок в классе A”. Часто естественной реакцией является вопрос “а если ошибок нет?”. Однако мы считаем, что у любого программного продукта может быть неограниченное количество ошибок; это лишь вопрос затрат времени и усилий, необходимых для их обнаружения.
Only Pull Request
Мы никогда не предоставляем доступ к ветке master
для участников команды - независимо от того, как долго вы работаете над проектом. Следовательно, вы всегда должны представлять ваши изменения через запросы на слияние (большинство наших проектов выполняются в GitHub).
Мы соблюдаем данную политику не потому, что мы не доверяем нашим разработчикам, а просто потому что мы никому не доверяем. Конечно, это шутка. Прочитайте эту статью: Master Branch должен быть только для чтения.
No Compromises About Code Quality
Перед объединением любых изменений в ветку master
мы проверяем весь код с помощью модульных тестов и статических анализаторов. Модульное тестирование является очень распространенным компонентом в современной разработке программного обеспечения, и им не стоит удивляться. Однако, строгость статического анализа - это то, что часто раздражает новичков в XDSD, и мы это понимаем. Мы уделяем гораздо больше внимания качеству и единообразию нашего исходного кода, чем большинство конкурирующих команд по разработке программного обеспечения.
Еще более важно, что мы никогда не делаем компромиссов. Если ваше pull request нарушает хотя бы одно правило статического анализатора, он не будет принят. И не имеет значения, насколько маленьким или незначительным может показаться это нарушение. Этот процесс слияния полностью автоматизирован и не может быть обойден.
Translated by ChatGPT gpt-3.5-turbo/35 on 2023-09-06 at 18:33