BOOK_CUBE Telegram 2398
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



tgoop.com/book_cube/2398
Create:
Last Update:

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

BY Книжный куб


Share with your friend now:
tgoop.com/book_cube/2398

View MORE
Open in Telegram


Telegram News

Date: |

Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months. Select “New Channel” 6How to manage your Telegram channel? Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. A vandalised bank during the 2019 protest. File photo: May James/HKFP.
from us


Telegram Книжный куб
FROM American