Разработчик CRM

Сергей Кузнецов, CTO PROFI.RU

hr

«Я ищу не „программистов“, а „разработчиков“. Тех, кто думает не о том, как написать внутренне идеальный код, а о том, как построить правильный продукт, который будет работать и приносить пользу людям».

Меня зовут Сергей Кузнецов, я один из основателей PROFI.RU, сейчас руковожу разработкой CRM/КИС PROFI.RU. 

PROFI.RU — сервис по подбору частных специалистов (репетиторов, врачей, парикмахеров, тренеров, ремонтников, ...). 

 С 2005 года с нашей помощью нашли друг друга более 4 000 000 клиентов и более 400 000 специалистов. 

CRM (customer relationship management) — это инструментарий для конвейерных бизнес-процессов, таких как обработка заказов, сбор отзывов, получение оплаты, обзвон соискателей, оформление анкет и т.п. Автоматизация и оптимизация сложных разветвлённых процессов, по которым ежедневно с утра до ночи работает больше 500 сотрудников компании — главная задача CRM. 

КИС (корпоративная информационная система) — платформа, организующая устройство первичных данных. Это основные сущности и логика их связей, структура ключевых данных и сервисы для её обслуживания.

Помимо CRM/КИС, в PROFI.RU ещё 9 продуктовых команд, каждая из которых отвечает за свой сегмент и использует свои собственные технологические и идеологические подходы к разработке.

Принципы работы

Мантры продакт-менеджера. Мой подход не ортодоксален и противоречит многим общепринятым догмам программирования. 

  1. Я ищу не «программиста», а «разработчика». Того, кто думает не о том, как написать внутренне идеальный код, а о том, как построить правильный продукт, который будет работать и приносить пользу людям. Виртуозное владение PHP+MySQL и HTML+JS+CSS автоматически подразумевается: каждый, кто называет себя веб-программистом, должен всё это знать и уметь, а при необходимости быстро осваивать любую новую технологию, будь то ElasticSearch, Socket.IO или Google AdWords API. Но важно понимать, что код — это лишь инструмент для решения задачи, а не самоцель. 
  2. Каждый кандидат должен перед собеседованием ответить себе на вопрос: «Чем я буду гордиться в этой жизни, о чём рассказывать своим внукам?» — Что написал идеальный метод в классе? Что освоил новый фреймворк? Или что создал вещь, которая работает и востребована, за которую люди тебе благодарны? Это важный и не такой уж очевидный вопрос, потому что, работая со мной, вы не напишете много идеальных классов и не изучите ультрамодных фреймворков. Но могу обещать вам много задач, о которых будет что рассказать внукам, и много благодарных пользователей, не скупящихся на «Спасибо, мы так об этом мечтали!». 
  3. Я придерживаюсь стиля без стиля. Если задача в том, чтобы дать в нос, то надо просто дать в нос, а не вставать в стойку дракона и не заниматься дыхательной гимнастикой для концентрации энергии ци. Красивости — для кинокамер. А в реальных боевых задачах нужны жёсткие эффективные решения, далёкие от смузи-стайла entertainment-стартапов. 
  4. Масштаб и complexity продукта уже настолько велики, что единственный вариант сохранить его эффективность — придумывать максимально простые решения. А придумать простое решение — крайне сложная интеллектуальная задача. 
  5. Получать от заказчика/продакт-менеджера все ответы на все вопросы «Зачем?» — не только право, но и обязанность разработчика. Каждый должен хорошо понимать, зачем оно всё это делается. 
  6. Важный принцип, действующий в нашей компании: «Больше результата — меньше контроля. Меньше результата — больше контроля». Применительно к программированию это означает, что если у тебя всё глючит и разваливается, то будь добр каждую запятую ставить так, как в регламенте прописано. А если ты делаешь отлично работающий продукт, то всем без разницы, как там у тебя в коде скобочки расставлены и как модель с контроллером взаимодействуют. 
  7. Я не сторонник догм и верю в научный подход и здравый смысл. Если твой подход к разработке отличается от моего и при этом показывает высокую эффективность — я буду рад у тебя поучиться.

Задачи

Задача 1. Бухгалтерия просит сделать в админке страницу, на которой выводились бы красивые графики статистики использования разных платёжных систем. 

Решение А.

Изучаем библиотеки для отрисовки графики, тестируем разные варианты и выбираем лучший, инсталлируем pChart и Google chart tools, настраиваем Hadoop, делаем интеграционную прослойку в MySQL, пишем API для передачи обработанных данных из хранилища в интерфейс, тщательно отслеживаем соблюдение концепции MVC и стандартов PSR, пишем сам интерфейс, по пути устанавливая пару новейших шаблонизаторов, добавляем различные контролы и фильтры для данных и в результате получаем отличный код, крайне функциональный, масштабируемый и использующий все самые современные достижения IT-индустрии. 

Решение Б.

Спрашиваем у бизнес-заказчика: «Как часто вам нужно пользоваться этими данными? А, раз в месяц обычно хочется всякое там разное глянуть? А вы можете в экселе по колонке цифр сами построить нужные вам графики? Да, так вам даже удобнее будет? ОК». Пишется пять строчек кода импорта таблички в CSV. Всё.

Задача 2. Нужно вывести на сайте список анкет репетиторов так, чтобы клиент не пугался заоблачных цен топовых преподавателей, а видел и дешёвых тоже. 

Решение А.

Импортировать все данные из MySQL в документо-ориентированную СУБД, построить масштабируемый серверный кластер, позволяющий в realtime выдавать листинги анкет, отранжированные по произвольной формуле. 

Решение Б.

Выбрать пару десятков наиболее посещаемых страниц с анкетами, хардкодом вбить вручную отобранный список анкет, удовлетворяющих условию «и дорогие, и дешёвые», провести на этих данных АБ-тест, замеряющий разницу в конверсии из посетителей сайта в заказы. Получив нулевые результаты теста — отменить задачу, сэкономив компании кучу денег, а людям — полгода жизни. Получив положительные результаты — перейти к решению «А», разбив его на этапы так, что уже через неделю первый релиз выпущен, работает и повышает конверсию, а каждые последующие расширяют его область действия и эффективность.

Всё это называется «MVP» и описано в книжках по Lean Startup.

Пиши, мы
на связи

hr

Елена Пыхалова

HR Профи

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