пятница, 19 января 2018 г.

Работа в HFLabs

Команда ЕК
В наш дружный коллектив ищутся крутые коллеги! Сейчас мы присматриваем трех крутых тестировщиков. Ну... Как «тестировщиков»? Это и код почитать / написать, и билд наживую подхачить, и приехать развернуть это все добро на голой виртуалке, и службой поддержки побыть... В общем, есть простор для творчества!

Мы ищем людей:
  • на внедрение (второго Никиту);
  • на тестирование (вторую меня);
  • на поддержку (а это нечто среднее ツ).
Список вакансий

Давайте я расскажу вам, что на работе делаю я. И что вообще значит «работать в ХФЛабс».


Ты сам решаешь, что делать

Приходя на работу, я выбираю задачи, которые буду делать сегодня. Конечно, есть список моих задач в релизе, но чем именно я буду заниматься сегодня, решаю сама. Хочу, пишу доку, хочу, автотесты делаю в ЕК, а хочу, в Факторе меппинги фигачу.

Конечно, так как я работаю на внедрениях и поддержке, мои планы могут измениться. Например, я хотела спокойно дописать автотесты на core-функционал, но приходит внедренец и говорит «Я тут поле новое добавил, хочу на PROD накатить, проверишь?». Или вдруг Заказчик пишет / звонит: «А у меня тут такое...». Конечно, отвлекаешься на задачи с большим приоритетом.

Но тут хорошо работает гибкий график, заказчики то обычно появляются часов в 10 утра, так что у меня есть свободное утро на поработать. Хотя есть у меня и заказчики в других часовых поясах, которые мне с 7 утра пишут. Знают, что могу ответить ツ


Но отвлечения есть не каждый день. А если каждый, то стоит задуматься о том, что пора что-то менять, но об этом чуть позже. У нас есть тестировщица, которая вообще не занимается поддержкой, только core-задачи. Вот она каждый день сама себе хозяйка! А я — почти каждый )))

Это большой плюс, но и большая ответственность. Если ты сказал, что сделаешь задачу сегодня — изволь сделать, даже если засидишься на работе. Сам пообещал, никакой менеджер тебе оценку сверху не спускал. Далеко не все готовы к такой самостоятельности.

Сделал раньше? Сделай что-то еще ))) Ворклоги никто не отменял, 40 часов в неделю надо отработать.


Вокруг крутые люди

У нас есть разработчик Коля, которому ты иногда кидаешь задачу на оценку, а он такой, БАЦ, и порезолвил ее. Сразу сделал, чего уж там. Его скорость работы меня до сих пор поражает ツ

А еще у нас есть Никита, которому даже алтарь возвели! Ну почти:



И ведь есть за что!

Никита, Егор — это такие ребята-технари, которые могут все. И билд собрать, и код поправить, и 100 млн за 2 дня загрузить, и ETL-работу сделать, и в снапшоте JVVM  разобраться, и оракл подкрутить, чтоб работал шустрее, и... Много всяких «и» получается! А ведь малого сама когда-то учила!

Еще у нас классные PM, аналитики и вся остальная команда. А все потому, что работаем мы на результат, а не просто попу документацией прикрыть, типа «вы сами виноваты». Это важно.


И не менее крутые и разнообразные задачи

Лично мне нравится мой скоуп задач. Конечно, иногда я завидую Лене, которая не занимается поддержкой, но зато это весело! Чего я только не делаю:


1. Пишу автотесты.

Большая часть автотестов — API-тесты, о них я подробно рассказывала на SQA Says в докладе «Автотесты на уровне API для Java-приложений». Фактически ты просто составляешь начальное и конечное состояние БД и вызываешь задачку или оправляешь SOAP / REST / JMS запрос, усе. Такое и ручник может сделать, там ведь тест-дизайн + эксельки...

Но сейчас у нас появились нагрузочные тесты на STRESS-стенде, которые в основном дорабатывает разработчик, но кто мешает это сделать вам?

Плюс мы переезжаем в веб, поэтому у нас теперь есть Selenide-тесты.

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


3,5 тысячи тестов в core-проекте + тесты в Заказчиках.

У нас 13 Заказчиков, в каждом в среднем 50-100 "простых" автотеста + 20-30 интеграционных, которые честно поднимают два сервера jboss и выполняют полный цикл общения систем.



2. Пишу документацию

Описание автотестов.
Анализ и подготовка CR (customer request, платная доработка).
Описание нового функционала.
Заполнение FAQ по запросам Заказчика.
Release Notes.



3. Корячу билд

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

Митинг 2017 и главные корячители билдов

4. Пишу мэппинги

Вот у тебя такие-то данные на входе, такие-то на выходе, и мэджик посередине.
Этот мэджик тестировщик пишет сам, разработчик тут нужен редко. У нас даже аналитики мэппинги пишут иногда! А вот разработчики ЕК предпочитают Фактор не трогать, «мы свою часть сделали, а вы при закрытии пополните мэппинг».


5. Разбираюсь с вопросами Заказчика

И вот тут идет полный простор для творчества! Что только не спросят:

— Почему данные не обновились?
— Почему адрес не парсится?
— Как мне в линуксе в другую папку перейти?
— Как мне в LDAP пользователя проверить?
— Что снять треддамп?
— Почему у меня запросы тормозят?
— Почему ноды не общаются?
— Почему запрос три часа уже идет, на каком он этапе?
— ...

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

У нас ребята и MariaDb поднимали, хотя так то мы не DBA и этим вроде как не занимаемся, но... Чего только не бывает ツ


6. Автоматизирую серость и тлен

Шучу. Я обычно задачки ставлю на разработчика, что именно должно работать «само», а они уже это делают =) Но на самом деле и тестировщик может что-то заавтоматизировать, какую-то рутину. Обычно это простенький bash-скрипт, но все в ваших руках!


7. Делаю газетки =)


А что! У нас несколько человек ее делают =) Я в том числе

См также:
Наша газета. Все выпуски 2017 года
Наша газета. Все выпуски 2016 года

И ведь заметьте, всегда на первой обложке в постах Никита идет!



8. Провожу регресс

Вы уже начали зевать? Очень зря! Унылый регресс из серии «протыкивай один и тот же чек-лист каждый раз» мы не делаем, на это есть автотесты. Задача тестировщика при регрессе:
  • Сделать Release Notes (RN) под своего Заказчика — если были CR объемные, можно попросить аналитика помочь, не все любят писать доку. А так общие RN пишет аналитик и мы их просто инклюдим на страницу Заказчика. Проблема возникает, когда Заказчик пропускает пару билдов и надо собрать RN из конструктора, чуток оттуда, чуток отсюда... Но скоро мы и это автоматизируем!
  • Посмотреть на сделанные в core фичи и на особенности своего Заказчика. Подумать, как фича могла на него повлиять. Потому что упомнить все особенности всех Заказчиков невозможно, и тот, кто проверял задачу, мог что-то не учесть.
  • Проверить, что все обещанные CR вошли в поставку — но это быстро, буквально один запрос послал и все. Тестировать задачу второй раз не надо
Ах да, поставка на dev-стенд для регресса проводится сама, ты только кнопочку в Team City нажимаешь. надоело, знаете ли, ручками обновлять Smile :)



9. Слежу за поставками и документацией

Если вы уже успели почитать вакансии на ХХ и нашли там от моего имени, то знаете, что я немного бюрократ. А некоторые коллеги у нас немного раздолбаи =) Уууууумные! Но "да ладно, отдадим билд попозже, что тут такого".

И я та самая зануда, что ходит и пинает всех. Когда письмо отправишь? Когда тесты поднимешь? Когда поставку проверишь?

Тот же самый бюрократ бдит за тем, что тестировщик при закрытии задачи делают нормальный завершающий комментарий:
  • Сделали то и то;
  • Проверил так-то (если запросы делал, их желательно вложить, помогает в дальнейшем, проверено);
  • Автотесты такие-то, ссыль;
  • Дока такая-то, ссыль.
Нет документации? Reopen и не скребет. Да, бюрократ. Ибо нефиг. А то потом сами будем плакать, что документация устарела, «почему не исправили?».

Сейчас я планирую переключиться на другие задачи, поэтому, если вы тоже немножко бюрократ, это будет плюсом! Должен же кто-то еще за всем этим бдить))) Тут главное — не перестараться, слишком бюрократичный подход у нас не приветствуется, мы теплая ламповая компания и все такое. Если доку править чуть-чуть, поправь сам и добавь ссылку в задачу.



10. Провожу обучение или заказываю свое

У нас в компании есть внутреннее обучение. Я, как «стрелянный воробей», обучаю наших новичков. Но каждый может заказать тему, которая интересна ему.

Например, я заказывала подробности про горячий резерв и работу JMS. А еще про кэш в Едином клиенте.



11. Ну и всякие митинги провожу / участвую

Когда-то проводила, так как бюрократ, сейчас этим Миша занимается Smile :)
Тут все стандартно — митинги два раза в неделю, планирование, ретроспектива.

А! Есть еще новости компании и мира. К сожалению, они не учитываю гибкий график сотрудников, так что я большую часть пропускаю. А так у нас вечером в пятницу собирается вся компания и делится новостями. Вот!


То есть в целом, если посмотреть на процесс, тестировщик задействован везде:

Процесс

Сначала идет стадия внедрения (это мы еще опускаем продажный этап, где Никита за 3 дня делает полностью работоспособный прототип):

  • Внедренец создает билд — это делается из архетипа, а потом докручиваются разные классы и настройки уже под Заказчика. Разработчик привлекается, если уперся в проблему, а так он не нужен.
  • Тестировщик проверяет настройки билда, пишет базовые автотесты. На этой стадии ручное тестирование тоже решает, когда надо срочно, то проверяешь вручную, внедренец ставит билд, а ты пока спокойно допиливаешь тесты.
Тестировщик может быть и внедренцем, вон у нас сейчас коллега-тестировщик билд ваяет. 

Дальше идут стандартные релизы, раз в 3 недели. Планирование, итерация, ретроспектива. Внутри цикла тестировщик также участвует во всем. Он и документацию может сделать, и разработчиком в простой задаче побыть, и, собственно, тестировщиком. 

Помимо релизных циклов есть еще поддержка. Отдельного суппорт-отдела у нас нет, так что тестировщик-ответственный за Заказчика выступает первой линией поддержки, а потом и второй, и третьей (сначала у него мало опыта, он бегает по коллегам и просит их помочь)


Наверняка забыла еще что-то из того, что обычно делаю, но вроде ключевые моменты перечислила. Ну что, едем дальше? Что еще отличает HFLabs от других?


Быстрый горизонтальный рост

Вытекает из прошлого пункта. Ты всегда узнаешь что-то новое и делаешь задачи, которые тебе ранее даже не снились =) Прокачка мощная, особенно для джуниоров. Более крутые просто берут себе задачки посложнее и больше «трогают» код.



Увидел фигню? Зарефачь

Это не плюшка. Это обязанность.

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

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

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

Переписку с Заказчиком — думаем, почему. И как это можно исправить. Ты не можешь понять, что там вообще происходит? Значит, надо или обучение провести, или больше инфы в лог выводить, или что-то еще. У Заказчика новый админ, не понимает что да как? Проведите обучение админа, сделайте статью или видео ему в помощь. В общем, ищите возможности тратить времени на поддержку меньше, ведь по умолчанию продукт должен работать как часы. Если это не так — нужны улучшения.

Написание автотестов — а почему? Если где-то есть унылый рутинный труд, ПОЖАЛУЙСЯ! Разработчики не пишут тестов, они просто не знают, что у тебя что-то пригорает. Так, например, мы заменили унылые циферки на нормальные имена полей: я сначала потратила кучу времени на подъемов тестов после сдвига полей, потом запилила блог-пост отчаяния в своем спейсе конфлюенса «почему это плохо и как изменить», а потом просто поставила задачу «сделать как написано тут» с отсылкой в конфлюенс, и воткнула в следующий релиз. И на самом деле у нас за последние пару лет уже целая куча мини-улучшений в автотестах произошла. Главное — не бояться пожаловаться, иначе никто и не узнает о твоих страданиях

— Составление Release Notes — проси улучшать! Именно так мы сделали автогенерилку. В итоге Миша пишет RN один раз, а ты по одной кнопке создаешь заметки в своем Заказчике. Это узкое горлышко убрали, теперь возникло следующее. Автоматизация работает только на «возьми страницу оттуда, сделай инклюд сюда». А если надо объединить несколько разных,  пока вручную. Но уже бесит и уже есть задача на улучшение.

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



Ты отвечаешь за счастье Заказчика

Не просто за Заказчика, а именно за его счастье Smile :)

Если он пришел с проблемой, надо постараться помочь, а не просто сказать «это не наша вина». Скажем, мы предупреждали, что появится доп поле во view, а другая система делает не «select a, b, c», а тупо «select *». В итоге у них с нашим релизом все сломалось, аааа, катастрофа. Можно сказать «ничего не знаем, мы предупреждали, и вообще не надо использовать select * и все будет работать». Но это не решит проблему. Так что можем подстроиться мы, удалить временно это поле, подождать, пока система перенастроиться и добавить вновь.

Конечно, бывает и так, что мы все понимаем, но увы. Сделать «именно так» будет как CR. Но можно предложить обходные варианты, если реально пригорает. В общем, не надо просто перекидывать стрелки «проблема не у нас», надо разбираться. И пытаться помочь.

Это называется «теплая и ламповая поддержка», да!


Так что если вы привыкли к бюрократическим конторам, где главное отмазаться — тут так не прокатит.

Ответственный за Заказчика полностью ведет своего подопечного:

  • Считает стоимость CR;
  • Описывает CR или ищет того, кто ему поможет;
  • Следит за своевременностью поставок;
  • Готовит и проводит ПМИ (или находит кому делегировать);
  • Проводит обучение администраторов и дата-стюардов;
  • Отвечает на все вопросы в поддержку, от бизнеса до админов.


У тебя гибкий график

Мы с мужем живем в Бутово и работаем с 7:00 до 16:00.
А некоторые в 11:00 только приходят на работу.

При этом у нас один разработчик живет в Новосибирске и как раз утром доступен, а второй работает вечером, так что всегда есть к кому обратиться с вопросом.

Не уверена, что шибко гибкий график становится доступен сразу при приеме на работу, может, попросят пару месяцев приходить в промежуток 8-10, но тут надо на собеседовании уточнять ваши пожелания.

После испытательного срока можно будет периодически работать из дома! Но все же ищем человека в офис, чтобы большую часть времени он был тут.


И высокая зарплата

Вилка указана на HH, зарплата хорошая. Но и требования велики, разумеется.
Плюс есть бонусы при закрытии внедрения проекта и в конце года, если он был прибыльный. Но об этом подробности уже для тех, кто устроится =)


Ну и по мелочи

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

Мощные машины, два монитора, вот это вот все.
Чай, кофе, печеньки, фрукты, настолки, аэрохоккей, своя библиотека...
Обучения, конференции...

Настолки


Минусы


Перечислю все, что либо не нравится коллегам, либо не нравится кандидатам, которые приходят на собеседование:

1. Ворклоги — не все их любят))) Это когда трекешь в JIRA, сколько времени тратил на задачу. И должно быть около 8ч в день. Все в целом стандартно

2. Нет вертикального роста — от слова «совсем». На визитках наших вы себе хоть «Бог Ктулху» можете написать, но людей в подчинении у вас не будет. У нас одна команда, без менеджеров и всякого такого.

Это иногда очень смущает людей, которые на собеседовании спрашивают «Кем я буду руководить?». Никем. Только собой Smile :)

3. Тут сложно — у тебя большая ответственность и задачи часто превышают твой уровень знаний. И погуглить придется, и вообще. Ну это я на всякий случай, наша работа не похожа на «просидел в офисе штаны 8 часов».

С одной стороны, быстрый рост, с другой стороны, если вы не сможете быстро расти и во все вникать — ну ой...

Раньше у нас был еще один минус — нет автоматизации. Когда люди приходили и ожидали, что будут тут автотесты на GUI целыми днями писать. А мы поясняли, что фреймворк давно написан, так что писать автотесты = заполнять эксельки. Как ручник фактически. И все такие сразу «Фиииии, я пошел». Но теперь у нас есть автоматизация! Правда, все равно не автоматизация GUI, а скорее задачи на автоматизацию процессов, о них чуть ниже.


Так кто нам нужен?


Мы сейчас ищем:
  • Java-разработчика;
  • Тестировщика, а лучше двух. И желательно один немного бюрократ, как я, а второй любитель кода, как Никита;
  • Автоматизатора (?)
На самом деле открытой вакансии автоматизатора у нас нет, но если вам интересны задачи автоматизации процессов, заходите! Например, актуальные задачи:
  • Генерация документации из тестов. Взять из кода, запихать в красивом виде в конфлюенс.
  • Генерация Release Notes по кусочкам: ты указываешь previous version, current version, а скрипт уже идет и собирает все по кусочкам: блок «Бизнесу» со всех страниц, блок «Разработчикам» итд.
  • Генерация одного теста из другого. Так как у нас связанные системы, то интеграционные тесты можно делать в одной и генерить in-out файлы для другой. У меня есть на этот счет несколько идей, но кто бы это все сделал?
  • Автосоздание тестов. Опять же, у меня есть даже готовое ТЗ, потому что некоторые тесты делаются по шаблону, но каждый раз вручную, эх...
  • Нагрузочное тестирование. У нас есть стресс-стенд, которым сейчас в основном занимаются разработчики. Нужно анализировать данные, которые собирают коллеги по Заказчикам (статистику количества вызовов), генерить адекватную нагрузку, создавая разные сценарии.
Пока такими задачами занимаются разработчики, но, может быть, это ваше призвание? Для любителей кода у нас найдутся и другие задачи, задачи внедрений. Так что если вам интересны такие извращения, как минимум заходите поболтать!

Ах да, и не забудьте перед собеседованием сказать кодовую фразу «Гонка Героев» и получите дополнительную печеньку к чаю Smile :)

Напомню еще раз, где посмотреть наши вакансии — работа в HFLabs

6 комментариев:

  1. превосходно написано))) надо к вам)

    ОтветитьУдалить
  2. наткнулась на вашу вакансию, но к сожалению не дотягиваю по техническим скилам. Очень не хватает опыта в такой компании)

    ОтветитьУдалить
    Ответы
    1. Дотягивайте по скилам и приходите) Или так попробуйте, но джуниоров сейчас не факт, что рассматриваем

      Удалить
    2. Не считала себя джуниором, пока не прочла список требований). Да, попробую подтянуться, может быть и познакомимся лично). Удачи в поиске кандидата!)

      Удалить
    3. Ну да, я про джуниора в нашей компании. Хотя если есть хороший опыт именно в тестировании (тест-дизайн и тд), то вполне можно попробовать, на core-тестировщика =) А там все остальные навыки потихоньку засосут

      Удалить