На прошедшей неделе компания Rollbar (поставщик платформы постоянного совершенствования кода) опубликовала результаты исследования, которое провела независимая исследовательская компания Propeller Insight в конце декабря 2020.
Исследование проводилось методом опроса репрезентативной (для США) выборки 950 разработчиков.
Поскольку инициатива проведения исследования исходит от компании, бизнес которой – автоматизация работ по повышению качества кода, предсказуемым лейтмотивом отчёта видится значимость проблемы – борьба с дефектами ведёт к существенным потерям бизнеса, а ручной формат этой борьбы крайне неэффективен. Однако, если отбросить классическое «Я не верю в микробов. Их придумали продавцы мыла», любопытными кажутся цифры, полученные в результате опроса.
- 38% респондентов сказали, что тратят до 25% своего времени на устранение багов
- 26% респондентов – до 50% времени
- 8% респондентов – до 75%
Кроме огромных прямых потерь, возникающих из ошибок кода, исследователи обращают внимание на сильное негативное влияние на моральный дух разработчиков.
Помимо статистики об увольнениях приводится любопытная «шкала боли». Работа по устранению дефектов не только отнимает заметную долю времени, но и создаёт такой дискомфорт, что люди готовы заниматься вместо неё чем угодно. Что же это за страшное наказание, которое готовы терпеть разработчики, лишь бы только не заниматься исправлением дефектов? Как видно на выдержке из отчёта, пятая часть в качестве такового рассматривает то, что у нас называется «поехать к родителям [тёще/свекрови]» 🙂 Посещение дантиста, разумеется, в списке тоже присутствует.
Возможно, читателю будут небезынтересны дополнительные детали отчёта. В том числе, чтобы сравнить состояние дел в своей организации с описываемой усреднённой картиной. И в части вышеописанных цифр, и в части подходов к организации работы по устранению ошибок.
“38% респондентов сказали, что тратят до 25% своего времени на устранение багов”,
и до 75% на их написание ))))
На мой взгляд, сами по себе процессы создания кода и исправления кода могут выполняться одним человеком эффективно только если речь об одном и том же коде.
Для мотивированного поиска и исправления “чужых” ошибок разработчику необходимо обладать альтернативной картой референций/системой ценностей. И худший вариант – это возлагать на сотрудника “развития” обязанность по “багоправству” в виде наказания, дежурства или стажировки. Нужно иметь отдельных сотрудников.
Ухудшится ли качество кода одного, если ошибки заведомо будет исправлять другой – ухудшится, если не завязать эффективность первого на объемы второго. Вырастет ли общая производительность при специализации – несомненно.