Пару месяцев назад меня спросили, доверяю ли я своим сотрудникам. Я ответила согласием, твёрдо и без малейшей паузы. С тех пор у меня было время подумать – и над вопросом, и над моей на него реакцией.
Подробнее
О доверии и контроле
О планировании, или парадокс лжеца
Проверьте перечисленные ниже утверждения на непротиворечивость:
- Control freak всегда лжёт.
- Control freak предупреждает, что следующее его высказывание – ложно.
- Control freak утверждает, что любит заниматься планированием.
Мне кажется, я могла бы больше ничего не писать, но всё-таки добавлю ещё несколько абзацев.
Подробнее
Пакеты задач в системе контроля версий
Использовать пакеты для объединения входящих задач в единую предназначенную для управления сущность – удобно. Но если бы вся выгода от внедрения пакетов заключалась только в их организационной составляющей, сомневаюсь, могла бы я с такой уверенностью советовать их кому бы то ни было.
Достоинство пакетов в том, что они легко и непринуждённо превращаются в знакомые всем ветви системы контроля версий.
Подробнее
Не релизом единым жив человек
В каком релизе и когда выйдет этот функционал? Сколько времени нужно на тестирование релиза и когда оно закончится? Сколько релизов выйдет за квартал? Такие привычные вопросы, такие естественные – и такие временами раздражающие.
Мне понадобилось несколько месяцев работы на конвейере, чтобы понять, что именно не устраивает в использовании релиза как консолидированной сущности для разработки, тестирования и выкладки функционала:
- Релиз появляется тогда, когда принято решение о необходимости выкладки того или иного набора задач на боевые сервера. Обновление боевой среды – процесс строго последовательный, и выложить седьмой релиз до пятого нельзя. Сохранение жёстко заданной последовательности не кажется проблемой при малом количестве релизов, медленной разработке и аккуратном планировании на несколько месяцев вперёд. Но как быть, если завтра к вам придут с задачей, которая должна появится на боевых уже послезавтра? Изменять заранее декларированную последовательность релизов? Нарушать нумерацию? Выпускать хотфиксы, являющиеся, по сути, мелкими релизами? Да, иногда можно и так – но нельзя ли лучше?
- Релиз многими воспринимается как нечто неделимое и неизменяемое. Не успели добавить заказ в девятый релиз? Увы, вам придётся подождать десятого. Нашли при тестировании баг? Выпускаем новый билд и тестируем его заново. О, как это негибко! И совершенно неприемлемо в условиях постоянной смены приоритетов и требований. Если я хочу уверенно жонглировать входящими задачами, выкидывая наверх то самую нужную сейчас, то наиболее готовую, то наименее опасную, я не могу позволить себе ни длительного планирования, ни отказов заказчику на том только основании, что текущий большой релиз уже давно в тестировании.
Решение нашлось простое: оставить за релизом только одну функцию – деплоймент, а разработку и тесно связанное с ней тестирование передать новой сущности – «пакету задач». При этом релизы остаются строго последовательными, а пакеты распараллеливаются на произвольное количество потоков.
Подробнее
Оценка входящих задач
Работа на конвейере или сны, которых не видел Форд
Метафору, имеющую несколько смыслов, использовать опасно – сложно предсказать, в каком контексте она будет воспринята собеседником. Но иногда удержать от соблазна очень сложно. Когда я думаю о своей работе, я вижу конвейер. Иногда это дребезжащая лента транспортёра, иногда – длинный стол с микросхемами, над которыми стоят инженеры в масках. Но всегда – бесконечная деятельность, то чуть замирающая, то набирающая скорость. Деятельность многих людей, синхронно и без перерывов, оглядываясь друг на друга, ведущих рабочий процесс.
Каждый этап работы на конвейере, от оценки задачи на входе до планирования выкладки результатов на боевые сервера, достоин отдельного описания. Сейчас мне хочется перечислить только некоторые базовые принципы успешной организации работы.
Подробнее