paint-brush
Почему предсказуемость превосходит скорость в разработке программного обеспеченияк@davydov
33,866 чтения
33,866 чтения

Почему предсказуемость превосходит скорость в разработке программного обеспечения

к Denis Davydov4m2023/10/30
Read on Terminal Reader

Слишком долго; Читать

Хотя скорость часто является основным показателем измерения производительности при гибкой разработке программного обеспечения, она может привести к проблемам и техническому долгу, если скорость будет отдаваться приоритету над предсказуемостью. В этой статье подчеркивается важность предсказуемости как показателя успеха команды разработчиков и предлагается найти баланс между скоростью и предсказуемостью для достижения оптимальных результатов.
featured image - Почему предсказуемость превосходит скорость в разработке программного обеспечения
Denis Davydov HackerNoon profile picture



В мире технологий скорость часто является критерием измерения продуктивности команды разработчиков. Скорость — это оценка, используемая при гибкой разработке программного обеспечения для оценки объема работы, которую команда может выполнить за определенный период времени, обычно представленная точками историй или пользовательскими историями, выполненными на каждой итерации. Другими словами, все зависит от того, насколько быстро команда создает код и внедряет новые функции. Но, хотя скорость — это круто и все такое, она может привести к плохим результатам и куче закулисных неразберих, если ее не сбалансировать правильно.


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


Очарование скорости… и ее опасности

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


Давайте разберемся сейчас. Работа на полной скорости иногда может означать упущение чего-то гораздо более важного — способности работать с меньшим количеством выгораний или вообще без них, а значит, с постоянством . Представьте себе, что вы строите сверхвысокое здание очень быстро, но с нестабильным основанием. Со временем это может привести к накоплению тонны технического беспорядка — это скрытая стоимость тех быстрых решений, которые окупятся позже. Конечно, молниеносная доставка имеет свою привлекательность, но стоит подумать о головной боли, которую она может принести впоследствии.



Предсказуемость: мощный инструмент

Предсказуемость как мера означает последовательность и надежность, с которыми команда или система обеспечивает результаты в течение определенного периода времени. Вместо того чтобы зацикливаться на скорости, командам следует сосредоточить внимание на повышении предсказуемости.


На это есть несколько причин:


  • Установление четких ожиданий перед заинтересованными сторонами.

    Команда, которая показывает разные результаты — 100 баллов в месяц, затем всего 10 баллов в следующие два — может стать американскими горками для заинтересованных сторон. Неопределенные результаты ставят заинтересованные стороны перед дилеммой, не зная, чего ожидать дальше. Вместо этого команда, которая стабильно набирает, скажем, 40 очков месяц за месяцем, становится MVP — она становится надежным игроком в игре. И это то, чего действительно жаждет сфера бизнеса — предсказуемости .


  • Чем меньше ошибок, тем дольше игра.

    Хотя непредсказуемость может время от времени приносить блестящие результаты, именно стабильность предсказуемости действительно выигрывает в долгосрочной перспективе. Вот в чем дело: путь к предсказуемости не является универсальным. Конечно, у каждой команды свой путь. Тем не менее, у лучших исполнителей есть закономерность.


    Зрелые agile-практики являются общей чертой высокопроизводительных и предсказуемых команд. Независимо от того, погружены ли они в Scrum, Kanban или смесь методологий, эти команды закрепили ритм, соответствующий их сути, оставляя место как для структурированной работы, так и для творческой свободы. С другой стороны, существует постоянное стремление к совершенствованию, к тому, чтобы каждый спринт или итерация затмевал предыдущий.


    Давайте рассмотрим конкретный пример. Jira от Atlassian начиналась как простое средство отслеживания ошибок и проблем, но со временем превратилась в один из самых популярных в мире инструментов управления проектами, предоставляющий свои услуги широкому кругу отраслей. Есть, конечно, огромное количество различных факторов, сыгравших роль в восхождении компании, но предсказуемость, несомненно, является одним из важнейших. Благодаря истории последовательных итераций (выпуск последовательных и регулярных обновлений), циклу обратной связи, расширяемой экосистеме и прозрачному плану действий Jira завоевала свои позиции во многих организациях по всему миру.


Баланс: скорость против предсказуемости

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


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


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