Страница 10 из 11
Модель становления специалиста широкого профиля
Итак, первый шаг на пути к тому, чтобы стать универсальным сотрудником, – изучение основ вашей специальности. Для тестировщика в многофункциональной команде это может включать техническую подготовку. Например, тестировщикам потребуется подробно изучить процесс разработки или целевую среду или вникнуть в запросы к базам данных, синтаксические конструкции, структуры и инструменты, которые программисты используют для разработки продукта.
После этого на изучение продвинутых материалов по специальности могут уйти годы (иногда большая часть карьеры), а метазнания требуют еще больше времени. Очевидно, заставить всех сотрудников многофункциональной команды провести столько времени за обучением – не самый лучший способ вырастить специалистов широкого профиля. Вопрос в том, как сотруднику продолжать расти в качестве универсального специалиста, не тратя годы на овладение продвинутыми и метазнаниями.
Ответ на этот вопрос лежит в понимании самой природы развитых метаспособностей. Метазнания – это та самая интуиция, тактика, которые развиваются у человека, когда он годами практикует продвинутые навыки по своей специальности, применяя их в самых разных ситуациях. Это практически шестое чувство в конкретной области. Специалист может использовать в описании кода, дизайна или структуры продукта такие выражения, как «Кажется, что-то не так», «Довести до ума» или «Чувствуется, что…» Суть в том, чтобы специалист замечал признаки чего-то, что нужно доработать.
Подобные признаки можно объяснить неспециалисту как эвристические или как правило «большого пальца». И это еще один способ вырастить универсального сотрудника. Такие люди могут работать в паре со специалистом и помогать, указывая на потенциальные проблемы. Эвристика не всегда безукоризненна, но работает отлично. Так же хорошо, как правило «большого пальца». Вместо того чтобы годами учиться применять метазнания в различных ситуациях, можно обучить универсального специалиста искать эвристические знаки.
Примером такого развития тестировщика в сторону программиста может быть овладение правилами чистого кода (Martin, 2009), принципами неповторения своих ошибок, продолжительность или количество уроков, обоснованные аргументы или множество «если» в его подходе. Универсалу не всегда нужно знать, как исправить те или иные ошибки. Иногда находятся веские причины для того, чтобы нарушить правила. Дополнительные ресурсы помогают обнаруживать признаки, а не исправлять ошибки.
Это ценно, потому что сотрудник оказывается вовлечен в процесс на более низком уровне, другими словами, он сконцентрирован на анализе при выполнении задания или применении какого-то инструмента. Применение метазнаний, или эвристический подход, требует более высокого или отвлеченного взгляда на задачу. Поэтому человеку трудно одновременно рассматривать проблему и аналитически, и абстрактно.
Когда универсальные сотрудники овладевают основными навыками, а потом (что еще важнее) эвристическим подходом, они лучше работают с более узкими специалистами. Это первый и крайне важный шаг в создании эффективной многофункциональной команды. Переход от общения к сотрудничеству – залог еще более успешной многофункциональной команды.
Идея специалистов широкого профиля подходит для всех должностей, а не только для тестировщиков. Когда программисты знают основы тестирования, они более эффективно работают с тестировщиками и учатся предотвращать недостатки, что повышает качество разработки ПО. По нашему опыту, чтобы программисту лучше освоить навыки тестирования, следует плотнее работать с тестировщиками.
В команде, где работает Лайза, помогает составление чек-листов и запись узкоспециальной информации для тестировщиков в общую вики-энциклопедию. Конечно, данные в такой энциклопедии не заменят личного общения, но могут служить отличной шпаргалкой.
В главе 6 мы расскажем, как тестировщики могут овладеть основами программирования и создания баз данных, что поможет им более плодотворно общаться с коллегами.
В начале карьеры на Лайзу сильное впечатление произвела статья Алистера Кокберна Characterizing People as Non-Linear, First-Order Components in Software Development (Cockburn, 1999). За двадцать лет изучив десятки проектов по разработке софта, Кокберн пришел к выводу, что общим фактором, обеспечивающим успех для всех, было то, что «в нужный момент подключались нужные люди». Именно хорошие специалисты, а не язык программирования, инструменты или методология делают проект успешным.
Наш опыт подсказывает, что крайне важно набрать в команду людей с правильным отношением. Не торопитесь, ищите тестировщиков, которые впишутся в ваш проект. Если люди, которых вы наняли, любопытны, хотят учиться и не боятся выйти из зоны комфорта, мы можете обучить их всем необходимым навыкам. Безусловно, работа в одном офисе имеет преимущества перед удаленкой, однако все же советуем расширить географию поиска. Удаленные тестировщики могут быть эффективны в командах, где правильно выстроен процесс коммуникации, где умеют извлекать пользу из современных технологий.
Книга «Чудаки на своем месте» Джоанны Ротман (Geeks That Fit, Rothman, 2012b) поможет найти и нанять на работу тестировщиков, обладающих необходимыми навыками и способных вписаться в вашу корпоративную культуру. Каждый сотрудник привносит в коллектив свои сильные стороны и свой взгляд, и важно учитывать все аспекты при оценке вклада того или иного члена команды. Разнообразие внутри коллектива необходимо для того, чтобы появлялись различные точки зрения. Иногда человек, который не вписывался в коллектив в самом начале, может быть полезным благодаря желанию разрабатывать качественный продукт для клиента.
Даже опытным Agile-тестировщикам нужна помощь, чтобы освоиться в новом коллективе. Нам кажется, что устанавливать определенные ожидания полезно. Что человек должен узнать к концу своего первого дня? Первой недели? Первого месяца работы? Пусть эта информация будет доступна на вашей корпоративной вики-странице или в любой другой легкодоступной форме.
Помогите новичку познакомиться с разработчиками и представителями клиента. Предоставьте ему список обязанностей каждого сотрудника и познакомьте со всеми. Назначьте время для встречи новичка с бизнес-экспертами, чтобы он понял, чем они занимаются. Удостоверьтесь, что у нового тестировщика достаточно времени для обучения, что ему не приходится сразу бросаться в работу. Заверьте новичка, что он может обращаться за помощью и задавать вопросы в любое время.
По нашему опыту, совместная деятельность помогает втянуться в процесс. Сведите нового сотрудника с другими тестировщиками, программистами, бизнес-аналитиками, специалистами DevOps, бизнес-экспертами. Хорошо бы поначалу назначить куратора или опекуна, чтобы вдвоем они могли работать как партнеры. Новые люди в организации приносят свои преимущества – у них незамутненный чистый взгляд.
Я как-то работала в паре с одним очень опытным тестировщиком, только пришедшим в финансовую сферу. Один из результатов нашего теста на несколько пенни отличался от того, что мы ожидали. За годы работы я сталкивалась с подобным множество раз и списала это на разницу при округлении. Однако новому тестировщику несоответствие не давало покоя. Он решил обсудить это с одним из программистов.
Оказалось, что это был самый настоящий баг, на который мы годами закрывали глаза. Тесты были написаны, проблемы решены, и мы больше не видели несоответствия. Пенни добавлялись, и было неловко, что мы будто бы немного обсчитывали некоторых своих клиентов. Ничто не сравнится с новым незамутненным взглядом!
Урок: не пренебрегайте тем, что замечает новый тестировщик!