Telegram Web
Modern software engineering (Рубрика #Management)

Недавно я дочитал эту книгу за авторством David Farley, который уже много лет рассказывает про оптимизацию процессов разработки. Целых 15 лет назад Дейвид Фарли и Джез Хамбл (соавтор "Accelerate") выпустили книгу "Continuous Delivery", которая была прорывной для своего времени. В своей новой книги Дейвид решил обобщить опыт и рассказать в общем про software engineering. Я прочел эту книгу за 3 месяца, так как в день мог прочесть не больше 10 страниц подряд - автор пишет слишком занудно и медленно. Но сам материал достаточно интересен для изучения. У Дейва есть популярный youtube канал, где большинство клипов длиной 10 или 15 минут, т.е. подобрана приемлемая дозировка занудства:) Ну а теперь я кратко расскажу про содержание книги, которая состоит из 4-х частей

1. What is software engineering - в этой части разбирается этот экзистенциальный вопрос:) Основной посыл Дейва, что "engineering - the practical application of science", а дальше он показывает почему software - это engineering. Интересно, что когда-то давно он топил за software craftmanship и его манифест, которые противоречили инженерному подходу, но теперь Дейв за инженерию

2. Optimize for learning - автор упирает на то, что мы действуем в достаточно непредсказуемой среде, создавая софт, поэтому нам надо быть экспертами по обучению. То есть мы должны эффективно получать знания из своих действий. Для этого автор делает фокус на следующих вещах, которые он разбирает в отдельных главах:
- Working iteratively - надо работать в итерациях:) В этой главе Дейв усиленно борется со своей версией waterfall, который у него совсем без обратных связей между этапами
- Feedback - выделяется важность обратной связи во всех аспектах создания софта: написание кода, проектирование, архитектура, продуктовый дизайн. И что фидбек нужен по возможности получать пораньше
- Incrementalism - рассматривается вопрос о важности модульности и ограничения влияния изменений
- Empiricism - в отличие от математиков, инженеры должны опираться на реальность в создании своих творений, поэтому надо отталкиваться от фактов и реальности, а не вымыслов
- Being experimental - автор рассказывает про экспериментальный подход из науки. На эту тему рекомендую книгу "Trustworthy Online Controlled Experiments", про которую я уже рассказывал

3. Optimize for managing complexity - автор рассказывает как мы можем бороться со сложностью при разработке софта. Здесь автор рассказывает про основные принципы, которым посвящены отдельные главы
- Modularity - концепцию модульности активно обсуждают со времен Парнаса и его статьи 1972 года "On the criteria to be used in decomposing systems into modules"
- Cohesion - сначала идет определение "degree to which the elements inside a module belong together", а дальше уже как этот принцип влияет на дизайн
- Separation of concerns - рассказы про dependency injection, DDD, port & adapters, а также как TDD помогает в разделении ответственности
- Information hiding and abstraction - этот концепт тоже был введен Парнасом в уже упоминавшейся статье
- Managing coupling - сначала автор приводит определение из Wikipedia "the degree of interdependence between software modules", а потом начинает обсуждать как управлять coupling. Рекомендую на эту тему посмотреть выступление Влада Хононова с конфы ArchDays 2023 "Сложность и модулярность две стороны одной медали", про которое я рассказывал раньше

4. The tools of an engineering discipline - автор рассказывает детально про инструменты для достижения engineering excellence и это: testability, deployability, speed, controlling the variables (повторяемость процесса), continuous delivery. Кратенько примерно про это он рассказывает в своем видео "The Most Powerful Software Development Process Is The Easiest", про которое я уже рассказывал. А в последней главе он описывает современного software engineer, который похож на описаннное другом его видео

В общем, книга получилась интересной и полезной.

#Management #Software #Engineering #SoftwareDevelopment #Processes #Devops #SRE
А вот обложки оригинальной книги Дейва Фарли "Modern Software Engineering" и перевода ее на русский.
Калиинград

Моя поездка окончена, сижу в самолете и жду отлета в Москву. Мне понравился город и вся область. Я посетил Куршскую косу, искупался в Балтийском море, посетил могилу Канта, поел оленины и рыбы, посетил янтарный комбинат и купил сувениров. На протяжении 4х дней была отличная погода, а также классная компания:)

В следующий раз приеду сюда с женой и детьми.

#Travel
Please open Telegram to view this post
VIEW IN TELEGRAM
А вот и обложки к книгам "The Next 100 Years: A Forecast for the 21th Century" ("Следующие 100 лет - Прогноз событий XXI века") в иностранном и переводном варианте.

#Management #Leadership #Processes #Strategy
Папатожечеловек! (Рубрика #Kids)

Иногда я читаю своим детям эту книгу по вечерам. Мне нравится делиться с ними историями о том, как примерно выглядело детство папы. И хоть эта книга написана про мальшичек восьмедисятых годов, а я пошел в школу лет на десять поже, но истории все равно находят отклик в моей памяти. В те времена у нас были в основном диафильмы и немного мультиков по выходным, игры в догонялки и казаки-разбойники, игра в футбол, если поле свободно и ребят достаточно или в квадрат, если поля нет, но есть хотя бы четверо друзей:) И хоть сейчас многое поменялось, но что-то осталось неизменным: прыжки по лужам в дождь, походы на рыбалку, гонки на велосипедах и самокатах, бег на переменках в школе. Дети все так же любят приболеть и не ходить в школу! Ссорятся и мирятся, исследуют двор, шутят и то и дело попадают в необычайно смешные ситуации.

Эту интересную книгу написал Ядрышников Андрей, а иллюстрации сделали Анна и Варвара Кендель. Мне нравится читать ее малышам, но им почему-то скучновато - многие истории для них не понятны и приходится дополнительно их разъяснять:)

#ForKids #ForParents
2024/06/29 16:09:49
Back to Top
HTML Embed Code: