Расплатитесь по техническим кредитам Беркхардт Хафнагель

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

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

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

Тогда почему мы беспокоимся о том, когда следует внести добросовестные изменения — сейчас или потом? Потому что изменения «на скорую руку» сопряжены со скрытыми расходами. В финансовой сфере такие скрытые расходы на кредит называются процентами; любой владелец кредитной карты знает, как дорого может обходиться простая выплата процентов по кредиту.

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

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

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


Берк Хафнагель (Burk Hufnagel) создает пользовательские приложения с 1978 года. В настоящее время работает ведущим архитектором ПО в LexisNexis.

Загрузка...