[2/4] Software Engineering at Google (Делай как в Google. Разработка программного обеспечения) (Рубрика Engineering)
Продолжая рассказ про эту крутую книгу, я хотел бы рассказать чуть подробнее о содержании книги, что состоит из 5 частей и 25 глав
**I. Thesis (тезис)
- What is software engineering? (Что такое инженерия программного обеспечения?)** В этой главе авторы рассказывают основную идею о том, что разработка софта не является одноразовой работой, а приводит к созданию развивающегося продукта. А это значит, что мы не пишем код аля write-once как раньше писали в Perl или сейчас генерирует условный LLM, а мы проектируем софт с учетом изменений, поддержки и долгосрочной жизнеспособности, а не быстрых ad-hoc задач. Хотя если вы пишите одноразовой скрипт, то логично использовать GPT:) **II. Culture (культура)
- How to work well on teams (как хорошо работать в командах)** Эта глава фокусируется на навыках сотрудничества, коммуникации и практиках, которые позволяют разнообразным командам эффективно работать вместе, закладывая основу для крупномасштабных проектов. По-факту, только маленькие проект можно сделать в одиночку, а если планируешь что-то большее, то придется объединяться, а значит разработка софта - это командный вид спорта. И для достижения успеха в нем надо прокачивать soft skills:) 3. Knowledge sharing (обмен знаниями) Эта глава подчеркивает важность документирования полученного опыта и insights. Здесь рассказывается про методы и процессы для обеспечения передачи ценных знаний. Забавно, что многие не любят сами писать документацию, но жалуются на ее отсутствие или неактуальность. Я как любитель письменного жанра рекомендую таким людям начать с себя и задать тренд по написанию документов, фиксирующих важные моменты, например, RFC/ADR, агенда встреч, PR/FAQ из подхода "Working backwards" от Amazon (подробнее в моем обзоре этой книги) 4. Engineering for Equity (инженерия для равенства) Изучает, как справедливые процессы, равный доступ к инструментам и сбалансированное распределение рабочей нагрузки помогают поддерживать продуктивную и инклюзивную инженерную среду. Честно говоря, эта глава выбивается из общего списка, так как по всей видимости написана поборниками повестки и инклюзивности. 5. How to lead a team (как руководить командой) Эта глава предоставляет практические рекомендации по руководству командой, подчеркивая четкую коммуникацию, согласование целей и построение доверия для того, чтобы команды могли работать наилучшим образом. 6. Leading at scale (руководство в масштабе) Здесь обсуждаются проблемы, специфичные для управления очень большими командами. Авторы описывают масштабируемые практики управления и структуры, которые помогают поддерживать последовательную производительность и культуру по мере роста команд. 7. Measuring engineering productivity (Измерение производительности инженерии) Эта глава посвящена неформальным и формальным метрикам для оценки эффективности инженерии. Авторы объясняют, как сбалансировать скорость с качеством, подчеркивая, что производительность заключается не только в результатах, но и в деятельности. Эта тема была мне настолько интересна, что я эту главу я давно уже разобрал в деталях в отдельном посте.
#Engineering #Management #Software #Development #Processes #Leadership #SRE #DevOps