Коллеги из эргономичного кода провели первую итерацию своего исследования и опубликовали результаты. Фантастически полезный и важный труд.
По итогам исследования удалось установить статистически значимую корреляцию между субъективной поддерживаемостью кодовой базы и определённым набором архитектурных практик и подходов.
Если точнее:
- отсутствие циклов в зависимостях;
- частое использование шаблонов проектирования;
- Liskov Substitution, Open-Closed, Interface Segregation Principle;
Покрытие тестами, CQS, ER-диаграммы и некоторые другие практики дали сильную, но погранично-значимую связь (p более 0,05, но не намного).
Про часть практик мы ничего особо сказать не можем, потому что ответов недостаточно.
Из интересного: не подтвердилась зависимость поддерживаемости кода от фп/ооп и от лондонской/детроитской школы тестирования.
Итак первый шаг в становлении этого исследования был сделан и, на мой взгляд, это большое достижение. Буду с нетерпением ждать следующих отчётов. Спасибо большое команде за их большой и важный труд.
На мой взгляд, этот отчёт поднимает следующие вопросы:
1. На что влияет субъективная поддерживаемость систем? Есть ли корреляция с DORA? Есть ли корреляция с иными важными характеристиками: например, organisational performance, non-commercial performance, employee burnout из DORA?
2. Насколько сам формат исследования действительно влияет на результат? Например, мы видим сильную и статистически значимую зависимость между LSP и OCP и поддерживаемостью кода, что, мягко говоря, вызывает некоторое недоумение. И я бы первым делом начал искать, нет ли тут ложной корреляции.
3. Какие у указанных зависимостей направления? Вроде бы логично предположить, что поддерживаемость следует из практик, но вопрос все ещё открытый.
4. Подтвердятся ли эти выводы на больших выборках? Какие практики станут действительно статистически достоверными?
Полный отчёт с сырыми данными тут.
Post #37
861