Термин «технический долг» был впервые введен Уордом Каннингемом в 1992 году и описывает последствия поддержания плохого или поспешного кода. Он рассматривает проекты с финансовым складом ума и сравнивает технические вещи, которые мы делаем, а не с финансовой концепцией долга.
С одной стороны, технический долг означает быстрые и грязные сокращения, которые мы используем, и влияние, которое они оказывают на будущее развитие. С другой стороны, технический долг также связан с тем, чего мы не делаем, например, не комментируем наш код, не разрабатываем документацию, не проводим надлежащее тестирование и т. Д.
Откуда возникает технический долг (что его вызывает)? Википедия дает хороший список причин и условий, которые могут вызвать технический долг. Но за мои деньги главная причина — давление со стороны кого-то в бизнесе, чтобы он что-то сделал и сделал это быстро. Это может быть ваш босс, это может быть кто-то еще, это действительно не имеет значения. Причина номер один — это та же самая причина, по которой мы занимались в старших классах — кто-то еще подумал, что это будет хорошая идея, и заставил нас к этому.
В конце концов, именно быстрые и грязные вещи, которые мы делаем, и вещи, которыми мы пренебрегаем, ставят нас в долг в отношении будущей работы. Кратковременное исправление может затруднить дальнейшие действия в будущем или привести к дополнительным ошибкам и исправлению. Отсутствие документации затрудняет ознакомление нового разработчика с системой и приводит к снижению производительности.
Технический долг плох?
Технический долг — это плохо, плохо … или это? Поскольку мы смотрим на это с финансовой точки зрения (по крайней мере, в нашей терминологии), то давайте сделаем еще один шаг вперед. Если вы поговорите с любым финансовым аналитиком, он скажет вам, что сокращение вашей личной задолженности, вероятно, лучшее, что вы можете сделать для себя. Трудно поспорить с этим советом. В то же время, однако, можете ли вы представить себе современное общество без долга?
Сколько компаний имеют нулевой долг? Наверное, нет. Правда в том, что современные компании воспринимают долг как факт жизни, и большинство компаний не может существовать без способности нести определенный уровень долга. Очевидно, что существует некоторая неопределенность в отношении долга, когда речь идет о финансовых системах.
Неустановленное предположение здесь состоит в том, что, хотя люди могут не быть умными в отношении своего долга (поэтому практическое правило гласит, что лучше не иметь его), компании знают, как разумно управлять ограниченным количеством долга. Конечно, компании — это просто группы людей, поэтому, вероятно, это не очень хорошо.
Но если предположить, что с финансовым долгом все в порядке, может быть, даже необходимо вести бизнес сегодня (у большинства компаний, как и у большинства людей, нет наличных денег для покупки нового здания или нового оборудования), верно ли и то, что некоторое количество технических долг приемлем, может быть, даже, смеем сказать, желательно?
Другой взгляд на технический долг
Это очень спорный момент. Если мы исправим проблему с точки зрения контроля качества, то мы задаемся вопросом, желательно ли когда-либо снижать уровень качества и вводить некоторую степень брака в наш процесс. Если так, то ответ кажется очевидным. Независимо от того, проводит ли ваша компания (и вы) политику контроля качества с нулевым уровнем дефектов, идея качества в первую очередь настолько укоренилась в нашей корпоративной психике, что мы не могли навязать процесс, который этого не придерживался. То есть, хотя мы можем не практиковать это, мы все за это.
Независимо от того, что мы говорим о качестве, когда сидим на задних сиденьях в клубе, мы все практикуем гибкое отношение к качеству, так же, как мы придерживаемся гибкого отношения к долгу. Когда нам нужно купить что-то, что, по нашему мнению, сделает бизнес более успешным, но у нас недостаточно денег в наших кошельках, мы влезаем в долги. Когда давление продолжается, и нам нужно что-то сделать быстро, чтобы кто-то был счастлив или чтобы сохранить свою работу, мы пересекаем уголки и скрещиваем пальцы.
Правда в том, что независимо от того, какова ваша приверженность качеству как отдельного лица или организации, вы будете иметь технический долг так же точно, как и финансовый долг. Вопрос в том, как вы собираетесь справиться с этим долгом?
Работа с вашим техническим долгом
Во-первых, не игнорируйте это. Худшее, что вы можете сделать с финансовым долгом, — это игнорировать его, просто продолжайте вносить минимальные платежи месяц за месяцем и притворяться, что проблем нет. Точно так же, как вы в конечном итоге будете платить больше (возможно, намного больше) в финансовом отношении, игнорируемый технический долг — это дар, который продолжает давать. Проблемы, которые это вызывает, обходные пути, которые вы должны сделать, и т. Д., Все продолжают возвращаться. Вы должны признать, что у вас есть долг, признать, что, хотя вы, возможно, сделали это по позитивной причине, держать его в руках, как Скабберс, крыса не очень хорошая идея. Одной из ваших целей является (а не «должно быть») ее устранение, надеюсь, скорее, не позже.
Во-вторых, сортируйте свой долг. Если у вас есть пять кредитных карт, вы захотите погасить те, которые дадут вам максимальную отдачу за ваш доллар. Иногда это может быть основано на процентной ставке. Иногда это может быть основано на балансе на карте. То, что вам нужно, это способ количественной оценки стоимости этого долга на ежемесячной основе, а затем сначала ударить больших мальчиков. То же самое верно для технического долга; Вы должны найти способ оценить это. Может быть, вы можете превратить его в деньги или просто присвоить ему значение неудобства от 1 до 10. Затем вы можете свести на нет долги, либо сначала взять на себя большие неприятности, либо, может быть, сначала отбросить маленьких ребят, чтобы вы могли сосредоточиться.
В-третьих, и это самое главное, на мой взгляд, установить потолок долга и назначить регулярное время для его отработки. Как только вы начинаете брать на себя финансовый долг, очень легко продолжать накапливать дополнительный долг, и поэтому люди часто навязывают (или навязывают) максимальную сумму, которую они могут заимствовать. Точно так же, как только вы начнете создавать технические долги, вам нужно найти способ ограничить, сколько их у вас есть.
Ведение журнала того, сколько времени и усилий потребовалось бы, чтобы ликвидировать задолженность, которая у вас есть в настоящее время, может помочь вам в перспективе. В то же время, встроите время сокращения долга в свой график. Это делает две вещи: это помогает вам найти время, чтобы уменьшить ваш долг, и говорит компании, что устранение технического долга (большая часть которого была понесена, потому что кто-то хотел что-то быстрое) является очень реальной задачей, которая потребляет ресурсы, которые могут в противном случае будет потрачено на разработку новой функциональности. Когда другие это понимают, они могут быть менее склонны к тому, чтобы заставлять вас брать на себя долги в будущем.
И в заключении…
У всех нас есть некоторый уровень технического долга; ты не собираешься избегать этого. Но вы можете жить с этим и контролировать его, а не контролировать себя. Посмотрите, количественно оцените и регулярно работайте над этим. Да, это билет!
Не слышали достаточно о техническом долге? Вот еще несколько статей (их миллион), которые могут вас заинтересовать: