Alexander Petrov (a.k.a Lysenko) @alexpetrov_rb
Humanist | Programmer | Sing, Play Sax & Guitar |
Love #Ruby, #Clojure, #Emacs
Since 2015 Senior Ruby / Rails / Erlang Developer at FunBox
2006 - 2014 Enterprise Java Developer / Trainer / Architect / Team Leader
Эрих Фромм (23 марта 1900 - 18 марта 1980) Философ, гуманист, психоаналитик, писатель
Июнь 2019 - я открыл для себя его книги и мысли
это помогло преодолеть кризис самосознания и сформулировать идеи этой презентации
Неблагоприятные обстоятельства могут затруднить выбор прогрессивного ответа, и тогда…
Степень свободы выбора между добром (прогрессом) и злом (регрессом) динамически меняется в течение жизни:
После определённого момента ты не свободен выбрать добро и становишься абсолютно злым
После определённого момента ты не свободен выбрать зло и становишься святым
Идеальный мир - все люди занимаются творчеством, постижением себя и мира и пребывают во всеобщей братской любви; общество обеспечивает человеку безусловные достойные условия существования
Реальный мир - люди вынуждены отчужденным трудом зарабатывать на хлеб и конкурировать друг с другом, а творчество и постижение мира возможны только в свободное время, количество которого сокращается, и его часто убивают на пустые отчужденные развлечения
Стремление максимизировать совершенство не может привести к удовлетворяющему результату
Мне кажется что это стремление сродни алчности, которая не уталима по своей природе и ведёт к разочарованию и депрессии
Вместо этого стоит минимизировать степень несчастья / несовершенства и радоваться даже маленьким победам на этом пути
Вместо борьбы за увеличение мотивации сотрудников, борьба с демотивацией
Вместо борьбы за абсолютную чистоту кода, борьба с нечистотой тех частей, в которые вносятся изменения
Гуманистическая совесть - внутренний голос нашего Я, противоположность Авторитарной совести
Недостаточная реализация своих человеческих возможностей и братской любви вызывает необъяснимую тревогу и подавленность
Невроз - это один из механизмов гуманистической совести сигнализировать об этой проблеме
Если вовремя не распознать причину невроза, это может привести к клинической депрессии
Гуманистическая совесть также старается подавать сигналы посредством сновидений
Безусловный доход пока не является реальной возможностью в большинстве государств
Что может помочь в рамках реального мира снизить риск неврозов и депрессии:
Формирование заданий, комфортных для выполнения живыми, творческими, неравнодушными людьми, а не человеческими роботами
Стили декомпозиции работы лежат в континууме
ОТ Максимального дробления на атомарные задачи
ДО Отсутствия формального дробления и оценки
No Estimates - поставка работающих фич до осознания их необходимости стейкхолдерами и потребителями
Антигуманистический подход, характерный для работы крупных капиталистических организаций, критикуемый в книге Эриха Фромма "Революция надежды" 1968
При экстремальной гуманистичности, No Estimates может не сработать, если:
Существует золотая середина дробления работы на задачи, если делать это исходя из гуманистических убеждений, то есть ориентируясь на здоровую человеческую природу
Loose Coupling / High Cohesion
Слабая зависимость / Сильная сцепленность
Loose Coupling: зависимости между задачами должны быть минимальными
High Cohesion: сами задачи должны содержать сильно сцепленные наборы функциональности, чтобы ничего нельзя было выбросить, не потеряв целостность размышлений о задаче
Контрольные вопросы к каждой задаче:
Контрольные вопросы к декомпозиции в целом:
Для получения декомпозиций, удовлетворяющих описанным критериям, могут помочь следующие стратегии
Если фича недостаточно велика и вернхеуровнево оценена уже в 3 - 5 дней, то, возможно, дальнейшее деление не даст никаких преимуществ
Лучше всего делегировать декомпозицию исполнителю задачи
У него максимальная мотивация разобраться в требованиях, обеспечить себе и коллегам комфортные для выполнения задачи
Велик риск ошибки детального проектирования во время декомпозиции
Детальному проектированию место при непосредственной работе над фичей или прототипировании
Во время декомпозиции нужно от куска "мрамора" (фичи) отделять части, границы которых очевидны при предварительном проектировании
Очень большие бизнес-/фичи/ или наборы связанных фич стоит декомпозировать поэтапно
Это соотносится с принципом откладывания решений до момента, когда их необходимо принимать, из Бережливого Производства
Совет. При рассмотрении задач удобно оценивать степень неопределённости, содержащуюся в них, например, бинарно: высокая или низкая
Выбрать основного исполнителя под смысловое ядро фичи и делегировать ему декомпозицию
Делегировать второстепенные механизмы другим членам команды, чтобы разгрузить от них мозг основного исполнителя
Важно обеспечить минимальную зависимость (связность) между работами этих разработчиков
По Фреду Бруксу, это напоминает метафору работы команды как хирурга и его ассистентов
Причем "хирургом" можно иногда назначать не самого старшего разработчика в команде, а самого младшего (оказывая ему поддержку), чтобы он учился и чувствовал драйв
Если после выделения смыслового ядра оно остаётся достаточно большим и неуправляемым по трудозатратам,
и не очевидно, как разделить его на подзадачи управляемого размера,
можно выделить несколько дней на прототипирование и остальное время оставить на реализацию продуктовой версии фичи
После прототипирования может возникнуть идея разделения на подзадачи
Может возникнуть понимание, какие части к смысловому ядру не относятся и их можно делегировать
По Фреду Бруксу вторая версия системы всегда лучше первой
Прототип это первая версия системы в миниатюре
Нас не парализует необходимость сделать всё сразу и не ниже уровня нашего внутреннего стандарта
Прототип идёт в корзину, но позволяет реализовать вторую версию как следует, ибо мозг потренировался в безопасном режиме
Подлодка №132 - Олег Сорока "Дисфункции Организаций"
Подлодка №126 - Артем Овечкин "Осознанность"
Подлодка №98 - Алексей Пименов "Kanban"
RailsConf 2019 - David Heinemeier Hansson "Opening Keynote"
FunBox - за прекрасную работу на Ruby, дружную профессиональную команду и ценнейший опыт
Прошу подсказать мне:
Created by Alexander Petrov (a.k.a Lysenko).