Что такое стоимость владения софтом и из чего она состоит?
#principles
На прошлых выходных у меня был запрос на консалтинг от CEO одной украинской продуктовой компании. Ключевой вопрос был: "На какой архитектуре нам стоит начинать новые проекты в компании – на микросервисах или монолите?" Боль как представителей украинского бизнеса, так и разработчиков не умение брать на себя ownership. Эта концепция хорошо расписана в Amazon Leadership Principles.
Для софта его стоимость владения (ownership cost) состоит из стоимости создания (development cost) и стоимости поддержки (maintenance costs). В outsource компаниях не принято следит за этими параметрами. Новый проект нужно запилить как можно быстрее, т.е. уменьшаем development cost за счет увеличения стоимости поддержки. А в легаси не дай бог тебе уменьшить maintenance cost – это будет означать меньше работы и денег от заказчика. В продукте же один из главных вопросов от разработчиков: "Как мы будет поддерживать то что разработали?"
Приведу конкретные примеры. Далее OC – Ownership Cost, DC – development cost, MC – maintenance costs.
– Тесты или TypeScript уменьшают OC, за счет уменьшение MC, но увеличения DC. Почему: вносить изменения в код можно с меньшими рисками, что-либо поломать.
– Линтинг, код-стайл уменьшает MC. Почему: читать становиться проще!
– Внутренний, легаси или экзотический фреймворк увеличивает OC и MC. DC как правило тоже увеличивается. Почему: находить и онбоардить новых разработчиков сложней.
– DevOps процессы – уменьшают OC, причем существенно. Почему: автоматизация деплоя, разворачивание и мониторинг инфраструктуры все это уменьшает MC и требует сравнительно не больших затрат в DC.
В завершение дам ответ на вопрос из начала рецепта: "микросервисы VS монолит". Ownership cost для микросервисов дороже пока не появилась проблема масштабирования нагрузок (железо не справляется) и/или команды разработки (больше 20 человек).
Post #329
1.94K