Экзальтация как путь в никуда

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

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

В любом проекте можно выделить несколько фаз

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

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

Зарождение

В этом месте обычно собирается несколько чуваков и начинают пилить нетленку. Задачи здесь стоят примерно простые и понятные - надо Быстро Нахуячить Прототип. Вопросы типа качества кода, инфраструктуры, деплоймента, обновлений и прочих миграций еще не стоят - ключевыми здесь являются фичи и скорость их появления. В этих условиях наличие людей с шилом в жопе не то чтобы хорошо, но жизненно необходимо - потому как среднестатистический говнокодер Вася, сидящий в одноклассниках с 9 до 18 - пользы принесет чуть меньше, чем ничего, ввиду отсутствия инициативы. Юноша же бледный со взором горящим сможет за трое суток говнокодинга нонстоп под коксом и ягой нафигачить нехилый кусок функционала, на который будет жутко смотреть (не говоря уже поменять) - но тем не менее какую-то часть штук он будет делать - а это все, что нужно на данном этапе.

Прототипирование

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

Поддержка

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

  • проводить исследования и делать людям хорошо
  • навязывать свое видение прекрасного и пусть весь мир подождет

Как известно, далеко не все компании - Apple, поэтому обычный путь к успеху - это решить проблемы как можно большего количества людей. В свою очередь, это требует определенных перестроек образа мысли, глубокого анализа и понимания рынка - и отказ от радикального экспериментирования в пользу эволюционирования. На этом этапе в полный рост обычно стоят задачи типа совместимости версий, исправления найденных багов, разнообразный рефакторинг - и прочие, не такие творческие и захватывающие штуки, позволяющие развернуться юному дарованию. Здесь души прекрасные порывы скорее будут идти в минус - особенно когда у дарования в трекере сотни багов, но само дарование занято переписыванием кода для рисования графика по заветам Rective Programming, вычитанного в модном журнале “Хипстеры против Смузи”.

Здесь нужно небольшое лирическое отступление на тему отличия хипстеров от профессионала.

Основное отличие хипстера от профессионала в том, что профессионал с одинаковой эффективностью и инженерной грамотностью делает как интересную, так и рутинную работу

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