Pull to refresh

Становимся профессиональными PHP разработчиками. Часть 4: Работа в команде на практике

Reading time 6 min
Views 7.9K
Original author: Bruno Skvorc
Предлагаю вашему вниманию перевод четвертой части цикла статей «Becoming PHP professional».

» Первая часть. «Недостающее звено»
» Вторая часть. «Важность других людей»
» Третья часть. «Работа в команде»

Ранее мы рассмотрели социальные аспекты работы в команде и ее плюсы и минусы. Однако, осталось еще много вещей, на которые стоит обратить внимание и многому научиться в работе с другими людьми.

В этот раз, давайте поговорим о практическом применении полученных знаний, в частности, о виртуальных командах (где все или некоторые члены команды работают удаленно).

Разница часовых поясов и другие препятствия


Когда у вас в команде есть люди, работающие удаленно, разница во времени из-за часовых поясов может быть огромным препятствием. Взять, к примеру, SitePoint — я пишу для аудитории, которая, в большинстве своем, из США, тогда как главный офис портала находится в Австралии, а сам я — из Хорватии. В итоге мы имеем 3 разных часовых пояса, разница между каждым из которых составляет ~6-8 часов, из-за чего иногда вы можете получить ответ на ваш e-mail лишь спустя сутки.

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

Следующую проблему я люблю называть “синдром пережатого горлышка бутылки”. Обычно, когда один человек раздает задачи команде разработчиков (фильтр, тимлид или владелец проекта, например), этот человек может стать тем самым пережатым горлышком, если поток задач слишком интенсивный или команда слишком медленная или мала для их реализации. И с течением времени этот человек подвержен очень сильному вниманию и давлению со стороны клиента, что негативно сказывается на процессах разработки.

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

Все эти проблемы могут как замедлить разработку продукта, так и вовсе остановить ее, но есть несколько путей их решений. Разделим их на “органические” и “неорганические”.

Органические решения


Как уже упоминалось в прошлой статье, важность компетентного руководителя и менеджера (т.н. “фильтра”) нельзя недооценивать. Компетентный руководитель способен формулировать задачи должным образом и делить их на более мелкие подзадачи, в то время как фильтр заботиться о том, чтобы до разработчиков доходили лишь осмысленные и необходимые задачи. Роль фильтра заключается в сборе задач и в том, чтобы быть единственным средством коммуникации между разработчиками и другим персоналом (или клиентом). Его компетентность напрямую влияет на время преодоления синдрома “пережатого горлышка”.

Вы можете помочь вашему менеджеру — отказывайте людям, которые не относятся к процессу разработки проекта, с их просьбами и поручениями. Даже если они были одобрены СЕО, посоветуйтесь с техническим директором (СТО), тимлидом или руководителем проекта, прежде чем принимать решение. Они, обычно, ближе к людям, которые требуют необоснованные и не выходящие за сроки вещи, и могут “задушить” их идеи в зародыше. Не откажете один раз — не откажете никогда.

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

Невероятно полезным будет также иметь несколько часов в запасе. Планирование вашего рабочего времени таким образом, чтобы у вас было как минимум 2 часа в запасе для ваших разработчиков, а в особенности, для тимлида, является очень важным моментом. Это позволит вам встретиться с командой вживую или же провести видео- или аудио-звонок для обсуждения. Одна картина стоит тысячи слов, один звонок стоит тысячи электронных писем. Звонок поможет вам распланировать ваш день, выяснить все непонятные моменты по задачам, найти наилучшие пути их решений, а также поможет улучшить ваш уровень английского.

Неорганические решения


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

Trello — один из главных инструментов, который мы используем в SitePoint. Он ориентирован больше не на разработчиков, а на редакторов и менеджеров, но его интерфейс и поддержка markdown разметки позволяют легко и подробно описывать задачи. Если вы регулярно общаетесь с нетехническим персоналом или же любите делиться идеями — Trello это именно то, что вам нужно. А еще им можно пользоваться абсолютно бесплатно.

Basecamp — популярная альтернатива Trello, и представляет собой командно-ориентированное TODO приложение. Как и в Trello, здесь есть обсуждения, вложенность задач и загрузка файлов. Однако, Basecamp не бесплатный.

Google Apps (GSuite) может служить хостом для вашей корпоративной почты и предоставляет закрытые Google Docs и Google Drive корпоративные аккаунты, а еще — групповой чат, Google Groups, корпоративный календарь и много другое. Мне бы хотелось, чтобы больше компаний пользовались Google Apps. Более того, бизнес-версия Google Apps поддерживает Hangouts, а значит, вы можете мгновенно обмениваться сообщениями со своей командой как с вашего компьютера, так и при помощи смартфона. К примеру, Hangouts позволяет вам принимать видео-звонки с двух устройств одновременно. Например, если вы приняли видеовызов в пяти минутах ходьбы от офиса, а затем добрались до своего рабочего места, вы можете просто нажать на “Присоединиться к этому звонку” и принять звонок с вашего рабочего компьютера. Все это позволяет вам сделать вашу коммуникацию в команде по-настоящему профессиональной.

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

Github — это популярная сеть для совместного программирования. Это хаб открытых репозиториев (или закрытых, если у вас платная подписка), где любой может с легкостью работать в команде, без необходимости настраивать репозиторий на своем сервере. BitBucket — достойная альтернатива, которая предлагает закрытые репозитории абсолютно бесплатно.

У Atlassian, создателей BitBucket, также есть множество других инструментов для командного взаимодействия, например, Confluence и JIRA, которые позволяют работать с вашей командой в реальном времени и хранить всю информацию в одном месте. Jetbrains также предлагают неплохой набор инструментов: TeamCity (с бесплатным профессиональным изданием) для непрерывной интеграции и YouTrack (60-ти дневный пробный период или бесплатная версия для 10 пользователей) для отслеживания багов, проблем и запросов.

Если вы придерживаетесь гибкой методологии разработки (Agile Development), лучшими платными инструментами являются PivotalTracker и GreenHopper (плагин для JIRA). Оба инструмента имеют и бесплатные версии.

Последняя, но не менее полезная вещь, которая поможет вам составлять TO-DO списки — это Todoist (которым я пользуюсь каждый день). Интерфейс прямолинеен и сфокусирован на самих задачах. По сути, в нем есть всё, что вы видели в похожих приложениях, но со значительными улучшениями.

Если вы разработчик, я рекомендую вам пользоваться Github и TeamCity, а также использовать Trello для обсуждений. Если же вы менеджер и занимаетесь поддержкой проектов, то я очень советую вам использовать Google Apps. Если ваша команда использует методологию SCRUM — PivotalTracker вам в помощь.

Вывод


В этой статье мы рассмотрели некоторые решения, которые помогут вам улучшить работу вашей команды и сделать её более продуктивной. В следующей статье мы рассмотрим все вышеупомянутые инструменты более подробно.

А есть ли у вас любимый инструмент для командного взаимодействия? Как вы решаете проблемы в своей команде?
Tags:
Hubs:
+8
Comments 8
Comments Comments 8

Articles