Скажем, вы механик, который специализируется на настройке автомобилей, даже если их строит с нуля, если этого требует клиент. Этот покупатель часто возвращается в ваш магазин, чтобы всегда положить новую блестящую вещь в свой лимузин большого размера.
Как только он входит, чтобы установить хорошую звуковую систему. Вы старательно выполняете задачу, пропуская провода и правильно подключая их. Он выходит на следующий день позже, он счастлив и, как обычно, щедро платит.
В следующем месяце он возвращается, но на этот раз он хочет установить полноценный домашний кинотеатр. Вы снова берете лимузин. Будучи профессионалом, вы снова посещаете звуковую систему и облегчаете ее обслуживание, устанавливая систему трубок для прокладки проводов вокруг автомобиля. Таким образом, провода будут защищены и их легче вытащить, а если вам понадобится добавить больше, это также будет легко сделать. Итак, вы вырываете старые провода, устанавливаете трубки и пропускаете звуковую систему и дополнительные провода для кинотеатра, закрываете все, и все готово.
Понимая, что заказчик не просил вас заменить старую звуковую систему, вы берете на себя часть стоимости замен и ламп. Тем не менее, вы все равно зарабатываете на сделке. Просто не так много, как если бы вы просто собрали систему, как в первый раз.
Через месяц он возвращается, на этот раз ему нужна система освещения, и он хочет, чтобы новые динамики повредили старые в начале недели.
Поскольку вы сохранили все в порядке и чистоте, вы можете быстро провести новые провода освещения через трубку, установить систему и заменить динамик. На этот раз, однако, вы сделали намного быстрее, рефакторинг окупился, удерживая вас на вершине своей игры.
Ваш конкурент, который смеялся над вами за то, что вы разрывали совершенно хорошие провода и устанавливали все эти дополнительные трубки, все еще пытается удовлетворить своего клиента. Конечно, большую часть времени он выполнялся быстрее, чем вы, но со временем его клиенты жалуются на то, что задержек становится все больше и больше, а общее качество работы ухудшается.
Глядя на это, вы понимаете, что ваша цель не только оставаться в бизнесе, но и быть главным оружием - сбалансировать то, что вы делаете для удовлетворения требований клиента и что вы делаете, чтобы облегчить свою жизнь в будущем. Очень редко покупатель заплатит за оба, поэтому вам придется тщательно управлять. Вы рискуете тем, что, если вы будете активно и правильно делать что-то, даже если вы платите дважды, вы будете поддерживать расходы на техническое обслуживание на контролируемом стабильном проценте своей производительности.
Программное обеспечение то же самое, за исключением того, что программисты могут играть с цифровой клейкой лентой ОЧЕНЬ долгое время, прежде чем клиенты и менеджеры почувствуют эффект. К сожалению, к тому времени стоимость повторного выполнения правильных действий возрастает в геометрической прогрессии в зависимости от количества клейкой ленты и ее среднего возраста.
Вот почему важно, чтобы мы продолжали перефакторинг системы. Очень часто опыт покажет нам новый, более эффективный способ сделать то же самое, или мы сможем объединить аналогичные функции и использовать избыточности вместо того, чтобы просто копировать их. Это то, как мы поддерживаем систему скудной и подлой. Время покажет, что постоянное переосмысление системы для удовлетворения потребностей будет поддерживать постоянную производительность, контролируя объем, выделяемый на обслуживание.
Размещение клейкой ленты на мгновение увеличит производительность за счет неоптимальной системы. Техническая задолженность возникает всякий раз, когда непосредственная производительность благоприятствует в ущерб другим аспектам системы. Аналогия с долгами хороша тем, что так же, как интересы заемного капитала поглощают прибыль, занятое время, затрачиваемое на создание вещей, быстро влечет за собой повышенное обслуживание и увеличивает хрупкость системы, заставляя команду тратить дополнительные ресурсы на поддержание, а не на создание. Так же, как и его финансовый родственник, если заимствование продолжается неослабно, большая часть ресурсов расходуется на выплату процентов, оставляя очень мало для улучшений. Технический долг истощает технические ресурсы до такой степени, что большинство ресурсов расходуется только на поддержание работоспособности системы, чтобы остановить все другие возможные улучшения.
Таким образом, в конечном итоге вопрос заключается не в том, должны ли мы или не должны делать это, но является ли этическим, чтобы менеджеры и клиенты полагали, что они могут полагаться на цифры производительности, искусственно раздутые с использованием цифровой клейкой ленты. Кто-то может подумать, что это бизнес-решение, но, откровенно говоря, это так просто потому, что менеджеры этого не понимают. В конце концов, кто-то должен будет выплатить долг либо путем серьезного ре-факторинга, либо путем перехода на новую систему. В конечном счете, нам, программистам, нужно поддерживать системы в обслуживании, вам не нужно просить пересматривать их, поскольку это неотъемлемая часть работы, неспособность понять это, не понять, что такое разработка программного обеспечения. Тем не менее, я понимаю, что существуют системы, которые уже понесли важный долг, и для погашения этого долга потребуются решения от плательщиков. Ваша работа в такой ситуации состоит в том, чтобы хотя бы внести свой вклад в прекращение заимствования. Этот долг был понесенСША, может быть, потому что мы не знали лучше, потому что на нас оказывали давление, но мы взяли на себя этот долг, и очень часто люди, которым мы передали долг, не понимают его, поэтому не могут должным образом управлять им.
Вот ваше программное обеспечение, все готово, надеюсь, вам понравится .... Хо, кстати, я исчерпал вашу кредитную карту, надеюсь, вы не против ... cya