Интересная и правдивая статья на сайте "Хабрахабр"
Коллектив веб-студии "Глянец.NET" всегда придерживался изложенных в статье принципов. Советуем ознакомиться — https://habrahabr.ru/post/151902.
Красной таблетки не существует
О чем это
Я долгое время был адептом идей о равенстве, свободе и братстве том, что существует красная таблетка.
— Что можно с помощью ООП решить все проблемы масштабирования программ;
— Что с помощью одной методологии можно выстроить разработку проектов;
— Что с помощью нескольких гениальных книг можно научиться проектировать интерфейсы.
На самом деле, после пары десятков проектов я пришел к выводу, что все это — не более чем заблуждения, и чудеса происходят только в книгах авторов, которые делают на своих бестселлерах миллионы. Или в головах консультантов, которые делают деньги, продавая вам фуфло в виде Agile, KPI и прочих умных слов.
Я не сделаю, возможно, в этом посте никаких открытий. Но сэкономлю вам пару лет, если вы решитесь поверить моему опыту.
Проектирования нет
Возможно, после N итераций разработчики начинают говорить вам — все, дальше проект делать нельзя, надо рефакторить. А еще лучше — переписать с нуля, иначе он будет падать с каждым новым изменением. И если вы послушаетесь их бесконтрольно — два месяца будут рефакторить, через два месяца решат переписать с нуля. А через полгода, когда ничего еще не будет готово, либо бросят бесполезную затею, либо вы их уволите — рынок ушел вперед, и попасть на уже ушедший поезд не получится.
Или же, если разработчики уже имели опыт рефакторинга в другой компании, они сходу предложат вам проектировать сразу. UML, использование сложнейших инструментов и так далее — давайте сразу сделаем все правильно, чтобы не переписывать. Это может касаться не только программистов — дизайнер будет стараться нарисовать сразу конечный макет, дабы сдать его без переделок.
Но это не работает. У людей не уживается в голове одна простая мысль: идеального не существует. Любой дизайнер, программист, специалист, глядя на свои работы годичной давности, найдет много ошибок — ибо вырос профессионально. Значит, всегда можно улучшить любой результат. Однако те же самые люди будут с пеной у рта убеждать вас, что вот сегодня они познали дзен и сделают сразу правильно.
Не слушайте их. Посмотрите вокруг: природа не проектирует сразу, она делает миллиарды итераций и применяет положительную обратную связь (простите, креационисты, переходные формы все-таки нашли). И развивает организмы через эволюцию.
Поэтому я из своего опыта сделал простой вывод — несмотря на идеализм, первые три-пять итераций системы должны быть обязательны сделаны быстро (как правило, хардкодом и говнокодом). Своеобразные интерактивные прототипы на живых данных, на которой разработчики реально познают детали предметной области, а заказчик окончательно понимает, что ему нужно. После этого можно проектировать, но заранее — никогда.
Об эволюционном проектировании (и о мертвом традиционном) серьезно рассуждал даже Мартин Фаулер
Методологии нет
Здесь я буду краток. Мы попробовали фиксированные итерации, пробуем канбан. Так как я программист, помимо PM — могу подтвердить, что все методологии действительно сводятся к пиши-код-блять.рф.
И чем меньше лишних действий вносится в процесс — тем лучше. Ежедневные обязательные разговоры — минус (мы общаемся вечером и все чаще on-demand). Плэнинг покер — нафиг: как правило, в моих проектах очень много сложных зависимостей, и смоделировать их и точно представить нельзя; а значит, оценки будут только отнимать время и довлеть, когда ты их на себя взял. Вместо этого — простые прикидки: сделать сразу, сделать за час, за день, и тд, то есть порядок.
Отдельным пунктом идет отказ от фиксированной итерации. Я не знаю, как у других, но в моих проектах, как и в стартапах, очень важны частые релизы и быстрые изменения. Фиксированный релиз раз в две недели — это IMHO бред, и мы отказались от фиксированных итераций в пользу канбана именно поэтому. Впрочем, не одни мы — вот 50 месяцев эволюции разработки, ребята пришли к тому же выводу.
Также хочется отметить дерготню. У нас есть регламент (с его внедрением непросто, но мы не сдаемся) о часах тишины: минимум 4 часа в день программист должен работать безо всяких средств IM, потому что ничто так не бесит, как вопросы переключиться.
В общем, пока я не видел универсальной методологии. Когда учился в вузе и был курс управления проектами, нам сватали RUP. Потом изучал Agile. На практике первое просто для IT, быстроменяющегося рынка и отрасли, просто мертво. А второе — секрет полишинеля. Все рассказывают, что уж они-то точно знают все секреты и могут поставить разработку. Но все чаще на рынок выходят говнопроекты, и делается все очень медленно. Зато конторы по консультациям процветают. Удивительно, да? Вместо того, чтобы самим делать проекты, они делают бабки на тренерской работе.
Кроме единиц, как некоторые, кто там 5-10 лет в Гугле или IBM рулил разработкой, в основном эти ребята ИМХО даже близко не должны подходить к консультациям, если только в портфолио нет реально крутых своих проектов.
А что есть?
В общем, Сталина на них нет, и страну спасут только массовые расстрелы кадры решают все, как говорил один недемократичный руководитель нашей страны.
Есть только люди. По мнению доктора биологических наук Сергея Савельева, которое он изложил в книге«Изменчивость и гениальность», мозги у людей отличаются в разы (отдельные структуры до 40 раз). Грубо говоря, у всех мозг уникален. И вся задача состоит только в том, чтобы отобрать к вам на работу самых гениальных, заточенных именно для нужной работы. Потому что определенные большие структуры в мозге будут тянуть человека делать то, к чему у него дар. Поэтому у лучших людей всегда кайф от работы — но не потому, что они выбрали такую работу, а потому, что изначально были созданы для нее и всего лишь правильно угадали.
Поэтому я ищу тех, кому нравится его деятельность — это признак одаренности (временами гениальности), и что человек верно выбрал свой путь (а не насильно, ради денег, изучил Java или там Photoshop, и занимается тем, чем не одарен).
Один великолепный программист стоит десятырех раздолбаев или средненьких. Один умный, общительный, энергичный руководитель, который заражает других энергией и способен завоевать уважение программистов стоит десятерых обычных PMов и нанятых за бешеные бабки консультантов.
Поэтому я все усилия, по возможности, прилагаю на поиск и на удержание людей. Не верю в методологии — если нет проджекта, верящего в проект, и команды умных людей, все остальное не имеет значения. И не верю в умение сделать сразу хорошо, а верю в эволюцию.
Кто хочет тратить деньги, время и свои усилия на красные таблетки в виде Agile, или думает, что щас умные программисты все спроектируют, а дизайнеры нарисуют — ок, вперед! Можно проектировать до третьего пришествия, и пытаться до четвертого выстроить идеальный burndown chart, в то время как 10 хостов бесятся от неверно выбранных user stories на вашем проекте.
Желаю вам не тратить время на фигню, а скорее сфокусироваться на поиске и удержании лучших из лучших!
Эпилог
Пост посвящается тем самым единицам, тем программистам, менеджерам проектов и дизайнерам, и всем специалистам, которые трудятся на совесть и делают реальную работу, а не ИБД, как многие их коллеги. Такие, как вы — это элита IT и движущая сила мира. О вас хорошо сказал Айзек Азимов в своем рассказе «Профессия».
[...], и тот, кто не желает смириться с этим, и есть человек, которого мы ищем. Быть может, это жестокий метод, но он себя оправдывает. Нельзя же сказать человеку: «Ты можешь творить. Так давай, твори». Гораздо вернее подождать, пока он сам не скажет: «Я могу творить, и я буду творить, хотите вы этого или нет». Есть около десяти тысяч людей, подобных тебе, Джордж, и от них зависит технический прогресс полутора тысяч миров. Мы не можем позволить себе потерять хотя бы одного из них или тратить усилия на того, кто не вполне отвечает необходимым требованиям.
Заказать сайт сейчас!
Ваш будущий сайт слишком хорош, чтобы принадлежать кому-то другому