Как улучшить программу не переписывая с нуля?

insert_comment 0
visibility 606
|
28.05.2020

Техническим долгом называют накопленные в программном коде проблемы, связанные с пренебрежением качеством кода при разработке программного обеспечения.

Как накапливается технический долг?

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

 

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

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

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

По этой причине проблема не в самом техническом долге, а в том, что он может стать неуправляемым. Управляющий любой компании всегда знает, сколько денег должна его компания. Также у компании всегда есть план, что делать если всё пойдет не так, как запланировано. Рефинансировать кредит к примеру или провести процедуру банкротства. Но если спросить ответственного о техническом долге и его размерах, то скорее всего получим ответ «не знаю, но точно немало»

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

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

Стена должна привлекать к себе внимание

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

Сформируйте привычку

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

Каждый раз, когда вы программируете отмечайте следующие вещи и заносите их на карточку или стикер:

  • Что является техническим долгом?
  • Сколько времени уже было потрачено на эту проблему? Введите обозначения потраченного времени(метки маркером определенного цвета, или маркировка задач если вы в trello). Интуитивное понимение в этом деле важнее точности.
  • Возможное решение, если оно есть.
  • Сколько времени потребуется, чтобы это пофиксить?

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

Работайте в команде

С увеличением количества стикеров люди начнут нервничать и это нормально. Долг существовал и до отслеживания, просто теперь он стал заметен нам.

При добавлении каждого нового долга в команде появляется нужда в обсуждении проблемы. Нужно будет сравнить время которое будет затрачено на исправления этого долга и сколько это исправление времени нам сохранит в будущем.

Как решить, когда технический долг оправдан? Ведь иногда у нас встает такой выбор: делать на костылях и быстро или качественно, но долго? Правильный ответ будет зависеть от решения команды. Итоговая цель доски не в том, чтобы исправить все проблемы, а чтобы видеть эти проблемы, знать сколько их у нас и во что они могут вылиться.

Советы

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

7 курсов бесплатно

Начните карьеру разработчика игр бесплатно!


    Комментарии


    Отзывы