четверг, 4 октября 2018 г.

Управление в стиле ООП

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

Любому приличному программисту известно, что грамотно написанная система должна иметь хорошую архитектуру, обеспечивающую чёткую структуру, удачное сочетание и взаимодействие объектов, чётко распределённые между объектами роли и разделение на слои. 

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

В этой статье я (очевидно, не слишком серьёзно) попробую спроецировать основные принципы ООП на проектное управление и посмотреть, что из этого получится.

среда, 3 мая 2017 г.

Яндекс: Data & Science


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



Очень рекомендую послушать Тимофея Пыркова из Gero про то, как оценивать параметры старения с помощью обычного смартфона. Вкратце, коллеги по количеству шагов и другой двигательной активности построили дескриптор, который достаточно точно предсказывает, сколько человеку осталось жить. Звучит как фантастика.

Ну и отдельно - доклады про анализ ДНК: Чем полезны технологии больших данных в работе с бактериями микробиоты от коллег из Атласа и целая встреча Data & Science: биоинформатика - там тоже очень много интересного.

воскресенье, 3 января 2016 г.

Про старый код


Некоторое время назад написал на Хабр пару статей про отличительные свойства старого проекта со страшным и ужасным легаси кодом (Старый код: почему он такой) и о том, как правильно "продавать" рефакторинг (Техобслуживание кода: как продать рефакторинг бизнесу).

К слову, у меня есть пара примеров, когда рефакторинг удалось успешно продать заказчику (или руководству). В одном случае, заказная разработка системы зашла в тупик, и там было огромное количество багов, которые страшно раздражали. Они частично перепали нам от "изначальных индусов", а частично мы сами наплодили, пытаясь вписаться в то, что уже было к тому времени сделано.

В общем, в итоге, мы уговорили заказчика выделить нам три недели между итерациями проекта (они там были, как и положено в хенд-мейд-аджайлфолл, полугодовыми). Удалось убедить достаточно просто - путём сравнения двух оценок новой фазы проекта - без рефакторинга и с рефакторингом, которые отличались сильно в пользу второй. Ну и пообещали, что простыня багов пофиксится сама собой (кстати, так и случилось, как не странно).

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

Ну и третий проект - тоже в Яндексе - по переписыванию огромного куска инфраструктуры. Там его стартовали под общие аплодисменты, но был момент, в котором стало понятно, насколько проект большой и долгий, и его решили было прикрыть. Собственно, роль продажи заключалась в том, что мы собрались и рассказали заинтересованным лицам о том, что мы делаем и почему делаем именно так. Оказалось, что всё делаем круто и надо продолжать. В общем, рерайтинг продал сам себя :).

Есть и грустные истории про то, как не полетела "вторая версия" движка для системы потому, что программисты закопались в мелочах и попытках создать идеальную архитектуру. Но это уже другая история. И Спольски хорошо про неё пишет.

четверг, 5 февраля 2015 г.

Про русский язык и профессиональный сленг

Недавно читал большую дискуссию по поводу того, насколько глубоко в нас засел профессиональный сленг. Попробовал шутки ради написать пару строчек, которые на 100% понятны разработчикам и совершенно непонятны людям, далёким от производства ПО.

Однако, получилось:

- Вася, ты когда багу пофиксишь? Она регрессионку для релиза стопит
- Так я же её ещё в прошлом спринте пофиксил и закоммитил
- А в бранч смерджил?
- Нет пока в транке только.
- Мерджи быстрее, а то QA уже таску реопнул
- А ту минорную фичу про шаринг контента поэстимейтил?
- Это которую кастомер вчера зарепортил? Нет, нужно подольше поресёрчить
- Сделай asap, плиз
- ок

Ну и, ради соблюдения приличия - перевод (похожий на диалог двух деревянных киборгов).

Кстати, в последний раз с необходимостью такого перевода сталкивался 10 лет назад, когда писал диплом. Хотя нет... после этого я писал ТЗ для одной крупной русской компании. Тоже пришлось изголяться.

- Вася, когда ты исправишь ошибку в программе? Она не даёт нам провести регрессионное* тестирование перед вводом в эксплуатацию новой версии программы
- Я исправил ошибку в прошлом цикле разработки и внёс соответствующие изменения в систему контроля версий
- А изменения в ветку внёс?
- Нет. Пока все изменения находятся в главной линии разработки**
- Переноси их в ветку быстрее, а то инженер по контролю качества вернул задачу в состояние "открыто"
- А ты произвёл оценку трудозатрат, необходимых на реализацию новой низкоприоритетной функциональности, связанной с возможностью поделиться содержимым?
- Той, которую вчера довёл до нашего сведения заказчик? Нет.  Дополнительные исследования потребуют некоторого времени
- Пожалуйста, сделай это как можно скорее
- Хорошо

* Термин профессиональный, но устоявшийся и официальный
** Да, именно так официально называется trunk

воскресенье, 12 января 2014 г.

Конкуренция внутри команды убивает командный дух

Давно не писал сюда. Впрочем, это понятно - новая интересная работа отнимает время чуть более, чем полностью. Чего и вам желаю :)

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


В современной экономике принято считать, что конкуренция оказывает исключительно благотворное влияние на рынок. Она не даёт создаться монополии, не даёт ценам на товар или услугу превысить некие разумные пределы, заставляет производителя постоянно совершенствовать продукт, не останавливаться на достигнутом, чтобы не отстать от конкурентов.

Но всегда и везде ли хороша конкуренция? Что будет, если на модели конкуренции построить управление не только продуктами, но и людьми? К сожалению, очень многие «эффективные менеджеры» не осознают, что рыночные практики не всегда применимы, когда речь идёт о взаимодействии членов одной команды или команд внутри одной компании.

Читать статью на Хабре полностью

пятница, 28 июня 2013 г.

Увидеть продукт глазами пользователя

Встречайте, очередная статья по управлению продуктами на Хабре.


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

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

Суть проблемы


Примеры того, как замечательно программисты могут проектировать UX, попадаются сплошь и рядом.
Например, это замечательная форма заполнения истории из трудовой книжки на портале гос. услуг (про неё я ужеписал), которая убивает сессию через 15 минут после открытия и заставляет пользователя перегружать страницу с потерей всех данных.

Это чудесные формы по заполнению совершенно непонятной информации, как на рисунке слева.

Это закрывающиеся окошки текстового редактора, которые даже не пытаются предложить сохранить текст, на который несчастный пользователь потратил два часа своей жизни.

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

вторник, 18 июня 2013 г.

Видео с ISDEF 2012

Всё не доходили руки выложить видео моего доклада на ISDEF про то, почему программистам не стоит доверять проектирование UI.

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

Спасибо Роману Руднику за предоставленные материалы. Кстати, видео других на ISDEF можно посмотреть здесь.