Сообщение администратору
Имя:
Почта:
Сообщение:
Вход на сайт
Логин:
Пароль:

Статистика
Поделиться
Поддержка  •  Дневник  •  О сайте  •  Реклама  •  Поставить баннер  •  Прислать  •  Хроника  •  Translate  •  Рекомендованное  •  Написать администратору OpenToWork Гости: 10    Участники: 0 Авторизация Авторизация   Регистрация 
Метод Научного Тыка
RULVEN
Поиск  
RSS-лента
Поделиться ссылкой:

Начало » Разработка ПО » Технический долг. Как не обанкротиться

Технический долг. Как не обанкротиться


Опубликовано: март 2023 г.
Добавлено: Пн 27.05.2024 • Sergeant
Автор: Vlad Deriglazov
Источник: источник
Просмотров: 97
Комментарии: 0


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

Как появился этот долг? Мы его взяли что бы поставить заказчику функционал раньше, чем мы бы смогли, если бы не "заняли". Так же как бизнесмен берет кредит для своей бизнес идеи.

Проценты выплачиваются при выполнении задач. Многие встречали ситуацию когда продукт‑менеджер говорит: «Да тут небольшое изменение внести”, а разработчик пытается объяснить что там кривая архитектура и вообще все на костылях держится и нужен месяц на такую фичу. Разница между работой над конкретной фичей и реальными затратами с учетом костылей, является наш процент. И он постоянно растет, если не оплачивать основной долг.

Технический долг (ТД) как глыба льда под водой, невидимая для бизнеса. И цель разработчиков эту глыбу показать и устранить.

Технический долг

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

Варианты технического долга

  • 😎 Осознанный: осознанные компромиссные решения и костыли.
  • 🐞 Неосознанный: отсутствие стандартов, отсутствие контроля чистоты кодовой базы, неосознанные костыли.

🧐 Как уменьшить основной долг

  • Для начала нужно избавиться от неосознанных кредитов:
    • Развиваем команду
    • Внедряем стандарты написания кода
    • Проводим Code Review
  • Ставим задачи на приоритеты
    Необходимо сформировать бэклог задач и выдвигать на приоритеты их выполнение. Важно аргументировать, лучшим аргументом был постоянно увеличивающийся срок реализации простых с виду задач — разработчики знали, сколько сложных мест в коде им придётся обойти, сколько новых костылей расставить, и закладывали эти параметры в общую оценку задачи. После нескольких таких планирований продукт-менеджеры сами предлагали команде взять задачи на рефакторинг.
  • Встречаем сопротивление
    Одна из сложностей в отношении технического долга заключается в вовлечении бизнеса в принятие решений. Бизнесу сложно аргументировать. Задачи копятся но не выполняются.

    Предусматривайте ресурсы для работы с ТД. Самая распространённая модель — это 70% для обычной работы, 20% для технического долга и 10% для обучения/экспериментов.

    Проблема здесь кроется в том, что крупные проблемы с техническим долгом никогда не решаются всего за 20% времени. Их переносят от спринта к спринту, в ходе переноса теряется контекст, и добиться нужного результата становится труднее. Ещё одна сложность заключается в невозможности соблюдения точных временных рамок при решении разных задач.
  • Проводим “Реструктуризацию” технического долга
    Необходимо разбить работы по общим контекстам. Можно вести бэклог с мелкими задачами, можно завести один общий чек-лист или использовать блоки TODO для фиксации мелких долгов. Важно, что бы при планировании бизнес задач мы легко могли увидеть все пересечения с тех долгом.

⚖️ Инкрементный рефакторинг

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

Контролируемый — подразумевает итерационный процесс улучшения.

💡 «Всегда оставляйте лагерь чище, чем он был до вас»

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

70/20 - из описания выше мы знаем 70% для обычной работы, 20% для технического долга и 10% для обучения/экспериментов. В случаи постепенного рефакторинга, 20% это будет буфер отклонения от бизнес задачи. Т.е. это то время на которое мы можем отклониться от сроков задачи в пользу устранения ТД. Эта модель может быть дикая по отношению к бизнесу, поэтому используйте ее с опаской.

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

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

Закон убывающей предельной полезности

Т. е. не следует тратить на рефакторинг много времени. Необходимо получить максимальную выгоду и вовремя остановиться.

🏅 Подведем итоги

  • Технический долг - это не плохо, но если он осознанный.
  • Долг необходимо держать в умеренном количестве.
  • Технический долг тоже требует приоритеты как и бизнес задачи.
  • Постепенный рефакторинг - это лучший способ работать с мелким технический долгом.


Мне нравится 0   Мне не нравится 0



Сейчас читают:
Участников (0) и гостей (0)




Комментарии: 0
Нет ни одного комментария.
Новое
Нашли, кого уволить. Microsoft массово избавляется от программистов – разработку Windows доверили искусственному интеллекту 3 дня назад, 12:16
Нашли, кого уволить. Microsoft массово избавляется от программистов – разработку Windows доверили искусственному интеллекту
ИИ прошёл Тьюринга, а ты — нет. Добро пожаловать в XXI век Вс 11.05.2025
ИИ прошёл Тьюринга, а ты — нет. Добро пожаловать в XXI век
Продуктивность растёт, а уважение падает — новая ловушка для фанатов ИИ Сб 10.05.2025
Продуктивность растёт, а уважение падает — новая ловушка для фанатов ИИ
Пт 09.05.2025
EA увольняет сотни сотрудников и отменяет игру Titanfall
Ваша современная Windows 11 по-прежнему содержит файл, созданный для запуска MS-DOS программ в 1993 году — и никто не знает, зачем Пт 09.05.2025
Ваша современная Windows 11 по-прежнему содержит файл, созданный для запуска MS-DOS программ в 1993 году — и никто не знает, зачем
Обзор внешней звуковой карты Creative Sound Blaster G8 Ср 07.05.2025
Обзор внешней звуковой карты Creative Sound Blaster G8
«Алло, это ИТ-отдел. Поставьте AnyDesk, сейчас быстренько вам кое-что поправим» Вт 06.05.2025
«Алло, это ИТ-отдел. Поставьте AnyDesk, сейчас быстренько вам кое-что поправим»
Бабл-ти: 16 простых и вкусных рецептов в домашних условиях Сб 03.05.2025
Бабл-ти: 16 простых и вкусных рецептов в домашних условиях
Как свойства древесины влияют на качество виски? Сб 03.05.2025
Как свойства древесины влияют на качество виски?
Сб 03.05.2025
Калорийность водки: что нужно знать
Книги
Web API Development with ASP.NET Core 8 Вт 25.03.2025
Web API Development with ASP.NET Core 8
Год: 2024
Azure Adventures with C# Вт 18.03.2025
Azure Adventures with C#
Год: 2024
Fundamentals of Enterprise Architecture Вт 11.03.2025
Fundamentals of Enterprise Architecture
Год: 2024
Pro .NET Memory Management, Second Edition Вт 04.03.2025
Pro .NET Memory Management, Second Edition
Год: 2024
Разработано на основе BlackNight CMS
Release v.2025-05-17
© 2000–2025 Blackball
Дизайн & программирование:
О сайтеРеклама
PULS.LV Professional rating system
Visitors
Web-site performed by Sergey Drozdov
BlackballРекламаСтатистикаПоддержка
МузыкаПлейлистыКиноВидеоИгрыАудиоПрограммыСтатьиКартинкиЮморФорумДневник сайтаПрислать контентРекомендованное
ЧасыLava LampWazeНастройка WindowsFleshlight
Complete your gift to make an impact
Buy Me A Coffee
Если вам понравился этот сайт и вы хотите меня поддержать, вы можете купить мне кофе. Спасибо!