Технический долг — как кредит, ч.2
Этот пост - продолжение предыдущего. По мотивам статьи Мартина Фаулера
С ростом финансовой грамотности человек начинает осознавать разницу между микрозаймом, потребительским кредитом и ипотекой. Чуть позже он начинает разбираться в инвестировании и может принимать взвешенное решение: купить в ипотеку или арендовать и копить.
Можно провести аналогию опыта и ответственности с разработкой и техдолгом:
1️⃣ «Какие такие слои архитектуры?» — Первый микрозайм;
2️⃣ «У нас нет времени на проработку архитектуры» — Когда нет денег на очередной платёж по микрозайму и человек берет для этого еще один микрозайм;
3️⃣ «Мы должны релизить сейчас и отвечать за последствия» — Кредит с адекватным процентом и понятным графиком платежей. Осознанный ответственный долг;
4️⃣ «Теперь мы знаем, как это следовало бы реализовать» — Если бы я знал о грядущих локдауне и удалёнке, то купил бы дом, а не студию в центре. В частном доме больше места, удобнее организовать рабочее пространство и есть свой двор. Спрос на частные дома сильно вырос, а с ним и цены.
Если разработчик находится в среде, где от него требуют наиболее быстрой и дешевой поставки ценности пользователю, то он с большой вероятностью будет порождать техдолг. В этом нет вины разработчика, это системная проблема рабочей среды.
Среду формируют отношение руководства и инструменты. Среди этих инструментов — Definition of Done. С помощью DoD мы избавляемся от первых двух вариантов безответственного техдолга.
Третий вариант возможен только по просьбе владельца продукта, для быстрой проверки сырой гипотезы, или срочного удовлетворения текущей потребности рынка.
От четвертого варианта техдолга не защищены лучшие команды. © M. Fowler
Я призываю создавать такую среду и инструменты, чтобы системно не допускать первых трёх вариантов техдолга.
У нас и так есть риск породить техдолг, даже если будем ответственно и осознаннно подходить к проработке архитектуры.
Post #32
1.37K