«Законы программной инженерии» — это практическое и глубоко прикладное руководство от доктора Милана Милановича, основанное на более чем 20-летнем опыте работы в индустрии разработки ПО. Книга систематизирует ключевые законы, принципы и эффекты, которые формируют работу инженерных команд: от архитектуры и распределённых систем до процессов, коммуникаций и управления техническим долгом.
О чём эта книга
Автор детально объясняет происхождение каждого закона, приводит реальные кейсы из индустрии, раскрывает типичные ошибки и демонстрирует, как применять теорию в повседневной работе разработчиков и инженерных менеджеров.
Ключевые темы и законы
Закон Галла и эволюция архитектур
Закон Брукса и пределы масштабирования команд
Закон Конвея и влияние организационной структуры на систему
CAP-теорема и работа распределённых систем
Принципы DRY, KISS, YAGNI
Технический долг: причины, последствия, стратегии управления
Принцип Парето и оптимизация инженерных процессов
Эффект Даннинга — Крюгера в командной динамике
Структура книги
Материал разбит на семь независимых разделов, охватывающих ключевые аспекты разработки программного обеспечения. Каждая глава читается автономно и подходит для точечного изучения отдельных тем.
Основные направления
Архитектура и управление сложностью
Команды, процессы и организационные модели
Планирование проектов и оценка сроков
Качество кода, поддерживаемость и технический долг
Масштабирование систем и команд
Принципы проектирования и инженерное мышление
Принятие решений в условиях неопределённости
Для кого предназначена книга
Руководство будет полезно разработчикам, тимлидам, архитекторам, продакт- и инженерным менеджерам, а также всем, кто стремится глубже понимать фундаментальные закономерности разработки ПО.
Что делает книгу уникальной
Это не учебник по языкам программирования или конкретным технологиям. Это практическое исследование универсальных принципов, которые работают в любых командах и на любом проекте, вне зависимости от стека и масштаба.
Привет! Я Милан, технический директор с более чем 20-летним опытом в области программной инженерии. Имея степень PhD в области компьютерных наук и искусственного интеллекта, я люблю соединять технологии и инновации.Я являюсь куратором сообщества из более чем 400 000 инженеров, менеджеров и архитекторов, где моя цель - помогать людям развиваться в карьере и создавать выдающиеся программные продукты и команды.Я также веду еженедельную рассылку, где