Giter Site home page Giter Site logo

playbook's Introduction

Что такое Playbook?

Термин «playbook» пришёл из спорта. Это описание стратегии и тактических приемов команды. В нашем случае это открытый справочник по ценностям, бизнес-процессам, стандартам, процедурам и правилам, которые мы используем в команде разработки в Авито.

Процессы постоянно развиваются, и мы будем вносить изменения и дополнения в наш Playbook. Если вам интересно узнать больше о работе команды разработки Авито — не стесняйтесь, присылайте ваши issues.


Команда разработки Авито

В 2007 году в рунете появилась площадка под названием Авито. Каждый может предложить или найти здесь товар или услугу. Сегодня над её развитием работает команда из 1000+ талантливых разработчиков, системных администраторов, QA-специалистов, дизайнеров, продуктовых менеджеров и аналитиков.

Мы накопили большой опыт работы с высоконагруженными системами: у нас десятки тысяч RPS к бэкенду, сотни миллионов объявлений в базе, терабайты картинок в хранилище и мощная система автоматизированной модерации на базе машинного обучения. Каждый месяц проектом пользуется четверть населения России.

Помимо Авито, наша команда разрабатывает сервисы Автотека, MaxPoster и Domofond.ru.


Технологический стек Авито

StackShare

Авито в цифрах

Данные Цифры
Всего сотрудников Авито 6000+ человек
Команда разработки 1400+ человек
Средний возраст сотрудников 28 лет
Количество серверов 2500+
RPS к бэкенду 96 000
MAU 50 миллионов человек
Доля пользователей приложений 78%
Релизов изменений 200-250 в день
Команд разработки 58, в каждой из которых от 1 до 4 фиче-команд
Активных объявлений 174 миллиона
Модерация 15 миллионов версий объявлений в день
Сделок в секунду 10
Картинок в хранилище 28 миллиардов

Куда смотреть дальше?

playbook's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

playbook's Issues

Почему вас приходиться парсить?

Ребят в стране в каждом округе есть оценщики недвижимости, работающие в гос. сфере, которым вместо предоставления API приходится мучаться с Python и Selenium для проведения государственной оценки недвижимости.
Я знаю целый отдел ~ 20 человек, что вручную переписывали данные со страницы объявления в Excel и вручную делали скриншот.
Благо появились программные решения и отдел смог заниматься чем то более полезным.
Нынче команда авито запретила прокси, и теперь масштабируемость "сборщиков" реализована иными средствами, а парсинг невозможно остановить, даже если это будет очень медленно и с домашних рабочих станций сотрудников. Дайте API для сбора объявлений недвижимости, будьте человеками! Нам номера телефонов не нужны!

Опечатка

"Следит за использованием бюджета и ресурсов своей команды. Вносит коррективы в планы и приориты для решения проблем с ресурсами/бюджетом."

Нет такого слова приориты, скорее всего имелось в виду "приоритеты"

На странице Open-source нарушен баланс в представлении деятельности Avito в Open Source'е

Шаги:

  1. Зайти на https://github.com/avito-tech/playbook/blob/master/avito-open-source.md
  2. Совершить первый взгляд на страницу.

Актуальный результат:

  1. На первый взгляд кажется, что Avito от своего имени ничего не выпускает. В глаза бросается куча проектов не из организации avito-tech

Ожидаемый результат:

  1. В глаза бросается упоминание о проектах, которые лежат в этом репозитории.

Думаю, следует как минимум описать самые звездные проекты. Как-то сбалансировать проекты от имени Авито и от имени сотрудников

Подробнее о процессах

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

Баг в практической реализации ценности "Ставить потребности пользователей на первое место"

Дано:

  1. Заявлена как первая ценность "Ставить потребности пользователей на первое место.":

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

  1. Я являюсь конечным пользователем, который должен быть облагодетельствован в соответствии с описанным в п. 1.

  2. Некоторое время назад обнаружил, что доступ к сервису с IP-адреса моего личного (никем более не используемого) VPN-сервера заблокирован. Обратился в поддержку (тикет 10616859), получил ответ, что заблокирована вся подсеть AWS из-за того, что с неё осуществлялся автоматический парсинг, и исправлено это не будет.

  3. Таким образом, доступность сервиса для конечного пользователя и учёт его мнения поставлены ниже, чем простота борьбы с конкурентами в стиле Роскомнадзора (ну или небезысвестного инквизитора, призвавшего "Убивайте всех, Господь распознает своих"). Налицо нарушение базовой ценности, прошу пофиксить.

Недосказанность в structure.md

Страница structure.md
Текст:

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

  • Коллеги из юнита Messenger, как можно догадаться из названия, разрабатывают всё, что связано с нашим мессенджером.

  • Юнит TechPR организует митапы, помогает докладчикам готовить доклады, публикует статьи на Хабре и так далее.

Ожидается что в примерах будет описан состав команд юнита Messenger и юнита TechPR, с пояснением почему в юните TechPR красивые, а в юнита Messenger - умные, к примеру

Система управления грейдами

Привет!
А в какой системе вы управляете грейдами, должностями и зарплатными вилками?
Организован ли сервис, в котором:

  1. Сотрудник может увидеть свой грейд и узнать, что необходимо для перехода на следующий (и какие есть карьерные треки);
  2. HR может увидеть список должностей с грейдами, фактические и рыночные ЗП, чтобы проверить соответствие.
    Спасибо :)

Непонятное описание грейдов.

https://github.com/avito-tech/playbook/blob/master/QA-profile.md

Уже не первый раз пытаюсь понять этот документ, он достаточно странный. У меня возникло несколько вопросов:

а) Е3. Некоторые пункты просто непонятны. Например, "Составляет тестовые модели для части функциональности команды."
Если это "тестовая -модель" она же инфо-модель, она же (граф действий-состояний) - то это функциональность "продукта" не "команды". Если речь о команде, то там схемы и матрицы взаимодействий.

б) E4. Данная Роль обеспечивает: "Обеспечивает качество всего функционала команды целиком.", "Координирует кросскомандное тестирование." - это грэйд QA Head, и эта же роль "Прорабатывает вместе с разработчиками юнит-тесты.", что есть любой грейд начиная с Junior (E1)

в) E4. "Умеет разрабатывать тесты на backend и хотя бы на один client-side, чтобы обеспечивать покрытие на всех уровнях системы."

  • что иными словами описывает E3 "пирамиды тестирования. Тестирует не только UI, но и уровни ниже: например, API."

Вместе с тем, в шапке документа и так сказано: "Ожидания каждого следующего уровня добавляются к ожиданиям предыдущих. Например, E4-инженер должен уметь делать всё то же самое, что E1, E2 и E3."
Прим: "client-side" - это прилагательное, а "back end" -может использоватся как существительное. Правильным будет вариант из E3.

г) E3 "Владеет и ведёт процессы SPT/ZBP в своей команде, обеспечивает должное SLO по решению проблем пользователей и багов." - данный абзац - это копипаста из "интернетов". Если ZBP и SLO имеет смысл, то SPT будучи затянут из индустриального тестирования, как и Smoke -тест в программном обеспечении никакого смысла не имеют. Программные продукты весьма различны между собой, и векторы атаки у них разные и PT разный соответственно и более того тестирование безопасности - это отдельный профиль. Если SPT тут не относится к Penetration Testing то тогда, что это?

д) E6. Первые две квалификации вполне могут выполняться на E2, E3. Как и сравнительное тестирование. Инициацию тестирование гипотез т.е. А-B тестирование на уровне 5-6 выглядит логично, как и что-то кластерное (чтобы это ни значило в данном контексте)

е) Е3. "Использует паттерн pageObjects." Данный паттерн относится к типу продукта SPA и ему подобных, а не к грейду как таковому. Вполне логично с E2 знать, что это такое и этим пользоваться

ё) По стилистике: англицизмы нужно привести к какому-то одному виду.
"Драйвит достижение baseline по ТММ в QA-секции."
"адресует руткозы flaky-тестов"

Пример: драйвит ачивмент бэйзлайн по TMM в QA-секшн.
либо: Осуществляет соответствие роста уровня TMM запланированному расходу ресурсов.

ж) "Драйвит достижение baseline по ТММ в QA-секции." Если TMM емеется ввиду Test Maturity Model то она и так выделена из CMM в QA - секцию. Если ,это что-то иное, то что это?

Спасибо!

Неоднозначность в определении для Bitbucket

В разделе Процессы и стандарты в секции «Инструменты» указано:

VCS — Bitbucket

К сожалению, в голове у многих разработчиков прочно засела соотношение Bitbucket == Mercurial. Кроме того, Bitbucket — это не система хранения версий (простите за буквоедство).

Мне кажется, что можно значительно снизить число потенциальных вопросов, если переписать эту строчку примерно в таком ключе:

VCS-хостинг — Bitbucket (git)

Текст объявлений заменяется без ведома автора объявления.

Скажите, пожалуйста, какой из плэйбуков требует от вас изменять текст объявлений с русских на похожие латинские буквы, делая так что бы гугл в принципе не выдал никогда это объявление по заданным автором объявления ключевым словам в тексте объвяления?

Если такого плэйбука не существует, тогда на основании чего вы портите юзер экспириенс своего сервиса для клиентов?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.