How to Reverse Software Entropy • Saleem Siddiqui • GOTO 2023
Интересное выступление на тему разработки софта и как это связано с физикой, точнее с концепцией энтропии и ее возростания. Собственно для энтропии автор использует определение от Saleem Siddiqui: A composite mesure of disorder that subsumes qualitative and quantitative measures Автор достаточно много говорит про то, как понять энтропию качественно, а потом переходит на количественные метрики и отмечает следующее
- Size (LoC, Number of files, Number of dependencies)
- Volatility
- Cyclomatic complexity
- Coupling and instability
- Cohesion: LCOM, TCC, LCC
Дальше он говорит про пять факторов, которые повышают энтропию
- Dependecy forest - здесь автор показывает как создание простого react app тянет больше трех тысяч модулей из npm и вспоминает знаменитую историю про left pad библиотеку, удаление которой сломало кучу сайтов
- Lopsided test strategy - здесь автор пинает cucumber и bdd в общем и говорит про пирамиду тестированияя (пирамидальной формы).
- Progressive test anemia - здесь он упоминает про test coverage, который можно искусственно завышать, но смысла в этом не много
- Over-engineering - здесь идет рассказ про усложненные решения навроде инновационных дворников для машин, про которые рассказывает автор. А потом автор пинает Kubernetes или скорее тех, кто его использует просто в силу моды
- Staff we refuse to foresee - пример с отключением государственных сайтов США, что привело к отключению сайта NIST, на котором представлены CVE базы, которые стали недоступны. В итоге, CI/CD пайпланы с проверкой уязвимостей в тот день не работали. Автор показывает это в качестве примера для более глубокой работы с рисками:)
#SoftwareArchitecture #Software #Processes #Management #ContinuousDelivery #Engineering #SoftwareDevelopment